Install
This page describes how to create a catkin workspace and install Ein.
Install Ubuntu Trusty 14.04 LTS.
Install ROS Indigo as per http://wiki.ros.org/indigo/Installation/Ubuntu
If you are on Trusty 14.04 LTS with Indigo, you need the non-free functionality of opencv.
Install other Ein dependencies:
sudo apt-get install qt5-default python-wstool ros-indigo-object-recognition-msgs libgsl0-dev ros-indigo-serial ros-indigo-object-recognition-msgs ros-indigo-pcl-ros libgsl0-dev qt5-default screen
Create your catkin workspace:
mkdir -p ~/catkin_ws/src
Put Ein in it.
cd ~/catkin_ws/src
git clone http://github.com/h2r/ein
Use wstool to check out the Baxter SDK. These commands check out the most recent version of the SDK; if you are running an older version you will need to check out the correct branch. If you are using the jaco, instead install the JACO SDK. If pidrone, install pidrone_pkg. The build will automatically detect which robot packages are in your workspace and compile Ein for that robot. This switch is done with a conditional flag in the CMakefile, so edit the CMakefile directly to force it to compile for a particular robot.
wstool init .
wstool merge https://raw.githubusercontent.com/RethinkRobotics/baxter/master/baxter_sdk.rosinstall
wstool update
Next run catkin_make for the first time:
cd ~/catkin_ws/src
source /opt/ros/indigo/setup.bash
catkin_make
The catkin_make command fail, but will create the devel directory so that the
Rethink baxter.sh script will work.
Copy baxter.sh from the Ein directory into the top of your workspace:
cd ~/catkin_ws/src && cp src/ein/baxter.sh .
You can also use the one distributed by Rethink, but we have modified theirs to include some nice environment variables to set your ROS_HOSTNAME or ROS_IP and ROS_MASTER_URI.
cd ~/catkin_ws
./baxter.sh
If using another robot, copy setup.sh to the root directory. If you are using baxter, modify setup.sh to source Rethink’s baxter.sh script.
Now build again; this build should succeed:
catkin_make
Before running Ein, you should sync the time on your workstation with your baxter:
sudo ntpdate <baxter name>
Note that Baxter syncs its time using ntp to pool.ntp.org, and this server cannot be changed (as per Rethink’s instructions). See our FAQ entry for more information.
To run the program, from the root of your catkin workspace, run the following command:
catkin_make && gdb --args ./devel/lib/ein/ein _data_directory:="$(rospack find ein)/default" physical left
And enter ‘r’ to start the program from within gdb. For safety purposes, the arm should not move at startup.
We strongly recommend running ein from inside of GNU Screen. We have provided a screen configuration file to make this easy. Go to the root of your catkin workspace and run
BAXTER=<your_baxter> screen -c src/ein/ein_baxter.screenrc
Replease
If at any time you need to quit, you can type ` :quit
in the
screen session.
At this point you should be able to run Rethink’s tools; for example to print the status of the robot:
rosrun baxter_tools enable_robot.py -s
Commands such as rostopic echo
, rostopic list
and the like should
all work. If these do not work, you may have network problems or ROS
configuration problems preventing you from connecting to Baxter. A
common problem is that the version of the SDK is a different version
from the run running on your robot. See the Rethink
SDK for more
information. Another problem is that your ROS_MASTER_URI or
ROS_HOSTNAME or ROS_IP are set incorrectly.