ROS&ROS2可视化仿真软件
0. 简介
在面对ROS这个软件时,我们会尝试着设计更多的可视化软件用于仿真,以展示我们算法程序的效果。作者就在这里向大家展示6种二次开发和可视化平台。下面我们以ROS2为主来一一说明。
1. RVIZ2
rviz2作为我们最常用的可视化软件,其也支持插件的开发使用,具体使用方法也和ROS1类似,这里之前写过一篇ros1 如何开发rviz plugin插件的文章,这里就不展开叙述了。下图为小米cyberdog铁蛋的rviz2的示意图,其使用和ROS1没有差别。
2. RQT
RQT作为和RVIZ2一样经常使用的软件,其也具有插件开发的能力。作为一个RQT的plugin插件,其结构大致如下
其中CMakeLists,packag.xml与其他ros包无明显差异
plugin.xml表示了此插件在rqt中的显示方式,也就是说可以在plugin菜单找到它
resource文件中MyPlugin.ui是用QT designer设计的UI界面
script文件中的rqt_mypkg是一个Python脚本,负责启动这个插件
按照官网的顺序:
-
修改package.xml,填入export语句让我们的plugin能够被系统找到进行调用。
-
创建plugin.xml ,描述plugin,最重要的是,在rqt_gui界面中的分组与顺序。
-
setup.py 通过ROS的catkin, 利用CMake 来将脚本文件放在一个不在PATH中但是又跟package关联的文件夹下让系统找得到。
-
修改CMakeLists.txt
-
创建src/rqt_mypkg,添加__init__.py和my_module.py
-
界面元素及布局 MyPlugin.ui
经过这六步,我们就可以用Plugins->Logging->My plugin label菜单在rqt的框架内添加新一个my_plugin实例,并得到一个自定义的RQT插件了
3. gazebo
与rviz2和rqt一样,gazebo也是ROS1中经常使用的其在功能上也没有什么差别,这里可以参照创客制造的一篇小文章来入门。如果使用过ROS1的同学,可以无缝衔接到ROS2中
4. V-rep/CoppeliaSim
第三种是V-rep/CoppeliaSim与ROS2完成的数据通信,瑞雷老师在这篇文章中详细介绍了这部分的工作。通过下载simExtROS2Interface的foxy版本,并利用该功能包生成.so文件。
相较于我们常见的gazebo而言,V-rep/CoppeliaSim的好处是其可以更加便捷的完成代码的配置与二次开发,同时该软件支持lua或者python语言的开发与撰写。
5. Webots
Webots 作为一种界面与仿真兼具的软件,其可以通过对真实世界中机器人的传感器、执行器的仿真得到一个更加符合真实情况的结果,这也为实机测试省去了大量的麻烦,之前Webot与ROS一开始还不兼容,目前Webots已经全面的拥抱ROS2。从官方的例子我们可以看到webots的上手难度越来越低,中间件直接连通了,只需要你通过简单的调用即可完成车辆在仿真环境中的运动。官方的文档已经讲得很详细了,这里也不过多的去展开讲述,等作者啥时候研究这块后再详细展开吧。
…详情请参照古月居
- 点赞
- 收藏
- 关注作者
评论(0)