0
点赞
收藏
分享

微信扫一扫

ROS基础(part 1)

灯火南山 2022-01-12 阅读 121

因为最近研究所的项目涉及到了ROS,这里简单记录一下,有关ROS的学习收获。

文章目录

1. ROS的安装经历

ROS的安装中遇到绝大多数的问题都是缺乏依赖包,或者是下载速度特别慢。其实跟着官方文档进行操作会避免很多麻烦。

  • 第一步,需要set up source.list。在做这一步的时候,千万不能直接照着复制,官方提供了中国地区专用的链接,使用他们下载ROS会快很多,这可以解决安装过程在下载速度奇慢的问题。
    (可以在以下网站中查找:http://wiki.ros.org/ROS/Installation/UbuntuMirrors)

  • 第二步,添加密匙

sudo apt-key adv --keyserver ‘hkp://keyserver.ubuntu.com:80’ --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
  • 第三步,需要在安装之前 update apt。
  • 第四步, 正式安装 sudo apt install ros-melodic-desktop-full 这里需要注意的是 ROS Kinetic 在去年已经没有在维护了,所以安装melodic。
  • 第五步,在安装完成之后,需要更新Linux的环境变量。
  • 第六步,安装一些依赖包
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
sudo apt install python3-rosdep
  • 第七步sudo rosdep initrosdep update
  • 第八步,可通过检测ROS的版本来判断,ROS是否安装成功,如果出现的正确的版本则安装成功,如果是< unkown >则没有成功。

2. ROS的基本概念

  • ROS node: 可以理解成ROS APIs使用的进程。
  • ROS master: 连接不同node的中介。
  • ROS param server: 用于存储不同的参数,每一个node都可以使用param上面的参数。
  • ROS topic:是node用于传输message的通道。
  • ROS message:ROS 信息通过 topic进行传输,对于这些message,ROS中有原生的数据类型。但是用户也可以写自己的数据类型。
    ROS service: 是ROS node之间的一种通信方式,使用请求查询式的通信模式,可以解决TOPIC的通信缺陷,如:无法确定发布信息是否被收到等。
  • ROS Bag: 用于储存从数据的一种方法。

3. ROS的基本命令

  1. roscore:用于启动ROS master, parameter server, logging node,在运行ROS 程序都应该先运行这一行命令。
  2. renode:可使用该命令,查看node的情况,在启动master的前提之下,使用rosnode可以查看当前正在运行的所有nodes。在运行rosrun roscpp_tutorials talker 之后运行 rosnode可得到以下结果:
    在这里插入图片描述
  3. rostopic list: 输出所有topic的信息
  4. rostopic pub topic_name msg_type data : 发送一个有着特定数据类型的数据。
  5. rostopic echo /topic:可以接受到一个相同topic是发送的数据。
    具体的发送和接受数据的例子如下:
    在这里插入图片描述
  6. rosversion : 检查ROS版本
  7. rosparam list : 打印当前参数
  8. rosparam set parameter_name value : 设置参数。
  9. rosparam get parameter_name:通过名字来找到参数。
  10. rosrun node_name : 运行一个节点。

4. ROS 编程基础

4.1 如何创建工作区

创建工作区的过程中,不要使用sudo的身份,不然在初始化的时候可能会报错。

  1. 在使用ROS之前需要首先创建一个工作目录。创建工作目录的第一步是创建一个包含名为src的文件夹,这个文件的名字是不能变的,它的主要作用就是存放ROS packages。
  2. 然后对工作区进行初始化–> catkin_init_workspace。运行了此条命令之后,文件夹下会出现CMakeLists.txt一个文件
  1. 之后在工作目录下执行 catkin_make进行编译。
  2. 编译成功之后在工作目录下会多出 devel 和 build两个文件夹。
  3. 之后更新linux的环境变量(必须要做)
    至此工作目录构建完成。

4.2 工作区的构成

前面提到工作目录由src,devel, build 三个文件夹组成,那么他们分别的作用是什么呢。

举报

相关推荐

0 条评论