sea-bass / turtlebot3_behavior_demos

Example repository for autonomous behaviors using TurtleBot3, as well as Docker workflows in ROS based projects.
MIT License
270 stars 53 forks source link

Docker on Mac OS: `ros2: ddsi_udp_create_conn: set IP_MULTICAST_IF failed: Unsupported` #37

Open victorpaleologue opened 11 months ago

victorpaleologue commented 11 months ago

When trying to run the demo world docker:

$ docker compose up demo-world
[+] Running 1/1
 ! demo-world Warning                                                                                                                                                                                                                     1.7s 
[+] Building 1592.7s (27/27) FINISHED                                                                                                                                                                                     docker:desktop-linux
 => [demo-world internal] load .dockerignore                                                                                                                                                                                              0.0s
 => => transferring context: 2B                                                                                                                                                                                                           0.0s
 => [demo-world internal] load build definition from Dockerfile                                                                                                                                                                           0.0s
 => => transferring dockerfile: 3.48kB                                                                                                                                                                                                    0.0s
 => [demo-world internal] load metadata for docker.io/osrf/ros:humble-desktop                                                                                                                                                             1.3s
 => [demo-world base  1/16] FROM docker.io/osrf/ros:humble-desktop@sha256:f425b15248cfc24080a9a25a5f34be6f0b5ae68c6bddca0d50385eced97c8603                                                                                                0.0s
 => [demo-world internal] load build context                                                                                                                                                                                              0.0s
 => => transferring context: 2.96kB                                                                                                                                                                                                       0.0s
 => CACHED [demo-world base  2/16] RUN apt-get update && apt-get install -y --no-install-recommends  git libcanberra-gtk-module libcanberra-gtk3-module fuse3 libfuse2 libqt5svg5-dev  python3-pip python3-opencv python3-tk python3-pyq  0.0s
 => CACHED [demo-world base  3/16] RUN pip3 install matplotlib transforms3d                                                                                                                                                               0.0s
 => CACHED [demo-world base  4/16] RUN apt-get update && apt-get install -y --no-install-recommends  ros-humble-rmw-cyclonedds-cpp                                                                                                        0.0s
 => CACHED [demo-world base  5/16] RUN mkdir -p /turtlebot3_ws/src                                                                                                                                                                        0.0s
 => CACHED [demo-world base  6/16] WORKDIR /turtlebot3_ws/src                                                                                                                                                                             0.0s
 => CACHED [demo-world base  7/16] COPY dependencies.repos .                                                                                                                                                                              0.0s
 => [demo-world base  8/16] RUN vcs import < dependencies.repos                                                                                                                                                                          30.9s
 => [demo-world base  9/16] WORKDIR /turtlebot3_ws                                                                                                                                                                                        0.0s 
 => [demo-world base 10/16] RUN source /opt/ros/humble/setup.bash  && apt-get update -y  && rosdep install --from-paths src --ignore-src --rosdistro humble -y  && colcon build --symlink-install                                      1312.4s 
 => [demo-world base 11/16] WORKDIR /root/                                                                                                                                                                                                0.0s 
 => [demo-world base 12/16] RUN curl -o Groot2.AppImage https://s3.us-west-1.amazonaws.com/download.behaviortree.dev/groot2_linux_installer/Groot2-v1.0.1-x86_64.AppImage  && chmod a+x Groot2.AppImage                                   9.1s 
 => [demo-world base 13/16] RUN mkdir /tmp/runtime-root                                                                                                                                                                                   0.2s 
 => [demo-world base 14/16] RUN chmod -R 0700 /tmp/runtime-root                                                                                                                                                                           0.3s 
 => [demo-world base 15/16] WORKDIR /turtlebot3_ws                                                                                                                                                                                        0.0s 
 => [demo-world base 16/16] COPY ./docker/entrypoint.sh /                                                                                                                                                                                 0.0s 
 => [demo-world overlay 1/6] RUN mkdir -p /overlay_ws/src                                                                                                                                                                                 0.2s
 => [demo-world overlay 2/6] WORKDIR /overlay_ws                                                                                                                                                                                          0.0s
 => [demo-world overlay 3/6] COPY ./tb3_autonomy/ ./src/tb3_autonomy/                                                                                                                                                                     0.0s
 => [demo-world overlay 4/6] COPY ./tb3_worlds/ ./src/tb3_worlds/                                                                                                                                                                         0.0s
 => [demo-world overlay 5/6] RUN source /turtlebot3_ws/install/setup.bash  && rosdep install --from-paths src --ignore-src --rosdistro humble -y  && colcon build --symlink-install                                                     233.3s
 => [demo-world overlay 6/6] COPY ./docker/entrypoint.sh /                                                                                                                                                                                0.0s
 => [demo-world] exporting to image                                                                                                                                                                                                       4.7s
 => => exporting layers                                                                                                                                                                                                                   4.7s
 => => writing image sha256:1c66e902c79d63ccbcc8092853a63000845f5835d0f25751a065595821363021                                                                                                                                              0.0s
 => => naming to docker.io/library/turtlebot3_behavior:overlay                                                                                                                                                                            0.0s
[+] Running 2/2
 ✔ Container turtlebot3_behavior_demos-demo-world-1                                                                                                          Created                                                                      0.1s 
 ! demo-world The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested                                                                              0.0s 
Attaching to turtlebot3_behavior_demos-demo-world-1
turtlebot3_behavior_demos-demo-world-1  | Sourced ROS 2 humble
turtlebot3_behavior_demos-demo-world-1  | Sourced TurtleBot3 base workspace
turtlebot3_behavior_demos-demo-world-1  | Sourced autonomy overlay workspace
turtlebot3_behavior_demos-demo-world-1  | [INFO] [launch]: All log files can be found below /root/.ros/log/2023-09-20-12-51-48-720885-docker-desktop-1
turtlebot3_behavior_demos-demo-world-1  | [INFO] [launch]: Default logging verbosity is set to INFO
turtlebot3_behavior_demos-demo-world-1  | urdf_file_name : turtlebot3_waffle_pi.urdf
turtlebot3_behavior_demos-demo-world-1  | 1695214318.882020 [0]       ros2: ddsi_udp_create_conn: set IP_MULTICAST_IF failed: Unsupported
turtlebot3_behavior_demos-demo-world-1  | [ERROR] [1695214318.885605462] [rmw_cyclonedds_cpp]: rmw_create_node: failed to create domain, error Error
turtlebot3_behavior_demos-demo-world-1  | 
turtlebot3_behavior_demos-demo-world-1  | >>> [rcutils|error_handling.c:108] rcutils_set_error_state()
turtlebot3_behavior_demos-demo-world-1  | This error state is being overwritten:
turtlebot3_behavior_demos-demo-world-1  | 
turtlebot3_behavior_demos-demo-world-1  |   'error not set, at ./src/rcl/node.c:263'
turtlebot3_behavior_demos-demo-world-1  | 
turtlebot3_behavior_demos-demo-world-1  | with this new error message:
turtlebot3_behavior_demos-demo-world-1  | 
turtlebot3_behavior_demos-demo-world-1  |   'rcl node's rmw handle is invalid, at ./src/rcl/node.c:415'
turtlebot3_behavior_demos-demo-world-1  | 
turtlebot3_behavior_demos-demo-world-1  | rcutils_reset_error() should be called after error handling to avoid this.
turtlebot3_behavior_demos-demo-world-1  | <<<
turtlebot3_behavior_demos-demo-world-1  | [ERROR] [1695214318.888839420] [rcl]: Failed to fini publisher for node: 1
turtlebot3_behavior_demos-demo-world-1  | [ERROR] [launch]: Caught exception in launch (see debug for traceback): error creating node: rcl node's rmw handle is invalid, at ./src/rcl/node.c:415
turtlebot3_behavior_demos-demo-world-1 exited with code 1
victorpaleologue commented 11 months ago

It looks related to https://github.com/ros2/rmw_cyclonedds/issues/273