This post is meant to serve as an announcement of a change in how joint_state_publisher works in Kinetic and Melodic.
For a while now, joint_state_publisher could be run in two separate modes; either as a standalone ROS node, or as a ROS node with an attached PyQt GUI useful for manipulating joints. This worked OK, but ended up dragging GUI package dependencies into the robot metapackage, which is prohibited.
To remedy this, we merged https://github.com/ros/joint_state_publisher/pull/31, which splits joint_state_publisher into two separate packages;
joint_state_publisher (which just has the ROS node), and
joint_state_publisher_gui (which has the ROS node and the attached GUI). For backwards compatibility, if
joint_state_publisher is run with the
use_gui parameter set to true, we’ll automatically launch
joint_state_publisher_gui. In Noetic, the
use_gui parameter and this backwards-compatibility portion will be removed.
Please respond here if you have questions or comments about this.