dusty-nv / jetson-containers

Machine Learning Containers for NVIDIA Jetson and JetPack-L4T
MIT License
1.9k stars 416 forks source link

Unable to Run ROS Docker Container on x86 Host with dustynv/ros:humble-desktop-l4t-r35.1.0 Image #444

Open mohanrobotics opened 3 months ago

mohanrobotics commented 3 months ago

Issue: When attempting to run the dustynv/ros:humble-desktop-l4t-r35.1.0 Docker image on an x86 host using the provided emulation setup, I encounter the following errors:

  1. Upon starting the container, a warning about platform mismatch is displayed:
WARNING: The requested image's platform (linux/arm64) does not match the detected host platform (linux/amd64) and no specific platform was requested
  1. Running ros2 topic list within the container results in the following error:
[ERROR] [1710940685.697680] [ros2]: ddsi_udp_create_conn: set IP_MULTICAST_IF failed: Unsupported
[ERROR] [1710940685.701730390] [rmw_cyclonedds_cpp]: rmw_create_node: failed to create domain, error Error
[ERROR] [1710940685.704826779] [rcl]: Failed to fini publisher for node: 1
error creating node: rcl node's rmw handle is invalid, at /opt/ros/humble/src/rcl/rcl/src/rcl/node.c:415

Steps to Reproduce:

  1. Install necessary dependencies for QEMU emulation.
  2. Run the command to start the container:
    docker run --rm -it --network="host" dustynv/ros:humble-desktop-l4t-r35.1.0
  3. Attempt to execute ros2 topic list command within the container.

Expected Behavior: The ROS Docker container should run successfully on the x86 host using the provided emulation setup, allowing normal ROS commands to be executed without errors.

Actual Behavior: The container fails to execute ROS commands properly, displaying errors related to domain creation and invalid RMW handle.

Additional Information: