From 06c50616b471812cf6176de5bbc4e1f36c6705cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=B0=D0=BD=D0=B8=D0=B8=D0=BB=20=D0=93=D1=80=D0=B0?= =?UTF-8?q?=D0=B1=D0=B0=D1=80=D1=8C?= Date: Mon, 18 May 2026 17:53:02 +0300 Subject: [PATCH] Add Dockerfile and run script for Webots integration; update package dependencies --- README.md | 2 + docker/jazzy/ros-iiwa7-webots/Dockerfile | 46 ++++++++++++++++++++++ docker/jazzy/ros-iiwa7-webots/run.sh | 21 ++++++++++ src/iiwa_bringup/package.xml | 2 + src/iiwa_config/package.xml | 7 ++++ src/iiwa_planning/package.xml | 5 +++ src/realsense2_rgbd_plugin/package.xml | 1 + src/realsense2_ros_mqtt_bridge/package.xml | 9 +++++ 8 files changed, 93 insertions(+) create mode 100644 docker/jazzy/ros-iiwa7-webots/Dockerfile create mode 100755 docker/jazzy/ros-iiwa7-webots/run.sh diff --git a/README.md b/README.md index 6c2f7af..8099a2a 100644 --- a/README.md +++ b/README.md @@ -159,5 +159,7 @@ chmod +x doc/build_docs.sh ```bash +docker build -t evilfisru/lwc:... -f docker/jazzy/.../Dockerfile . + docker run -it --rm --network host evilfisru/lwa:jazzy-lwa7-noble ``` \ No newline at end of file diff --git a/docker/jazzy/ros-iiwa7-webots/Dockerfile b/docker/jazzy/ros-iiwa7-webots/Dockerfile new file mode 100644 index 0000000..16c1905 --- /dev/null +++ b/docker/jazzy/ros-iiwa7-webots/Dockerfile @@ -0,0 +1,46 @@ +FROM evilfisru/ros:jazzy-base-noble + +ENV RMW_IMPLEMENTATION=rmw_cyclonedds_cpp +ENV WEBOTS_HOME=/usr/local/webots +ENV LIBGL_ALWAYS_SOFTWARE=1 +ENV GALLIUM_DRIVER=llvmpipe + +# X11 utilities and Mesa software renderer +RUN apt-get update && apt-get install -y --no-install-recommends \ + wget \ + libx11-6 \ + x11-utils \ + libglu1-mesa \ + libgl1-mesa-dri \ + mesa-utils \ + libegl-mesa0 \ + && rm -rf /var/lib/apt/lists/* + +# Install Webots R2025a (compatible with ros-jazzy-webots-ros2) +RUN wget -q https://github.com/cyberbotics/webots/releases/download/R2025a/webots_2025a_amd64.deb \ + -O /tmp/webots.deb && \ + apt-get update && \ + apt-get install -y /tmp/webots.deb && \ + rm /tmp/webots.deb && \ + rm -rf /var/lib/apt/lists/* + +RUN apt-get update && apt-get install -y --no-install-recommends \ + ros-jazzy-rmw-cyclonedds-cpp \ + # ros-jazzy-webots-ros2-control \ + python3-pil \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /ros2_ws + +COPY src/ src/ + +RUN apt-get update && \ + rosdep install --from-paths src -i -r -y && \ + rm -rf /var/lib/apt/lists/* + +RUN . /opt/ros/$ROS_DISTRO/setup.sh && \ + colcon build --mixin release + +RUN echo ". /ros2_ws/install/setup.bash" >> /root/.bashrc + +CMD ["bash"] diff --git a/docker/jazzy/ros-iiwa7-webots/run.sh b/docker/jazzy/ros-iiwa7-webots/run.sh new file mode 100755 index 0000000..1a27417 --- /dev/null +++ b/docker/jazzy/ros-iiwa7-webots/run.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# Run the Webots container with X11 forwarding. +# Usage: +# ./run.sh — interactive shell +# ./run.sh ros2 launch iiwa_bringup webots_spawn.launch.py ... + +IMAGE="${WEBOTS_IMAGE:-evilfisru/lwc:jazzy-webots}" + +# Allow local Docker processes to connect to the X server +xhost +local:docker > /dev/null + +docker run -it --rm \ + --name ros-webots \ + --network host \ + -e DISPLAY="${DISPLAY}" \ + -e QT_X11_NO_MITSHM=1 \ + -e LIBGL_ALWAYS_SOFTWARE=1 \ + -e GALLIUM_DRIVER=llvmpipe \ + -v /tmp/.X11-unix:/tmp/.X11-unix:rw \ + "${IMAGE}" \ + "$@" diff --git a/src/iiwa_bringup/package.xml b/src/iiwa_bringup/package.xml index f707264..22504b2 100644 --- a/src/iiwa_bringup/package.xml +++ b/src/iiwa_bringup/package.xml @@ -13,6 +13,7 @@ iiwa_utils iiwa_config iiwa_description + foxglove_bridge launch @@ -32,6 +33,7 @@ webots_ros2_driver + webots_ros2_control ament_lint_auto ament_lint_common diff --git a/src/iiwa_config/package.xml b/src/iiwa_config/package.xml index 122295e..e5a0fd8 100644 --- a/src/iiwa_config/package.xml +++ b/src/iiwa_config/package.xml @@ -9,6 +9,13 @@ ament_cmake + + moveit_kinematics + moveit_simple_controller_manager + moveit_planners_ompl + pilz_industrial_motion_planner + moveit_planners_chomp + ament_lint_auto ament_lint_common diff --git a/src/iiwa_planning/package.xml b/src/iiwa_planning/package.xml index 1ed08e0..bce7868 100644 --- a/src/iiwa_planning/package.xml +++ b/src/iiwa_planning/package.xml @@ -15,10 +15,15 @@ moveit_ros_planning_interface moveit_core moveit_ros_planning + moveit_planners_ompl + pilz_industrial_motion_planner + moveit_planners_chomp moveit_msgs geometry_msgs + std_srvs moveit_py tf_transformations + python3-scipy iiwa_msgs ament_lint_auto diff --git a/src/realsense2_rgbd_plugin/package.xml b/src/realsense2_rgbd_plugin/package.xml index de75405..9f6b6fd 100644 --- a/src/realsense2_rgbd_plugin/package.xml +++ b/src/realsense2_rgbd_plugin/package.xml @@ -19,6 +19,7 @@ rviz_rendering rviz_default_plugins pluginlib + cv_bridge ament_cmake diff --git a/src/realsense2_ros_mqtt_bridge/package.xml b/src/realsense2_ros_mqtt_bridge/package.xml index 08893ba..1ae1874 100644 --- a/src/realsense2_ros_mqtt_bridge/package.xml +++ b/src/realsense2_ros_mqtt_bridge/package.xml @@ -8,6 +8,15 @@ Nir Azkiel Apache-2.0 + rclpy + sensor_msgs + std_srvs + rcl_interfaces + tf2_ros + realsense2_camera_msgs + python3-numpy + python3-paho-mqtt + ament_copyright ament_flake8 ament_pep257