ROS机器人编程实践 第2章 预备知识

2.1 ROS图

  • ROS图中的节点: 一个发送和接收消息的软件模块。
  • ROS图中的边: 两个节点之间传递的消息。

2.2 roscore

roscore 是一个向节点提供连接信息,以便节点间互相传递信息的服务程序。每个节点在启动时连接到roscore,并注册该节点发布和订阅的消息

2.3 catkin 工作区 ROS程序包

2.3.1 catkin

2.3.2 工作区

  • 可以创建多个ROS工作区,但是任何时刻只能在其中一个工作区中工作。
  • 首先需要确认ROS全局设置的脚本加入.bashrc中。
source /opt/ros/kinetic/setup.bash
  1. 创建一个catkin工作区并初始化
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace # 在src下自动创建CMakeList.txt
  1. 创建工作区文件。得到两个文件夹:
  • build是使用C++时catkin存放库和可执行程序的地方。
  • devel。
cd ~/catkin_ws
catkin_make
  1. 添加使用的工作区的setup.bash,否则无法找到代码。
source ~/catkin_ws/devel/setup.bash

2.3.3 ROS程序包

程序包包含在工作区的src路径内。每个包必须包含一个CMakeLists.txt和一个package.xml。
package.xml用于描述包的内容及catkin如何与之交互。

调用catkin_create_pkg创建一个包,依赖于已经存在的rospy

cd ~/catkin_ws/src
catkin_create_pkg my_awesome_code rospy

结果:

catkin_ws
    build
    devel
    src
        CMakeLists.txt
        my_awesome_code
            CMakeLists.txt
            package.xml         # 描述包的内容及catkin如何与之交互
            src

2.4 rosrun

启动roscore实例

roscore

在另一个终端中运行。

  • rosrun 寻找程序包中的可执行程序并且向这个程序传递任何参数。
rosrun rospy_tutorials talker

在第三个终端上运行

rosrun rospy_tutorials listener

在第四个终端,启动基于QT的ROS图可视化工具rqt_graph

rqt_graph

[外链图片转存失败(img-eNRKALeo-1562284998578)(rosgraph.png)]

2.5 命名 命名空间 重映射

2.5.1 命名

2.5.2 命名空间

2.5.3 重映射

2.6 roslauch

roslauch 自动启动一系列ROS节点的命令行工具。roslauch操作lauch文件,而不是节点。
lauch文件是描述一组节点以及它们的话题。

2.7 tab键

自动补全命令。

2.8 tf: 坐标系转换

2.8.1 位姿、位置与朝向

  • 位置 x,y,z
  • 朝向 roll,pitch,yaw
  • 位置+朝向表示位姿,称为6D位姿

2.8.2 tf (transfrom)

2.9 小结

你可能感兴趣的:(ROS)