The code can be used with ROS1 Noetic and ROS2 Humble (still under development). When switching between the different ROS versions the Building Instructions described in below have to be repeated.
Docker is an application that simplifies the process of managing application processes in containers. Containers let you run your applications in resource-isolated processes.
To install Docker on Ubuntu 22.04 follow the instructions here and for Ubuntu 20.04 see this.
If you have a Nvidia gpu, run nvidia-smi
to check, you also need to install the NVIDIA Container Toolkit to use it in Docker.
Follow the instructions here.
Clone this repo including its submodules:
git clone [email protected]:tud-amr/mobile-manipulator-compliance.git --recurse-submodules
Build the Docker container:
cd docker
bash build
When asked, select the full version and your ROS version.
To open the Docker container, run bellow command in /docker:
bash run
Since we use the same image for simulation and the real robot, we also need to build the Dingo driver. To build dingo-driver run:
cd ..
cd cpp
bash build
We make use of symbolic definitions for e.g. the gravitational vector. To build them run:
cd ..
cd python/compliance_control/control/symbolics
bash compile
Build ros workspace:
cd ../../../../
cd ros
bash build
Either source workspace (<source devel/setup.bash>) or ctr+d to get out of the docker, and in the docker folder. This autonatically sources the workspace:
cd ..
cd docker
bash run
Run to test if the installation was successful.
roslaunch launcher simulation.launch
To close the simulation window, press esc when the window is selected. And enter ctrl + c in the terminal.