ROS-基础(kinetic---melodic---noetic)

2023-05-16

学习资料参考:ROS机器人开发实践(胡春旭)

目录

  • 工作空间和功能包的创建
  • 集成开发环境的搭建
  • 话题和服务的实现方法
  • ROS中的命名空间及解析方法
  • ROS分布式通信的方法

热身

常用命令

命令作用
catkin_create_pkg创建功能包
rospack获取功能包的信息
catkin_make编译工作空间中的功能包
rosdep自动安装功能包依赖的其他包
roscd功能包目录跳转
roscp拷贝功能包中的文件
rosrun运行功能包中的文件
roslaunch运行启动文件

ROS第一个例程 小乌龟仿真

安装

sudo apt-get install ros-kinetic-turtlesim 

不同版本替换kinetic-melodic-noetic(kinetic基本没了)
noetic 完整桌面安装的话,这些东西都是有的

运行管理器结点——ROS master

roscore

新终端运行

rosrun turtlesim turtlesim_node

新终端运行控制节点

rosrun turtlesim turtle_teleop_key

exampe

名称类型描述
话题订阅turtleX/cmd_vel geometry_msgs/Twist控制乌龟角速度与线速度
话题发布turtleX/pose turtlesim/Pose乌龟的姿态信息,包括x与y的坐标位置,角度,线速度和角速度
服务clearstd_srvs/Empty清除仿真器中的背景颜色
resetstd_srvs/Empty复位仿真器到初始位置
killturtlesim/Kill删除一只乌龟
spawnturtlesim/Spawn新生一只乌龟
turtleX/set_penturtleX/SetPen设置画笔的颜色和线宽
turtleX/teleport_absoluteturtlesim/TeleportAbsolute移动乌龟到指定姿态
turtleX/teleport_relativeturtlesim/TeleportRelative移动乌龟到指定的角度和距离

创建工作空间和功能包

工作空间:存放工程开发相关文件的文件夹,包含

  1. Src
  2. Build
  3. Devel
  4. install(不必须)

创建工作空间

  • 创建 catkin_init_workspace
  • 编译catkin_make
  • 设置环境变量 source devel/setup.bash

创建功能包

  • cd src
  • catkin_create_pkg <package_name> [depend1] [depend2]
  • 编译
  • 设置环境变量

工作空间的覆盖

  • Overlaying
    • ROS优先查找最前端的工作空间
    • 新设置的工作空间会自动放在最前端
  • 优势:开发中替换系统或其他工作空间中原有的功能包
  • 风险:如果被依赖包被替换,那么该包产生潜在风险

ROS中的命名空间

计算图源

  • 节点
  • 参数
  • 话题
  • 服务
  • 示例:
    - /foo
    - /stanford/robot/name
    - /wg/nodel

计算图源命名(ROS封装的重要机制)

  • 每个资源都定义上在一个命名空间内
  • 该命名空间可以创建更多资源
  • 不同命名空间的资源
    - 在所处命名空间内使用
    - 全局范围内访问

有效的命名

  • 首字符必须是
    - 字母[a-z|A-Z] 波浪线(~) 左斜杠(/)
    - 后续可以是字母数字下划线或者左斜杠

命名解析

  • 基础(base):base
  • 全局(global): /global/name (/ 开头,影响功能包的可移植性)
  • 相对(relative):relative/name
  • 私有(private): ~private/name (~ 开头,节点内部的资源名称)
节点相对名称(默认)全局名称私有名称
/node1Bar–>/bar/bar–>/bar~bar-> /node1/bar
/wg/node2Bar–>/wg/bar/bar–> /bar~bar–>/wg/node2/bar
/wg/node3foo/bar–>/wg/foo/bar/foo/bar–>/foo/bar~foo/bar–> /wg/node3/foo/bar

命名重映射

节点命名空间重映射参数匹配名称解析名称
/foo:=barfoo, /foo/bar
/bazfoo:=barfoo, /baz\foo/baz/bar
//foo:=barfoo, /foo/bar
/bazfoo:=bar/foo/baz/bar
/baz/foo:=bar/foo/a/b/c/bar

分布式多机通信

  • 分布式软件框架
  • 节点间松耦合
  • 唯一Master
  • 其他机器通过ssh和Master联系
  • 多机通信的配置
    • ROS多机系统必处同一网络
    • ifconfig命令获取IP地址
    • 在/etc/hosts 加入对方的IP地址和计算机名
    • ping命令测试网络连通
    • 设置ROS相关环境变量
      • 设置 ROS_MASTER_URI
        • 在副机上设置环境变量
          - export ROS_MASTER_URI=http://hcx-pc:11311 (仅终端生效)
          - echo “export ROS_MASTER_URI=http://hcx-pc:11311”>> ~/.bashrc (所有终端生效)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ROS-基础(kinetic---melodic---noetic) 的相关文章

  • OpenSIPS实战(一):OpenSIPS使用简介

    1 OpenSIPS是什么 OpenSIPS xff08 Open SIP Server xff09 是一个成熟的开源SIP服务器实现 可以作为SIP代理 路由器 但OpenSIPS不仅仅是一个SIP代理 路由器 xff0c 因为它包含了应

随机推荐

  • Floyd判圈算法(龟兔赛跑算法, Floyd's cycle detection)及其证明

    问题 xff1a 如何检测一个链表是否有环 xff08 循环节 xff09 xff0c 如果有 xff0c 那么如何确定环的起点以及环的长度 空间要求 xff1a 不能存储所经过的的每一个点 举例 xff1a x 0 61 1 x 0 61
  • Ubuntu配置GPU版本pytorch环境(含NVIDIA驱动+Cuda+Cudnn)

    本文更新于2018年8月底 概述 步骤如下 xff1a 1 安装Ubuntu 2 安装NVIDIA 显卡驱动 2 安装NVIDIA Cuda 3 安装NVIDIA CuDNN 4 安装GPU版本的PyTorch 安装Ubuntu 系统版本选
  • PyTorch中的Dataset、Dataloader和_DataloaderIter

    Dataset Pytorch中数据集被抽象为一个抽象类torch utils data Dataset xff0c 所有的数据集都应该继承这个类 xff0c 并override以下两项 xff1a len xff1a 代表样本数量 len
  • 彻底搞懂Lab 颜色空间

    本文参考wikipedia xff0c 并加入了自己的理解 xff0c 有不对的地方多多指教 名称 在开始之前 xff0c 先明确一下Lab颜色空间 xff08 Lab color space xff09 的名字 xff1a Lab的全称是
  • MiniFly微型四轴学习与开发日志(五)——遥控器任务详解

    文章目录 radiolinkTask无线连接任务usblinkTxTask usb发送任务usblinkRxTask usb接收任务commanderTask飞控指令发送任务keyTask按键扫描任务displayTask显示任务confi
  • .与::的使用区别

    今天尝试编写了一个小的Windows应用程序 xff0c 在编写的过程中用到MessageBox函数 但是一直不正确 我当时尝试MessageBox 34 NULL 34 34 Alert 34 34 ERROR 34 MB OK xff0
  • Pytorch中的contiguous理解

    最近遇到这个函数 xff0c 但查的中文博客里的解释貌似不是很到位 xff0c 这里翻译一下stackoverflow上的回答并加上自己的理解 在pytorch中 xff0c 只有很少几个操作是不改变tensor的内容本身 xff0c 而只
  • 一文读懂GAN, pix2pix, CycleGAN和pix2pixHD

    本文翻译 总结自朱俊彦的线上报告 xff0c 主要讲了如何用机器学习生成图片 来源 xff1a Games2018 Webinar 64期 xff1a Siggraph 2018优秀博士论文报告 人员信息 主讲嘉宾 姓名 xff1a 朱俊彦
  • Pytorch中的optimizer

    与优化函数相关的部分在torch optim模块中 xff0c 其中包含了大部分现在已有的流行的优化方法 如何使用Optimizer 要想使用optimizer xff0c 需要创建一个optimizer 对象 xff0c 这个对象会保存当
  • 图像质量评价之结构相似性SSIM(上)

    本文总结归纳自论文 image quality assessment from error visibility to structural similarity 概述 这篇文章主要介绍对图像质量进行打分评价的一个很经典的指数 结构相似性
  • 图像质量评价之结构相似性SSIM(中)

    在上一篇文章中 xff0c 我们介绍了对图像质量进行评价的必要性 主观评价和客观评价的两种标准 xff0c 以及设计符合人类直觉的评价标准的困难性和重要性 本来这篇文章想把我们的主角SSIM讲完 xff0c 但是发现前面需要写的铺垫有点长h
  • CS231n lecture 9:各大经典网络 AlexNet/VGG/GoogleNet/ResNet(上)

    本文翻译总结自CS231n Lecture 9 本篇将深入介绍当前的应用和研究工作中最火的几个CNN网络架构 AlexNet VGGNet GoogleNet和ResNet xff0c 它们都在ImageNet分类任务中有很好的表现 另外
  • STM32c8t6干扰GPS信号的解决方式

    项目目的 xff1a stm32解析GPS报文 xff0c 显示在oled上 项目遇到的问题 xff1a GPS模块接收信号不良 问题表现 xff1a 1 GPS可以搜星 xff0c 户外大约20颗 xff0c 但是锁定不了卫星 2 GPS
  • Rplidar A2 激光雷达使用hector_slam进行建图

    手头上有一个Rplidar A2 激光雷达 xff0c 通过其进行slam建图 xff0c 如下 环境 xff1a 1 Rplidar A2 激光雷达 xff1b 2 笔记本电脑 xff1b 3 Ubuntu 16 04 4 ROS Kin
  • Oracle之常用内置函数

    1 Oracle内置函数 wm concat wm concat 函数是oracle中独有的 mysql中有一个group concat 函数 实现行转列功能 xff0c 即将查询出的某一列值使用逗号进行隔开拼接 xff0c 成为一条数据
  • RRT算法三维避障的MATLAB实现

    RRT算法又称为快速随机扩展数算法 xff0c 是一种普适路径规划算法 xff0c 为什么说是普适算法 xff0c 因为它什么样的苛刻的条件都会极大的可能性找到一条路径 但是这样的算法也往往会伴随缺点 xff1a 1 每次迭代都是在随机找点
  • MiniFly微型四轴学习与开发日志(六)——遥控器任务与系统框架

    文章目录 遥控器任务框架遥控器系统框架 遥控器任务框架 参数配置任务主要功能是保存参数 按键扫描任务主要功能是扫描按键 显示任务主要功能是显示界面 飞控指令发送任务主要功能是将采集摇杆电位器的 AD 值转换为姿态控制命令 xff0c 并以
  • Arduino串口发送与接收16进制数据(HEX)(数据乱码)-JDY-10M组网

    最近使用JDY 10M蓝牙组网 xff0c 需要Arduino收发数据 xff0c 将遇到的一些问题与最终解决方法分享给大家 xff0c 如果内容有问题 xff0c 还请大家指点 1 JDY 10M组网 关于如何JDY 10M如何组网网上介
  • 串口通信协议介绍

    串口通信协议介绍 空闲时 xff1a TX RX为高电平 xff0c 通讯时 xff1a 低电平为起始位 43 送数据位 xff08 从低到高 xff09 43 校验位 43 停止位 常用8N1 0 1 0 1 0 0 0 0 0 0 TX
  • ROS-基础(kinetic---melodic---noetic)

    学习资料参考 xff1a ROS机器人开发实践 胡春旭 目录 工作空间和功能包的创建集成开发环境的搭建话题和服务的实现方法ROS中的命名空间及解析方法ROS分布式通信的方法 热身 常用命令 命令作用catkin create pkg创建功能