Difficulty setting up untethered operation

Hi, I am trying to set up the untethered operation with the ROS remote master. However, I am having a few issues:

  • When trying to run roslaunch stretch_core stretch_driver.launch the robot’s Lidar does not begin to spin as the guide says it should. I’ve included the terminal output at the end of the post.

  • Since that Lidar did not seem to work, I tried roslaunch stretch_navigation mapping.launch which I have successfully run directly from the robot and works fine. However, with the remote master, when I open rviz, there are no errors but the visualization does not seem to load as I would expect:

I was wondering if anyone had ideas on how to solve this. Thanks!

Output from roslaunch stretch_core stretch_driver.launch
roslaunch stretch_core stretch_driver.launch
… logging to /home/hello-robot/.ros/log/e0bbe94e-be48-11eb-b1e1-94e6f7b7e657/roslaunch-stretch-re1-1042-13792.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://stretch-re1-1042:46201/

SUMMARY

PARAMETERS

  • /joint_state_publisher/rate: 15.0
  • /joint_state_publisher/source_list: [’/stretch/joint_…
  • /robot_description: <?xml version="1…
  • /robot_state_publisher/publish_frequency: 15.0
  • /rosdistro: melodic
  • /rosversion: 1.14.10
  • /stretch_driver/controller_calibration_file: /home/hello-robot…
  • /stretch_driver/rate: 25.0
  • /stretch_driver/timeout: 0.5

NODES
/
joint_state_publisher (joint_state_publisher/joint_state_publisher)
robot_state_publisher (robot_state_publisher/robot_state_publisher)
stretch_driver (stretch_core/stretch_driver)

auto-starting new master
process[master]: started with pid [13802]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to e0bbe94e-be48-11eb-b1e1-94e6f7b7e657
process[rosout-1]: started with pid [13813]
started core service [/rosout]
process[joint_state_publisher-2]: started with pid [13820]
process[robot_state_publisher-3]: started with pid [13821]
process[stretch_driver-4]: started with pid [13822]
[ WARN] [1622050578.783371765]: The root link base_link has an inertia specified in the URDF, but KDL does not support a root link with an inertia. As a workaround, you can add an extra dummy link to your URDF.
[INFO] [1622050579.727246]: For use with S T R E T C H ™ RESEARCH EDITION from Hello Robot Inc.
[INFO] [1622050579.729606]: /stretch_driver started
[INFO] [1622050579.733590]: mode = position
[INFO] [1622050579.737480]: broadcast_odom_tf = False
[INFO] [1622050579.741509]: Loading controller calibration parameters for the head from YAML file named /home/hello-robot/catkin_ws/src/stretch_ros/stretch_core/config/controller_calibration_head.yaml
[INFO] [1622050579.747226]: controller parameters loaded = {‘tilt_looking_up_offset’: -0.0024786203545114657, ‘arm_retracted_offset’: 0.002953270552178001, ‘tilt_angle_backlash_transition’: -0.4, ‘tilt_angle_offset’: 0.029210843297892045, ‘pan_angle_offset’: -0.07314618282230227, ‘pan_looked_left_offset’: -0.009777109500874293}
[INFO] [1622050579.750196]: self.head_tilt_calibrated_offset_rad in degrees = 1.67365803699
[INFO] [1622050579.752656]: self.head_pan_calibrated_offset_rad in degrees = -4.19096756321
[INFO] [1622050579.755050]: self.head_pan_calibrated_looked_left_offset_rad in degrees = -0.560187110237
[INFO] [1622050579.757548]: self.head_tilt_backlash_transition_angle_rad in degrees = -22.9183118052
[INFO] [1622050579.758796]: self.head_tilt_calibrated_looking_up_offset_rad in degrees = -0.142014485329
[INFO] [1622050579.759736]: self.wrist_extension_calibrated_retracted_offset_m in meters = 0.00295327055218
[INFO] [1622050579.766352]: /stretch_driver rate = 25.0 Hz
[INFO] [1622050579.767227]: /stretch_driver timeout = 0.5 s
[INFO] [1622050579.768590]: /stretch_driver use_fake_mechaduinos = False
[INFO] [1622050579.769401]: /stretch_driver base_frame_id = base_link
[INFO] [1622050579.770213]: /stretch_driver odom_frame_id = odom
[INFO] [1622050581.554394]: /stretch_driver: Changed to mode = position

Hi @lstegner, regarding the spinning Lidar, you’ve caught an error in our documentation. The stretch_driver.launch file does not bring up the lidar node, so it should not spin. I’ve corrected the docs.

The likely reason why the visualization does not load correctly is because the topics are not being corrected forwarded to your machine. After initializing ROS remote master, can you use the rostopic command to confirm whether the topics appear on your machine.

$ rostopic list
$ rostopic echo /odom

Hi @bshah, thank you for the help!

Output from $ rostopic list:
/gmapping_record_map/entropy
/imu_mobile_base
/imu_wrist
/joint_states
/magnetometer_mobile_base
/map
/map_metadata
/odom
/rosout
/rosout_agg
/scan
/stretch/cmd_vel
/stretch/joint_states
/stretch_controller/follow_joint_trajectory/cancel
/stretch_controller/follow_joint_trajectory/feedback
/stretch_controller/follow_joint_trajectory/goal
/stretch_controller/follow_joint_trajectory/result
/stretch_controller/follow_joint_trajectory/status
/tf
/tf_static

Running $ rostopic echo /odom does not produce any output–it just runs until I stop it.

I guess I should also mention that I just realized I was setting the remote master slightly different than the ROS docs.
Initially, I was not using the username, just setting it as export ROS_MASTER_URI=http://ip-address:11311
When I switch to using the specified way, export ROS_MASTER_URI=http://username@ip-address:11311 then running rviz pops up a message “Could not contact ROS master at, retrying…”
However, the outputs from the rostopic list and rostopic echo /odom don’t change.

Rostopic list working, but echo not producing any output is a common issue with getting ROS Remote Master setup. Solving it should also resolve the Rviz issue. I ran into this issue as well, I was able to resolve it by including the following on the robot (not the remote machine):

$ export ROS_IP=ip-address
$ export ROS_MASTER_URI=http://ip-address:11311/

If you plan on running remote master often, you can add these to your .bashrc

1 Like

That did the trick; thank you!

1 Like