This tutorial describes how to use Sawyer with Gazebo the standard Physics Simulator for ROS.
Note: This page describes an upcoming feature in Intera 5.2. Gazebo Simulation for Sawyer is not yet released.
Please visit the Gazebo Tutorials homepage for more information
Installation/Prerequisites
- Make sure you have followed the Workstation Setup tutorial before beginning this section
- Ensure the following software packages are installed:
$ sudo apt-get install gazebo7 ros-kinetic-qt-build ros-kinetic-gazebo-ros-control ros-kinetic-gazebo-ros-pkgs ros-kinetic-ros-control ros-kinetic-control-toolbox ros-kinetic-realtime-tools ros-kinetic-ros-controllers ros-kinetic-xacro python-wstool ros-kinetic-tf-conversions ros-kinetic-kdl-parser
Baxter Simulator Installation
- From your catkin workspace where the SDK resides, use wstool to install and update:
Install baxter_simulator
$ cd ~/ros_ws/src
$ wstool init .
$ wstool merge https://raw.githubusercontent.com/RethinkRobotics/baxter_simulator/kinetic-devel/baxter_simulator.rosinstall
$ wstool update
IMPORTANT: Make sure all simulator repositories update to their proper branch.
Build Source
$ source /opt/ros/kinetic/setup.bash
$ cd ~/ros_ws
$ catkin_make
- Use baxter.sh - it has a special hook for sim:
$ cp src/baxter/baxter.sh .
- Edit the your_ip value in baxter.sh
- First, make sure you have installed ros-indigo-desktop-full: http://wiki.ros.org/indigo/Installation/Ubuntu
Install baxter_simulator
$ sudo apt-get install ros-indigo-baxter-simulator
- Use baxter.sh - it has a special hook for sim:
$ cd ~/ros_ws
$ wget https://raw.githubusercontent.com/RethinkRobotics/baxter/master/baxter.sh
- Edit the your_ip value in baxter.sh
Simulation
- Run the baxter shell script with sim specified:
$ ./baxter.sh sim
- Start simulation with controllers:
$ roslaunch baxter_gazebo baxter_world.launch
You should wait for the following three lines before the simulator is truly running:
[ INFO] [1400513321.531488283, 34.216000000]: Simulator is loaded and started successfully [ INFO] [1400513321.535040726, 34.219000000]: Robot is disabled [ INFO] [1400513321.535125386, 34.220000000]: Gravity compensation was turned off
By default the robot would be in disabled state. To enable, run the enable_robot script from the baxter_tools package. To start and switch the controllers, use the JointCommand topic as documented in the Baxter SDK.
- Optional: Test/tune the velocity controllers or position controllers using a RQT dashboard GUI. Make sure you are in the right joint command mode when using these:
$ roslaunch baxter_sim_hardware baxter_sdk_position_rqt.launch
or
$ roslaunch baxter_sim_hardware baxter_sdk_velocity_rqt.launch
Smoke Test
Check if the simulator was installed and launched successfully by typing the following commands:
$ rosnode list
This should list the nodes as here.
$ rostopic list
This should list the topics as here.
$ rostopic echo /robot/state
By default, the following messages should be displayed at 100 HZ.
enabled: False
stopped: False
error: False
estop_button: 0
estop_source: 0
---
Run SDK Examples
- Start Wobbler example:
$ ./baxter.sh sim
$ rosrun baxter_examples joint_velocity_wobbler.py
- Start keyboard joint position example:
$ ./baxter.sh sim
$ rosrun baxter_examples joint_position_keyboard.py
For additional information on the interfaces that are implemented with this release, visit the Simulator API page.
Troubleshooting
- Please refer to the troubleshooting page Gazebo Troubleshooting