Skip to content
Yuxiang Gao edited this page Jul 13, 2022 · 10 revisions

Everything stretch related


Informations

user: hello-robot
passwd: hello2020

The official doc: https://docs.hello-robot.com/ https://docs.hello-robot.com/quick_start_guide/

The specific instructions for the battery charger to avoid damage to the battery: https://docs.hello-robot.com/robot_safety_guide/

The ros related environment variables are managed by direnv and will be automatically loaded when cd into catkin_ws. Without special instruction, all commands on both the local machine and the stretch are run from catkin_ws dir.


Web-based remote control

When the run.launch is launched, you can connect to the robot and control it using the web app: http://intuitivecomputing.jhu.edu/stretch-web-app/#/controller

stretch_ros

The official code are in stretch_ros repo. Currently on the stretch, the remote origin is set to https://github.com/yuxiang-gao/stretch_ros and upstream is set to https://github.com/hello-robot/stretch_ros.git in order to sync local change while being able to get updates from the official repo.

To update stretch_ros:

cd catkin_ws/src/stretch_ros

# Fetch all the branches of the remote into remote-tracking branches
git fetch upstream

# Make sure that you're on your master branch: 
git checkout master

# Rewrite your master branch so that any commits of yours that 
# aren't already in upstream/master are replayed on top of that 
# other branch: 
git rebase upstream/master

Mapping

The main launch file is sp_navigation/launch/nav_3d.launch, the maps are stored in the same package, under the maps directory. The octomap package needs two maps, 2d map is stored in map_xxx.pgm and map_xxx.yaml, the 3d map is stored in octo_xxx.bt

2d mapping

  1. On the local machine, ssh into strech by typing ssh stretch or ssh [email protected] on the host computer.

  2. In the ssh terminal, run

roslaunch stretch_navigation  mapping.launch rviz:=false

and on the local machine, run rviz -d octomap_mapper.rviz

  1. Then use keyboard (i,j,l,, for forward left, right, and back) drive the robot around until the map is complete, then save the map by running:
rosrun map_server map_saver -f /home/hello-robot/catkin_ws/src/sterile_processing/sp_navigation/maps/map_<name>
  1. Modify the map_name argument in sp_navigation/launch/nav_2d.launch.

Octomapping

  1. On the stretch, run:
roslaunch sp_core robot_nav_bringup.launch
roslaunch sp_navigation octomapping.launch
  1. On the local machine, launch rviz, and use 2d Pose estimation option to give a reasonable starting point, so that the robot's current location align with the 2d map: rviz -d octomap_mapper.rviz

  2. Drive the robot around to finish mapping and save:

rosrun octomap_server octomap_saver -f /home/hello-robot/catkin_ws/src/sterile_processing/sp_navigation/maps/octo_<map_name>.bt
  1. Modify the map_name argument in sp_navigation/launch/nav_3d.launch.

Navigation

On stretch:

roslaunch sp_core run.launch

On local Ubuntu machien:

rviz -d navigation.rviz

Tips: To find out the map coordinates of a specific location, publish the point using rviz and see the terminal output. An example of the results: Position(0.23,0.808,0.000), Orientation(0,0,0.951,0.31)

Main statemachine

When the navigation is launched, run:

rosrun sp_core state_machine_node

To start the workflow, you need to trigger a service call to /sp_sm/start. To post orders, publish a message to /sp_sm/post_orders (disabled now for demo) To clear orders, trigger call to /sp_sm/clear_orders

All three of these can be accessed through the web-based interface as well. (the order publishing has not been implemented yet, right now it just trigger the /sp_sm/start service )

There is also a gui for service call: rosrun rqt_service_caller rqt_service_caller

Calibration for the grasping

The states in the state machine are defined in src/custom_states.py. There are a few offsets that needs to be calibrated for better grasping:

  • Under MagnetState
wrist_extension_offset_m
forward_offset_m
lift_offset_m
  • Under PostMagnetState
post_grasp_lift_m
joint_wrist_yaw # radians first one: drop INCREASE a little
Clone this wiki locally