Skip to content
Snippets Groups Projects

ROS Workspace

This is the ROS workspace which contains all of the projects needed for the robo_guide object tracking.

Some repositories use the git-lfs extension which has to be installed to pull all neccessary files.

The repository uses submodules to pull in all of the projects so this command for cloning:

git clone --recursive git@git.rwth-aachen.de:robo_guide/robo_guide_ws.git

Dependencies

Most of dependencies are included in the full ROS-Desktop environment. The other dependencies are either included as submodules in this workspace or can be installed via rosdep.

Only visp might require manual installation via an apt command (see below).

ROS

ROS Perception (compare with this REP) includes most of the packages that are needed. Otherwise install them via apt for your ros distro. In detail these packages are required:

If you have ROS melodic installed use rosdep inside the workspace folder:

rosdep install --from-paths src --ignore-src -r -y

Unfortunately the realsense camera needs some manual installation steps. But you might remove the package from the workspace and use your camera driver instead. The same goes for the iiwa and hand-eye-calibration related packages which are only required when mounting the camera on a robot.

visp

Needed for handy-eye-calibration install via:

sudo apt install libvisp-dev libvisp-doc visp-images-data

Rendering

The dependencies of scigl_render are handled via rosdep.

Unit testing

Dependencies can be installed via rosdep:

  • GTest

Note that GTest only installs the sources under Ubuntu, execute:

sudo apt install libgtest-dev build-essential cmake
cd /usr/src/googletest
sudo cmake .
sudo cmake --build . --target install

Robot communication

protocol buffers are installed via rosdep.

Build

In the past Ubuntu 16.04 and ROS Kinetic were used, which should still work. Right now Ubuntu 18.04 an ROS Melodic are in use and tested.

Since this is a mixed catkin & cmake workspace, the easiest and fastest way is to use the catkin tools, catkin_make_isolated or colcon build.

It is required to set a profile for compilation. Use the catkin_configure.bash script before you use catkin build. The srcipt calls:

catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release

Jetson config

IP configuration:

  • iiwa: 172.31.1.147
  • jetson: 172.31.1.148
  • laptop: 172.31.1.149

To enable comfortable remote access setup ssh keys on the laptop and copy them to the jetson. It is important to add the jetson to the known hosts:

ssh-keygen -t rsa -b 4096 -C "email@example.com"
ssh-copy-id -i .ssh/id_rsa.pub 
ssh -oHostKeyAlgorithms='ssh-rsa' nvidia@172.31.1.148

Export the environment variables on te laptop (e.g. in .bashrc):

export ROS_MASTER_URI=http://172.31.1.148:11311 # jetson as master
export ROS_IP=172.31.1.149

And on the jetson:

export ROS_MASTER_URI=http://172.31.1.148:11311 # jetson as master
export ROS_IP=172.31.1.8

Optionally add them to /etc/hosts for easier ssh commands:

172.31.1.147 iiwa
172.31.1.148 jetson