Joint State Visualization

I’ve been working on simulating the UR10 in Gazebo, simulating the tracketory_msgs/JointTrajectory interface with gazebo_ros_control and I’ve been spending a lot of time tuning the controller. To help with that I’ve been using lots of instances of the plot plugin in rqt to plot the joint states of the arm to find position biases, look at the response curve, look for oscillations, and to see if I’m getting close to my effort and velocity limits. I’ve found a few frustrating things with using lots of individual plots, like not easily being able to line up the x-axis scales, having non-descriptive legends (e.g. /joint_states/position[0] rather than elbow_joint), and generally taking a lot of steps to introspect an additional part of the joint state.

So my question is, are there any tools out there that you guys use that make this easier to do? If not, do you guys think it would be nice to have an rqt plugin dedicated to plotting joint states?

I know this has a little more to do with ROS control than moveit, but it was the closest matching category on discourse.

4 Likes

I agree, a convenient visualization of Joint State is a tool missing from ROS. To me, it has also been more of a control than a motion planning issue.

I’d like to add two more nice-to-haves to your already long list:

First, I often want to switch between different groups of joints I want to plot. De-/selecting 12+ plots is annoying. It would be cool to specify convenient configurations, i.e. left-arm: position + velocities.

Second, stuff happens fast when tweaking controllers, and often you only figure out what you want to see after a motion happened. Recording a trajectory and then conveniently plotting the relevant parts after the fact seems the way to go for me.

I’m also curious whether someone has already has a great tool for this. So, thanks for starting this discussion.

+1 to better GUI for joint state visualization

I’ve used RQT to plot joint values for a long time, and I’ve never been satisfied with the GUI. (Actually I created the tutorial you’re talking about).

This might sit next to or within https://github.com/ros-controls/ros_control/tree/kinetic-devel/rqt_controller_manager

I’ve been using a very hacky script to plot both the goal trajectory and the actual joint values for a given joint controller: https://gist.github.com/jonbinney/2631ebeb39a4663510205461efc7f5d9

Something that plotted those values for more than one joint, and that was more configurable, and that was integrated into RQT would be awesomely useful…

1 Like

Coming back to this four years later… Has anything changed? anyone found new tools they like for this?

I suggest you to take a look at PlotJuggler. It is a pretty great tool for real-time plotting.

3 Likes