Repository navigation
turtlebot3: build on ros:jazzy-ros-base so the demo runs natively on arm64 - #79
Merged
Merged
Conversation
…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.
bburda
reviewed
Oct 12, 2026
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.
bburda
approved these changes
Oct 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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-gzadded to the apt list. It brings Gazebo, server and GUI, which the desktop image used to carry.apt-get updatebeforerosdep install. The base image ships no package lists, and rosdep has to install what the desktop image used to have (for exampleros-jazzy-example-interfaces), otherwise the build stops there.The headless/GUI handling in
demo.launch.pyis unchanged.Tested natively on an M-series Mac (colima, arm64)
arm64, 1.7 GB./scanat 4.9 Hz (the Burger LDS rate),/odomat 49 Hz, Nav2 servers up, 12 apps in the tree.send-nav-goal.shthrough the gateway:navigate_to_poseexecutioncompletedin about 25 s.The GUI path (Linux with X) was not run here.
Note: #78 also touches this Dockerfile, in the scripts
COPYblock, not the lines changed here.