Docker workspaces to use and test the Thunder robot server in a ROS 2 environment, developing inside a container.
This environment integrates ROS2 Humble with the Franka ecosystem and integrates the robot server. It also enables the use of GUI interfaces (e.g. Gazebo and RViz).
If you find this useful, you can cite the original workspace repository, Thunder Dynamics, and/or me in your work.
Install Docker Community Edition (ex Docker Engine).
You can follow the installation method through apt.
Note that it makes you verify the installation by running sudo docker run hello-world.
It is better to avoid running this command with sudo and instead follow the post installation steps first and then run the command without sudo.
Follow with the post-installation steps for Linux.
This will allow you to run Docker without sudo.
You also would probably need Visual Studio Code and the Dev Containers extension
Clone the repository wherever you want on the system with recursive behavior(better to clone with linux for line endings, not tested with WSL but should work)
git clone --recursive https://github.com/CentroEPiaggio/test_robot_serverThe docker base image and the ROS version can be changed by modifying the BASE_IMAGE and the BASE_TAG in the .devcontainer/Dockerfile.
The build.bash and the run.bash files are used to build and run the image from terminal.
attach.bash can be used to connect from the terminal to the same container created with DevContaiers extension.
The first time the container is created on the computer, you probably need to run ./first_compile.bash that initialize and build the stuffs from Franka. Then, you can compile your ROS2 packages with
colcon build --symlink-installThere are two different ways to use this framework:
- Using DevContainers that creates a persistent container with name
ros2_franka_roscon_devin which all the installations persists since a new build. This scenario is usefull while you are developing. However, the changes will be lost when you recreate the container, so pay attention. - Using the terminal, each container created in this way is erased upon exit and have no persistency. This is better for running demos or execute commands.
Just open the main folder with vscode and click on Reopen in Container when asked.
Or, if you ave already a running container, click on Attach to Running Container.. int the DevContainers extension.
Build the docker image:
./build.bashRun the container:
./run.bash- Davide De Benedittis
- Baptiste Busch: creation of a ROS workspace in Docker
- Docker best practises