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脚本,负责启动这个插件

按照官网的顺序:

  1. 修改package.xml,填入export语句让我们的plugin能够被系统找到进行调用。

  2. 创建plugin.xml ,描述plugin,最重要的是,在rqt_gui界面中的分组与顺序。

  3. setup.py 通过ROS的catkin, 利用CMake 来将脚本文件放在一个不在PATH中但是又跟package关联的文件夹下让系统找得到。

  4. 修改CMakeLists.txt

  5. 创建src/rqt_mypkg,添加__init__.py和my_module.py

  6. 界面元素及布局 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的上手难度越来越低,中间件直接连通了,只需要你通过简单的调用即可完成车辆在仿真环境中的运动。官方的文档已经讲得很详细了,这里也不过多的去展开讲述,等作者啥时候研究这块后再详细展开吧。

…详情请参照古月居

ROSROS2可视化仿真软件相关推荐

  1. 底物的分子描述符计算及 CYP450 酶-底物选择性技术研究

    本篇推文引自:基于网络的标签空间划分方法预测 CYP450 酶-底物选择性 1. 分子描述符计算     本文计算了四种类型的底物分子描述符并把他们当成 4 类特征表示用于机器学习建模,这 4 类特征 ...

  2. 【CG】汇总开源的三维图形/计算几何/CAD算法库

    目录 Computer Graphics Group at RWTH Aachen OpenFlipper OpenMesh OpenVolumeMesh [IceSL]ADVANCED MODELI ...

  3. 实例九— 除法器设计

    4.3 实例九 除法器设计(Robei工具) 4.3.1. 本章导读 要求掌握除法器原理,并根据原理设计除法器模块以及设计对应的测试模块,最后在 Robei可视化仿真软件经行功能实现和仿真验证. 设计 ...

  4. 单相桥式有源逆变电路matlab,单相桥式有源逆变电路在MATLAB中的建模与仿真

    电子技术研发Electronics R&D 电子技术 10.3969~.issn.1000-0755.2016.04.001 蔡红专 吴玉平 眸 涛 曹 琴 (西京学院控制工程学院,陕西 西安 ...

  5. 实例六 自动售饮料机

    实例六 自动售饮料机 3.2.1. 本章导读 了解自动售货机的工作流程以及各个工作状态,以及其testbench,最后在Robei可视化仿真软件经行功能实现和仿真验证. 设计原理 自动售货机的信号定义 ...

  6. 基于matlab数字基带,基于MATLAB的数字基带传输系统的仿真设计

    基于MATLAB的数字基带传输系统的仿真设计 绵阳师范学院 本科生毕业设计(论文) 题 目 基于MATLAB的数字基带 传输系统的仿真设计 专 业 电子信息科学与技术 院 部 物理与电子工程学院 学 ...

  7. 井下通风类毕业论文文献包含哪些?

    本文是为大家整理的井下通风主题相关的10篇毕业论文文献,包括5篇期刊论文和5篇学位论文,为井下通风选题相关人员撰写毕业论文提供参考. 1.[期刊论文]五阳煤矿井下通风系统的优化研究 期刊:<山东 ...

  8. 解读 8 位移位寄存器的设计

    8 位移位寄存器的设计 先了解下 8 位移位寄存器的设计的原理,先从基础开始:要求掌握 8 位移位寄存器原理,并根据原理设计 8 位移位寄存器模块以及设计相关testbench,最后在 Robei 可 ...

  9. 实例七— 8位移位寄存器的设计

    实例七 8位移位寄存器的设计(基于Robei工具的8位移位寄存器的设计) 4.1.1. 本章导读 设计目的 要求掌握8位移位寄存器原理,并根据原理设计8位移位寄存器模块以及设计相关testbench, ...

  10. C++语言Qt实现控件拖拽和连线类似可视化操作Simulink仿真类软件 电路仿真软件 和模型驱动等软件

    目标:开发一个电路仿真软件. 内部原理:qt编写电路元件连接的可视化界面,输出电路节点连接关系为一张表.matlab编写电路仿真算法,读取节点连接表,进行运算,得出仿真结果,qt读取仿真结果并且在界面 ...

最新文章

  1. python 申请内存空间、用于创建多维数组_python 申请内存空间,用于创建多维数组的实例...
  2. Django框架(4.django中进入项目的shell之后对数据表进行增删改查的操作)
  3. android data binding jetpack III 绑定一个方法
  4. SRS-DOLPHIN
  5. MySQL性能优化知识:长连接、短连接、连接池
  6. java的tcp实时接收json格式报文_tcp - 如何使用带有rsocket Java的TcpClientTransport将自定义数据格式转换为JSON - 堆栈内存溢出...
  7. 编译错误:[Error] initializer-string for array of chars is too long [-fpermissive]
  8. 怎么用Iometer测试存储性能
  9. 设计模式(Design Patterns)
  10. mysql主从同步搭建过程_mysql 主从复制搭建详细步骤
  11. 学一门计算机语言大体的过程,学习一门新编程语言的6个步骤
  12. Webview 非http或者https的网络请求拦截
  13. mp3文件怎么压缩大小
  14. 手机wps取消不等宽分栏_wps文字怎么取消分栏很简单,三个步骤即可取消
  15. 软件测试分为哪几个阶段?
  16. xp隐藏桌面计算机图标不见了怎么办,XP系统桌面IE图标不见了怎么办?IE图标消失了怎么恢复?...
  17. Linux入侵检查工具,linux系统入侵检测工具chkrootkit
  18. 比亚迪秦后排座椅拆卸
  19. pqi 更方便的使用pip源
  20. Linux(Centos7.8)中conda虚拟环境搭建LSTM神经网络基于django3.1.2的api接口

热门文章

  1. python dateutil_python时间处理模块dateutil
  2. 经纬度一度等于多少米
  3. Amazfit T-Rex Pro 体验:户外运动爱好者的装备清单里,有它一席之地
  4. 【stata】一些关于数据处理的基础知识(备查代码)
  5. 【图像处理】sobel边缘检测的实现
  6. 深入理解ext4文件系统
  7. keil5——安装教程附资源包
  8. 【软件定义汽车】SOA框架介绍
  9. SSM框架整合环境搭建
  10. 过滤器和拦截器区别以及执行顺序