1.5.2 ROS2核心模块
通信与工具是ROS2的核心模块,也是我们以后学习和工作的重点所在,本节将会介绍通信和工具中涉及到的一些知识点。
1.通信模块
通信模块是整个ROS2架构中的重中之重,比如你可能想要了解在ROS2中是如何控制机器人底盘运动的?雷达、摄像头、imu、GPS等这些传感器数据是如何传输到ROS2系统的?人机交互时调用者如何下发指令,机器人又是如何反馈数据的?导航、机械臂等系统性实现不同模块之间是如何交互数据的......等等,其实这些都离不开通信模块。另外,开发者构建应用程序时,通信部分在工作内容中占有相当大的比重。
2.功能包应用
功能包的应用主要有三种方式:
1.二进制安装
ROS官方或社区提供的功能包可以很方便的通过二进制方式安装,安装命令如下:
sudo apt install ros-ROS2版本代号-功能包名称
小提示:
可以调用
apt search ros-ROS2版本代号-* | grep -i 关键字
格式的命令,根据关键字查找所需的功能包。
2.源码安装
也可以直接下载官方、社区或其他第三方提供的源代码,一般我们会从github获取源码,下载命令如下:
git clone 仓库地址
源码下载后,需要自行编译。
3.自实现
开发者按照业务需求自己编写功能包实现。
3.分布式
ROS2是一个分布式架构,不同的ROS2设备之间可以方便的实现通信,这在多机器人设备协同中是极其重要的。
4.终端命令与rqt
在ROS2中提供了丰富的命令行工具,可以方便的调试程序、提高开发效率。
rqt是一个图形化工具,它的功能与命令行工具类似,但是图形化的交互方式更为友好。
示例1:使用命令行工具在turtlesim_node中生成一只新乌龟。
示例2:使用rqt在turtlesim_node中生成一只新乌龟。
5.launch文件
通过launch文件,可以批量的启动ROS2节点,这是在构建大型项目时启动多节点的常用方式。
示例:一次性启动多个turtlesim_node节点。
6.TF坐标变换
TF坐标变换可以实现机器人不同部件或不同机器人之间的相对位置关系的转换。
示例1:发布机器人不同部件之间的坐标系关系。
示例2:使用turtlesim_node模拟多机器人编队。
7.可视化
ROS2内置了三维可视化工具rviz2,它可以图形化的方式显示机器人模型或显示机器人系统中的一些抽象数据。
示例1:显示传感器数据。
示例2:显示机器人模型。