Skip to content

Tough 0.9 and part of 0.11 Installation

thatrobotguy edited this page Aug 23, 2018 · 21 revisions

These are the instructions for installing Tough on a laptop with Ubuntu 16.04 LTS and ROS 1 Kinetic already installed.

If you want Tough 0.11, these are the same instructions to start, but we will be overriding these changes in the next set of instructions.

We are assuming that the catkin workspace catkin_ws/is located under the home directory ~/.

First, we need to do a bunch of apt-get installations.

sudo apt-get install ros-kinetic-controller-interface
sudo apt-get install ros-kinetic-effort-controllers 
sudo apt-get install ros-kinetic-footstep-planner 
sudo apt-get install ros-kinetic-humanoid-*
sudo apt-get install ros-kinetic-multisense-*
sudo apt-get install ros-kinetic-robot-self-filter 
sudo apt-get install ros-kinetic-trac-ik-*
sudo apt-get install ros-kinetic-moveit-*
sudo apt-get install ros-kinetic-moveit-ros-*
sudo apt-get install ros-kinetic-laser-assembler

Or you could just do this:

sudo apt-get install ros-kinetic-controller-interface && sudo apt-get install ros-kinetic-effort-controllers && sudo apt-get install ros-kinetic-footstep-planner && sudo apt-get install ros-kinetic-humanoid-* && sudo apt-get install ros-kinetic-multisense-* && sudo apt-get install ros-kinetic-robot-self-filter && sudo apt-get install ros-kinetic-trac-ik-* && sudo apt-get install ros-kinetic-moveit-* && sudo apt-get install ros-kinetic-moveit-ros-* && sudo apt-get install ros-kinetic-laser-assembler

Now we need to make sure we have Java 8 installed. You can follow these links: tipsonubuntu webupd8 Or you can do these steps:

sudo add-apt-repository ppa:webupd8team/java
sudo apt update
sudo apt install oracle-java8-installer

Now we check the installation:

javac -version

You should get something like this:

javac 1.8.0_181

Then we set environment variables and the default java version.

sudo apt install oracle-java8-set-default

Now we start editing the ~/.bashrc file. We need to make sure that the ~/.bashrc has the JAVA_HOME variable set as well as the IHMC_SOURCE_LOCATION variable. Add these to the end of your ~/.bashrc

export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export IHMC_SOURCE_LOCATION=~/repository-group/ihmc-open-robotics-software

Notice the folder ~/repository-group. This is going to hold all of the IHMC repos. The WPI repos will go in the catkin workspace ~/catkin_ws. We are separating the organization dependencies because things will go south if we don't. Start with these commands:

# We start in the user's home directory.
cd && git clone https://github.com/ihmcrobotics/repository-group.git
cd repository-group
git clone https://github.com/WPI-Humanoid-Robotics-Lab/ihmc-open-robotics-software && cd ihmc-open-robotics-software/ && git checkout 0-9-support-16.04

Now we start installing repositories in our catkin workspace. Moving on to the Tough library dependencies.

cd ~/catkin_ws/src
mkdir ihmc_repos && cd ihmc_repos # The repos come from IHMC, but WPI hosts their own forks, so we name it by the source
git clone  https://github.com/WPI-Humanoid-Robotics-Lab/ihmc-ros-control.git && cd ihmc-ros-control && git checkout 0-9-support-16.04
cd ..
git clone  https://github.com/WPI-Humanoid-Robotics-Lab/ihmc_atlas_ros.git && cd ihmc_atlas_ros/ && git checkout 0.9.0
cd ..
git clone https://github.com/WPI-Humanoid-Robotics-Lab/ihmc_ros_core.git && cd ihmc_ros_core && git checkout 0.9.2
cd ~/catkin_ws/

Now for the actual Tough repository.

cd ~/catkin_ws/src/ && git clone https://github.com/WPI-Humanoid-Robotics-Lab/tough.git && cd tough && git checkout kinetic-devel && cd ~/catkin_ws

And then we source to make sure everything is kosher.

source ~/.bashrc
source devel/setup.bash

Now we run the script that compiles everything and runs the node that controls Tough. BUT WAIT, THERE'S MORE! We need to catkin_make now that we have all of our packages in our catkin workspace. Under ~/catkin_ws run this ever-so-sly command: (Because we only have 1 command written down below here...

cd ~/catkin_ws
catkin_make

Now we can start the rosnode that compiles everything.

roslaunch ihmc_atlas_ros ihmc_atlas_scs_demo01.launch use_local_build:=true

NOTE: Do not forget to have your ROS_HOSTNAME and ROS_MASTER_URI correctly set.

Now we need to load the atlas robot model. Run this in a new terminal:

roslaunch tough_perception_bringup field_laser_assembler.launch robot_name:=atlas

Now we need to start the node that plans footsteps. Run this in a new terminal:

roslaunch tough_footstep tough_footstep.launch 

Now that we have installed and started Tough, we need to run the ROS node that actually gives us the ability to control the robot. Run this in a new terminal:

rosrun tough_gui tough_gui 

You may notice that in order to path plan, we need to approve a path after creating it. Run this command in another terminal to approve footstep paths:

rostopic pub /approve_footsteps std_msgs/Empty

In all, there are 4 commands to run the Tough simulator and 1 command to approve path plans.

roslaunch ihmc_atlas_ros ihmc_atlas_scs_demo01.launch use_local_build:=true
roslaunch tough_perception_bringup field_laser_assembler.launch robot_name:=atlas
roslaunch tough_footstep tough_footstep.launch 
rosrun tough_gui tough_gui 
rostopic pub /approve_footsteps std_msgs/Empty

We have now covered the steps to install Tough 0.9. We have also covered how to run Tough 0.9. If you want to run Tough 0.11, continue on to these instructions.