1. Plotjuggler简介

帝国理工的大佬,Andrew Davison,在一个会议中建议:“Aim at demos, not tables. Build visualizations before algorithms. Work on small scale, simplified problems first. Make it real-time and plug in a live camera.”。尽可能在真实场景中实时展示算法的效果。

数据可视化通常涉及将传感器数据、机器人状态或其他相关信息以图形化方式展示出来,以便于理解和分析。先已有多种方法和工具来实现ROS 2数据可视化,例如Rviz2是ROS 2中用于3D机器人视觉的标准工具,它允许用户查看和交互机器人的3D模型、点云、网格、路径规划等;可以使用Python(如matplotlib、opencv)或C++(如Qt、OpenCV)来创建自定义的可视化界面。

RQT是一个基于Qt的GUI框架,通过插件的方式实现了各种各样的界面工具。PlotJuggler是一个类似于rqt_plot的基于Qt的数据可视化工具,但PlotJuggler拥有更强大和好用的功能。

2. 编译自定义msg

做机器人开发,一般会有自定义的msg,并且为了能可视化数据,我们需要在本地独立的ros2镜像下使用PlotJuggler。这两个前提条件意味着,我们需要先编译自定义msg。
(1)创建文件夹
首先在本地创建文件夹:
在这里插入图片描述

并把文件夹挂载到镜像文件中:
在这里插入图片描述

重新构建镜像:

docker run -d -p robot_env

(2)下载并编译
将文件下载到这个文件夹中:
在这里插入图片描述

启动并进入镜像:

docker start robot_env && udoke exec -it robot_env

编译:

taskset -c 0,1,2,3 colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release

在这里插入图片描述

3. Plotjuggler安装与启动

(1)安装Plotjuggler
sudo apt install ros-${ROS_DISTRO}-plotjuggler-ros

(2)运行Plotjuggler
source /opt/ros/humble/setup.bash
ros2 run plotjuggler plotjuggler

4. Plotjuggler的使用

我们这里主要讨论数据流实时显示,使用过程分为四步:
(1)读取所有可以监听的topic;
(2)选择需要监听的topic;
在这里插入图片描述
(3)将窗口划分为多个;
(4)将需要监听的数据拖到对应的窗口中。
在这里插入图片描述

5. 应用案例

机器人的控制包含多个层次,底层嵌入式发布出来的关节状态和接收指令,中间层做数据转换用于兼容策略层和底层,策略多个模块之间和中间层之间的通讯,将各层之间的数据可视化是排查各个模块异常行为的有效方法。
在这里插入图片描述

reference:
https://developer.baidu.com/article/details/3286851
https://blog.csdn.net/weixin_44773394/article/details/132372269
https://blog.csdn.net/weixin_44773394/article/details/132372269
https://zhuanlan.zhihu.com/p/508240623

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐