The docker build repository for the Roboethics competition
To initial start the simulation and programming environment
$ make run
echo "Starting competition container named roboethics_temp_awerner"
Starting competition container named roboethics_temp_awerner
docker run -it --net host --name roboethics_temp_awerner ghcr.io/raise-lab/roboethics_competition:latest
Roboethics Competition Docker Image
If you close this window, all applications in the docker will be terminated
root@robotlab-lt1:/tiago_public_ws# initialize_competition_workspace.sh
...
Competition workspace successfull initialized
root@robotlab-lt1:/tiago_public_ws# start_simulator.sh
...
Simulation started successfully, access it with your web browser via http://localhost:6080
root@robotlab-lt1:/tiago_public_ws# start_notebook_server.sh
...
Notebook server is now accessible at http://localhost:8888/tree?
- The robot inside the simulation is available through the link http://localhost:6080
- The competition tutorials can be accessed through the link http://localhost:8888
To stop working, just close the shell/stop the docker container.
To resume work, run
$ make continue
...
root@robotlab-lt1:/tiago_public_ws# start_simulator.sh
...
Simulation started successfully, access it with your web browser via http://localhost:6080
root@robotlab-lt1:/tiago_public_ws# start_notebook_server.sh
...
Notebook server is now accessible at http://localhost:8888/tree?
Please find all information for submitting your designs on our competition website.
In case you need to update your docker image/container to a new version and want to keep your current notebook contents:
- Run
make pack
, creatingnotebook_export.tar.bz2
- Run
make pull
, updating the docker image - Run
make clean
, stopping the current container and deleting all modifications inside the container - Run
make run
, starting the new container - Run
make unpack
, copying your previous notebooks into the new container
docker: Error response from daemon: Conflict. The container name "/roboethics_temp_..." is already in use by container ....
The competition container is already running, you can remove it with make clean
.
It's located in /tmp/ros.log
Yes. But then you are a bit on your own. And finally things will have to run in this docker. You can use http://wiki.ros.org/Robots/TIAGo/Tutorials/Installation/TiagoSimulation as a starting point for your setup.
killall roslaunch
To restart run
source /competition_ws/devel/setup.bash
roslaunch roboethics_competition_api simulation.launch
See ROS Documentation for support on a per-vendor basis.
Below is a quickstart guide for Intel GPUs:
Before running make run
, use
export DOCKER_OPTIONS="--env DISPLAY --ipc=host --volume=/tmp/.X11-unix:/tmp/.X11-unix:rw --device /dev/dri:/dev/dri -p 6080:6080 -p 8888:8888 --gpus=all"
If you are using a Nvidia GPU, additionally run this
make roboethics_competition_nvidia
export IMAGE_SUFFIX=:nvidia
then to run the simulation instead of start_simulator.sh
cd /competiton_ws
source devel/setup.bash
roslaunch roboethics_competition_api simulation.launch
Ignore this section if you are a participant.
For video recording the whole screen needs to be captured. For this a tool like ffmpeg or vokoscreen can be used. It can be started from python. The disadvantage is the non-determinism because the execution time is cpu-load dependant. Using a video camera output of gazebo, and further processing could help.
- Build docker image as tag
latest
$ make
....
- Upload created docker image with the tag
latest
to github package registry
$ make push
- Promote tag
latest
to tagstable
$ make promote
- Upload created docker image with the tag
stable
to github package registry
$ make push_table
Please see the Makefile for all available options.
- generate personal access token: github user profile -> developer settings -> personal access token -> activate write:packages -> generate token
- login
echo access_token | | docker login ghcr.io -u github_user_name --password-stdin
Run this:
leafpad /competition_ws/src/roboethics_competition/roboethics_competition_api/config/competition.yaml