This repository branch contains a simulation environment for a humanoid robot ErgoCub, built using Gazebo Classic, ROS 2 Galactic, and YARP. The goal is to enable testing of sensor data, SLAM algorithms, and control in a reproducible Docker container setup.
.desktop shortcuts for launching inside DockerUse the following command to launch:
docker compose up
The container will launch a KasmVNC server for GUI apps (e.g., Gazebo) avaible on https://container_ip:6901 and the following local directories are mounted:
| Local Directory | Container Path | Purpose |
|---|---|---|
simulation_container/gazebo_worlds/ | /opt/gazebo_worlds | User-defined Gazebo worlds |
gazebo_models/ | /usr/share/gazebo/models | Custom Gazebo models |
simulation_container/ergocub_modified/ | /opt/robotology-superbuild/build-base/install/share/ergoCub/robots/ergocub_modified | Modified ErgoCub robot model |
simulation_container/yarp-ros2-ergocub-bridging/ | /opt/yarp-ros2-ergocub-bridging | YARP–ROS 2 bridging config/scripts |
simulation_container/python/ | /opt/code/ | Python control/bridge scripts |
If you prefer not to use Compose, manually define volumes, parameters and pass usb devices:
docker run -it --rm \
--name humanoid_robot-simulation \
-p 6901:6901 \
-p 11345:11345 \
-e VNC_PW=password \
-e TZ=Europe/Prague \
-e PUID=1000 \
-e PGID=1000 \
-v /mnt/user/appdata/humanoid-robot-simulation/simulation_container/python:/opt/code \
-v /mnt/user/appdata/humanoid-robot-simulation/simulation_container/yarp-ros2-ergocub-bridging:/opt/yarp-ros2-ergocub-bridging \
-v /mnt/user/appdata/humanoid-robot-simulation/simulation_container/gazebo_models:/usr/share/gazebo/models \
-v /mnt/user/appdata/humanoid-robot-simulation/simulation_container/gazebo_worlds:/opt/gazebo_worlds \
-v /mnt/user/appdata/humanoid-robot-simulation/simulation_container/ergocub_modified:/opt/robotology-superbuild/build-base/install/share/ergoCub/robots/ergocub_modified \
-v /mnt/user/appdata/humanoid-robot-simulation/simulation_container/ergocub_slam_bridge:/opt/ros_ws/src/ergocub_slam_bridge \
--device=/dev/input/js0 \
vlepic/humanoid-robot-simulation:gazeboclassic-ROS2
Note: If you omit volume mappings, your local models, bridges, and world files will not be accessible inside the container. If you omit passing a joystick - you will not be able to run the walking controller and SLAM packages.
This image vlepic/humanoid-robot-simulation:gazeboclassic-ROS2 includes:
After launching the container (either via Docker Compose or docker run), follow these steps:
Access the Web Interface:
http://container_ip:6901kasm_userpasswordLaunch Core Components Using Desktop Shortcuts:
.desktop launcher..desktop launcher (which includes correct arguments).Start Walking Modules:
Walking Modules (Combined) launcher.Joystick Setup:
--device=/dev/input/js0
Walking Control:
Robot preparedStart SLAM + RViz:
.desktop launcher labeled SLAM with YARP.This project is licensed under the MIT License.
Author: Václav Lepic
Content type
Image
Digest
sha256:62c8a1a8b…
Size
8.7 GB
Last updated
about 1 year ago
docker pull vlepic/humanoid-robot-simulation:gazeboclassic-ROS2