Setting Boxer as the ROS Master to Run Stretch

Not sure whether this is the right place to ask. We plan to set Boxer as the master and control two stretches at the same time. Unfortunately, when we ran our execution file, the process got stuck at the line self.trajectory_client = actionlib.SimpleActionClient("/"+self.model+"/"+self.model + '/stretch_controller/follow_joint_trajectory', FollowJointTrajectoryAction) (there is some adaptation to our code, but it can work when we set our desktop as the master). What could be the possible reason why it always times out?

Hi @JannaLam , I assume your describing about running the ROS master from the mobile robot Boxer and control two stretches from it using the modified Stretch ROS originating from this ongoing PR #116 (Multi-Robot Setup).

I currently don’t have a ROS Noetic setup to tryout and reproduce the timeout issue you are describing. I would start-off by inspecting the Joint Trajectory server’s name space that is running on the two robots and verify if they are visible to the ROS Master computer because the timeout or the block you mention happens when the SimpleActionClient node is trying to establish publishers and subscriptions (source code) to the JointTrajectoryServer in of the robot specific Name space you have set.

Hi, thank you! Yes, we are trying to implement that PR on Boxer right now. It worked for us when we set the master to local desktop but not Boxer. By any chance you may have any suggestions on how we should debug and check the interactions among servers if there is no GUI for us to visualize the rqt_graph?

Hi @JannaLam , I believe one best way to do it is via SSH’ing into the Boxer robot’s computer and you could try looking up the topics that are visible to the Boxer using the command /rostopic --list while both the robot’s stretch driver nodes are running given both has the ROS_MASTER_URI environment value set to the Boxer robot’s IP address.

Further you could also use variety of ROS command line tools to inspect the data traffic on running ros nodes. (E.g. rosnode to inspect a running node , rostopic to inspect, echo or publish data to a topic)
You can read through the official ROS Wiki documentation for the in-depth usage of the above tools.