在设计ROS系统工程的时候我们一般是按照多节点的形式设计的,这样做的好处在于将系统按模块进行了隔离,而坏处主要有两个,一是中间的数据传输是按照网络进行的,延时比较大,这个问题的解决办法比较多,比如内存共享之类的,我们这里不做讨论;二则是启动这些节点比较烦,有时候可能得启动十几个,把人搞崩溃,今天我们就来研究下这个话题。
一般给出的办法是用ros launch,个人感觉有点复杂,操作起来不太方便,因此这里介绍另外一种方法。
原理就是通过命令行打开多个终端然后运行不同的命令启动节点。
- 创建脚本文件Starup.sh,在里面写入
gnome-terminal -- roscore
sleep 2s
gnome-terminal -- rviz rviz
sleep 2s
gnome-terminal -- rosrun qt_ros_test qt_ros_test_node
-
赋予该文件权限,允许其作为程序执行文件。
-
在终端直接运行
./Starup.sh
- 搞定
参考文章
https://www.cnblogs.com/zhubaohua-bupt/p/7182806.html
本文介绍了如何在ROS系统中启动多个节点,以解决启动多节点带来的不便。通常使用ros launch命令,但作者认为操作复杂。提出了通过创建脚本文件Startup.sh并在每个终端运行不同命令启动节点的方法,简化了启动流程。
1032





