ROS2学习-使用plotjugger做数据可视化
本文介绍了机器人开发中的数据可视化工具PlotJuggler的使用方法。首先阐述了数据可视化的重要性,并比较了PlotJuggler与Rviz2、RQT等工具的特点。详细说明了在ROS 2环境下编译自定义消息的步骤,包括创建文件夹、构建镜像和编译过程。然后介绍了PlotJuggler的安装与启动方法。重点讲解了PlotJuggler的四个使用步骤:读取topic、选择监听topic、窗口划分和数据
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
更多推荐
所有评论(0)