Skip to content

turtlebot3: build on ros:jazzy-ros-base so the demo runs natively on arm64 - #79

Merged
mfaferek93 merged 2 commits into
mainfrom
fix/turtlebot3-native-arm64
Oct 12, 2026
Merged

mfaferek93 merged 2 commits into
mainfrom
fix/turtlebot3-native-arm64

Conversation

@mfaferek93

Copy link
Copy Markdown
Contributor

Problem

The TurtleBot3 demo builds FROM osrf/ros:jazzy-desktop, which is published for amd64 only. On Apple Silicon (and any arm64 host) the whole demo builds and runs under emulation: a 9.6 GB image, the simulated lidar too slow to be usable and Nav2 failing on top of it. The README says the demo works on macOS, which today holds only on Intel Macs.

Fix

  • FROM ros:jazzy-ros-base, which is multi-arch (amd64 and arm64).
  • ros-jazzy-ros-gz added to the apt list. It brings Gazebo, server and GUI, which the desktop image used to carry.
  • apt-get update before rosdep install. The base image ships no package lists, and rosdep has to install what the desktop image used to have (for example ros-jazzy-example-interfaces), otherwise the build stops there.

The headless/GUI handling in demo.launch.py is unchanged.

Tested natively on an M-series Mac (colima, arm64)

  • Image builds as arm64, 1.7 GB.
  • Headless run: gateway healthy in about 6 s, /scan at 4.9 Hz (the Burger LDS rate), /odom at 49 Hz, Nav2 servers up, 12 apps in the tree.
  • send-nav-goal.sh through the gateway: navigate_to_pose execution completed in about 25 s.

The GUI path (Linux with X) was not run here.

Note: #78 also touches this Dockerfile, in the scripts COPY block, not the lines changed here.

…arm64

osrf/ros:jazzy-desktop is published for amd64 only. On Apple Silicon the
whole demo ran under emulation: a 9.6 GB image, the lidar and Nav2 too
slow to work. ros:jazzy-ros-base is multi-arch, Gazebo comes in with
ros_gz, and the package lists are refreshed before rosdep.
Comment thread demos/turtlebot3_integration/Dockerfile Outdated
turtlebot3_gazebo already brings Gazebo. ros-gz only added ros-gz-sim-demos
(rviz2, rqt, Qt, ~254 MB). Smoke and navigation tests pass on arm64.
@mfaferek93
mfaferek93 merged commit a72361e into main Oct 12, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants