第四节 ROS的管理操作
感谢:第 4 章 ROS运行管理 · Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程
上一节还遗留一点问题,但是感觉不值得新开一章,所以这里就不谈了,关于API就请移步查看文档了
3.1 常用API · Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程
前面已经说过了一个ROS工程框架,这一节就简单的介绍一些关于加强工程的操作的方法
这一章介绍的很少,只是和你说有这么一个功能,具体代码还是需要你去查,只有自己用到才能说掌握,所以具体配置还是希望你看看每个功能下面的链接
元功能包
这个功能包的概念用的很少,文档中说是起源于文件管理概念,简单来说,一个包下面用众多的cpp文件实现具体的操作功能,但是如果cpp文件太多了咋办?,那就只能放到另外的包里面,但是这个包能够接收到另一个包中的cpp文件吗?(我也没试过)
所以就引出了元功能包的概念,简单来说就是声明元功能包里面的许多包都是一个包下的,自己是在一个包下直接创建不了其他包的要注意
实现流程就是在创建功能包后修改包里面的package.xml
<exec_depend>被集成的功能包</exec_depend>
.....
<export>
<metapackage />
</export>
然后修改cmakelist文件
cmake_minimum_required(VERSION 3.0.2)
project(demo)
find_package(catkin REQUIRED)
catkin_metapackage()
Launch文件
ROS的节点管理工具launch文件
这个文件用途很广,因为前面说通讯机制就说过了ROS一种通讯方式就是通过节点发布和节点接收信息实现的,我们可以利用launch来实现对节点的管理。
在包下面可以新建.launch文件(这是调用小乌龟的launch)
<launch>
<node pkg="turtlesim" type="turtlesim_node" name="myTurtle" output="screen" />
<node pkg="turtlesim" type="turtle_teleop_key" name="myTurtleContro" output="screen" />
</launch>
然后调用
roslaunch 包名 xxx.launch
具体指令操作(还是很有必要研究一番的)
4.2 ROS节点管理launch文件 · Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程
分布式通讯
简单来说就是在多台计算机上实现通讯,一般在一台电脑上不需要,但是对于机器人仿真来看这就非常有必要学习了。
1.准备
先要保证不同计算机处于同一网络中,最好分别设置固定IP,如果为虚拟机,需要将网络适配器改为桥接模式;
2.配置文件修改
分别修改不同计算机的 /etc/hosts 文件,在该文件中加入对方的IP地址和计算机名:
主机端:(主机与运行roscore)
从机的IP 从机计算机名
从机端:
主机的IP 主机计算机名
设置完毕,可以通过 ping 命令测试网络通信是否正常。
IP地址查看名: ifconfig
计算机名称查看: hostname
3.配置主机IP
配置主机的 IP 地址
~/.bashrc 来追加
export ROS_MASTER_URI=http://主机IP:11311
export ROS_HOSTNAME=主机IP
4.配置从机IP
配置从机的 IP 地址,从机可以有多台,每台都做如下设置:
~/.bashrc 追加
export ROS_MASTER_URI=http://主机IP:11311
export ROS_HOSTNAME=从机IP
周一啦,有点偷懒,但是确实这一届详细介绍是介绍不完的,虽然介绍的比较少,但是实际研究的很多,希望观者注意。
明天研究ROS中的常用组件,这是一个非常重要的章节,可以说是ROS的核心