创建完工作空间并编写好代码后就需要定义通信架构,使各节点(可执行文件)协调运行。
节点管理器Master和节点Node
ros通过节点管理器master进行每个节点node的启动时注册和管理node之间的通信。通过roscore命令启动master。同时还启动了日志输出和参数服务器。即启动ros首先就要在终端命令行输入roscore命令启动节点管理器master。
![c0d82eea13f37c3b73d5008e8491a270.png](https://i-blog.csdnimg.cn/blog_migrate/a7cef3c95583497c7e3d5152989300eb.jpeg)
src中源代码编译生成多个可执行文件,可执行文件进行运行就成了ros的一个个进程,也就是一个个node。一般一个node只做某个特定功能,node一般按照功能进行划分。
通过rosrun命令即可启动node
![573c7556493262397bc7da5fc8f07dc1.png](https://i-blog.csdnimg.cn/blog_migrate/f55faff103bc644e6effa244a0000984.jpeg)
rosnode命令可以管理查看node
![ea6e302ff67b8920e276794d3e34b2cd.png](https://i-blog.csdnimg.cn/blog_migrate/040bc4463ab52451a90bccd9cd6c615c.jpeg)
节点较多不必一个个rosrun启动,可以用roslaunch启动多个,即前面工程结构里面讲的launch文件。如果没有roscore,roslaunch还会自动roscore。所以只要roslaunch一行命令就可以将机器人运行起来。
![aeb51e5bd83d48a9b502b5b7eb0da973.png](https://i-blog.csdnimg.cn/blog_migrate/4ebe020f1ce2f67cb48e46dc52f96855.jpeg)
launch文件结构如下,和xml一样都是标签语言
![d93a63c7c5cf36ba8b001aee9b79fdbb.png](https://i-blog.csdnimg.cn/blog_migrate/e28cca7399e720bb461702293fd3b40f.jpeg)
参考资料
https://www.icourse163.org/course/ISCAS-1002580008?tid=1002759011