This tutorial describes how to use Sawyer with Gazebo the standard Physics Simulator for ROS.
Contents
Installation/Prerequisites
- Make sure you have followed the Workstation Setup tutorial before beginning this section.
- Ensure the following software packages are installed:
ROS Noetic | $ sudo apt-get install gazebo11 ros-noetic-gazebo-ros ros-noetic-gazebo-ros-control
ros-noetic-gazebo-ros-pkgs ros-noetic-ros-control ros-noetic-control-toolbox ros-noetic-realtime-tools
ros-noetic-ros-controllers ros-noetic-xacro python3-wstool ros-noetic-tf-conversions ros-noetic-kdl-parser |
ROS Melodic | $ sudo apt-get install gazebo9 ros-melodic-qt-build ros-melodic-gazebo-ros-control
ros-melodic-gazebo-ros-pkgs ros-melodic-ros-control ros-melodic-control-toolbox ros-melodic-realtime-tools
ros-melodic-ros-controllers ros-melodic-xacro python-wstool ros-melodic-tf-conversions ros-melodic-kdl-parser |
ROS Kinetic | $ 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 ros-kinetic-sns-ik-lib |
Sawyer Simulator Installation
From your catkin workspace where the SDK resides, use wstool to install and update:
Install sawyer_simulator
ROS Noetic | $ mkdir -p ~/ros_ws/src
$ cd ~/ros_ws/src
$ git clone https://github.com/RethinkRobotics/sawyer_simulator.git -b noetic_devel
$ git clone https://github.com/RethinkRobotics-opensource/sns_ik.git -b melodic-devel
$ cd ~/ros_ws/src
$ wstool init .
$ wstool merge sawyer_simulator/sawyer_simulator.rosinstall
$ wstool update |
ROS Melodic | $ mkdir -p ~/ros_ws/src
$ cd ~/ros_ws/src
$ git clone https://github.com/RethinkRobotics/sawyer_simulator.git
$ git clone https://github.com/RethinkRobotics-opensource/sns_ik.git -b melodic-devel
$ cd ~/ros_ws/src
$ wstool init .
$ wstool merge sawyer_simulator/sawyer_simulator.rosinstall
$ wstool update |
ROS Kinetic | $ mkdir -p ~/ros_ws/src
$ cd ~/ros_ws/src
$ git clone https://github.com/RethinkRobotics/sawyer_simulator.git
$ cd ~/ros_ws/src
$ wstool init .
$ wstool merge sawyer_simulator/sawyer_simulator.rosinstall
$ wstool update |
IMPORTANT: Make sure all simulator repositories update to their proper branch.
Build Source
ROS Noetic | $ source /opt/ros/noetic/setup.bash
$ cd ~/ros_ws
$ catkin_make |
ROS Melodic | $ source /opt/ros/melodic/setup.bash
$ cd ~/ros_ws
$ catkin_make |
ROS Kinetic | $ source /opt/ros/kinetic/setup.bash
$ cd ~/ros_ws
$ catkin_make |
Simulation
The intera.sh shell has a special hook of *sim* for Simulation. Run the Intera shell script with sim specified:
$ ./intera.sh sim
Start simulation with controllers:
$ roslaunch sawyer_gazebo sawyer_world.launch
Smoke Test
Check if the simulator was installed and launched successfully by typing the following commands:
$ rosnode list
This should list the nodes.
$ rostopic list
This should list the topics.
$ 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 Joint Torque Springs example:
$ ./intera.sh sim
$ roslaunch sawyer_gazebo sawyer_world.launch
*in a new terminal*
$ ./intera.sh sim
$ rosrun intera_examples joint_torque_springs.py
Or, Start Simulated Pick and Place example:
$ ./intera.sh sim
$ roslaunch sawyer_sim_examples sawyer_pick_and_place_demo.launch
For additional information on the interfaces that are implemented with this release, visit the Simulator API page.