rqt_plot画多个图,图中包含多条曲线
如何多条曲线一起输出在同一个图上
自定义消息或者使用ros自带的消息格式将你想要画的标量的数据放在一个消息里进行传输,这里不推荐使用MltiArray类的消息,易错,搞成功比较麻烦不如自己定义消息
踩坑:笔者首先使用的是Float32MultiArray消息用的赋值方法为push_back直接赋值
while(1)
{
std_msgs::Float32MultiArray pose
pose.data.push_back(Euler.pitch)
pose.data.push_back(Euler.yaw)
pose.data.push_back(Euler.roll)
}
结果发现(参照官网)
std_msgs/Float32MultiArray Message
File: std_msgs/Float32MultiArray.msg
Raw Message Definition
# Please look at the MultiArrayLayout message definition for
# documentation on all multiarrays.
MultiArrayLayout layout # specification of data layout
float32[] data # array of data
Compact Message Definition
std_msgs/MultiArrayLayout layout
float32[] data
在赋值前需要定义该消息的layout才能正确使用,直接赋值在rqt_plot里面无法画出图,具体怎么做参考https://answers.ros.org/question/324541/how-to-use-float32multiarray-publisher/
新建一个pose.msg文件 内容如下具体怎么编译自定义消息可以参照古月居ros入门21讲
float32 pitch
float32 yaw
float32 roll
然后在ros_plot加入话题名称就可以,利用GUI界面里的加减号可以将不同的话题中的各个数据显示到一张图上,也可以选择你需要的不同话题中的某几个数据作对比。
如何同时显示多张图
rosrun rqt_plot rqt_plot
想画几个图开几个rqt_plot节点,它们彼此不冲突。
这里注意:如果没有在.bashrc中加入工作空间路径则应该在每个要使用的终端都要
source devel/setup.bash
不然会出现不能画你的节点中的数据