Split driver stack setup into ROS 2 Jazzy and Humble paths - #84
Open
MLN-MNJ wants to merge 1 commit into
Open
Conversation
The driver stack page documented only Ubuntu 22.04 with ROS 2 Humble, which has no build for Ubuntu 24.04 and never will. Jetsons on JetPack 7 (L4T R39, Noble) need Jazzy, so section 2 now splits into two self-contained pages and the reader follows only the one matching their JetPack version. drive_workspace.rst becomes a short chooser: a JetPack -> Ubuntu -> ROS 2 table, and notes explaining why the Jazzy path needs a patch and when a Humble container is the better option. It keeps the doc_drive_workspace, lidar_setup and doc_firmware_hokuyo10 labels so existing cross-references from faq.rst and the Docker page still resolve. drive_workspace_jazzy.rst is new and covers the Noble apt repository, the CMAKE_CXX_STANDARD 14 -> 17 and cmake_minimum_required 3.5 -> 3.16 patch f1tenth_system needs to build against Jazzy, and why the F710 udev rule is obsolete now that the joy node uses SDL2 and device_id. drive_workspace_humble.rst preserves the existing Humble procedure, including the F710 udev rule and the D/X product-id note. Both pages also pick up fixes that are not distribution specific: - udevadm trigger needs --action=add. A bare trigger fires a change event while the rules match ACTION=="add", so it silently does nothing and the symlink never appears. - The SICK section gains the nmcli setup for headless installs, the 2111 and 2112 port check, the scanner_type mismatch failure mode, and a standalone sick_generic_caller test with the expected 15 Hz / 270 deg / 0.33 deg scan. - A joypad section covering the F710, the 8BitDo Ultimate 2C deadman indices (6 and 8 rather than 4 and 5), reading indices off /joy for any other pad, and the mandatory rebuild after editing config or launch files. drive_manual.rst gains a pre-drive checklist to run with the car on a stand and the /joy -> /teleop -> /ackermann_drive chain for locating where teleop stops, plus the jstest and joy_node index disagreement caused by SDL2. sphinx-build -W is clean; this change adds no new warnings.
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.
The driver stack page documents only Ubuntu 22.04 with ROS 2 Humble. Humble has no
Ubuntu 24.04 build and never will — the buildfarm only produces Jammy packages for it,
and it reaches EOL in May 2027 without ever targeting Noble. Jetsons on JetPack 7
(L4T R39, Ubuntu 24.04) therefore need Jazzy, and there is currently nothing in the docs
for them.
Section 2 now splits into two self-contained pages, and the reader follows only the one
matching their JetPack version:
Both cover the same seven steps in the same order, so there is no cross-referencing
between them mid-procedure.
Pages
drive_workspace.rstdoc_drive_workspace,lidar_setupanddoc_firmware_hokuyo10labels so the existing references fromfaq.rstand the Docker page still resolve.drive_workspace_jazzy.rstdrive_workspace_humble.rstThe one substantive Jazzy difference
f1tenth_systemhas no Jazzy branch — the repo offersfoxy-devel,humble-devel,melodicandbraking, and thevesc/ackermann_muxsubmodules stop athumbleand
master. Every apt dependency the stack needs is already released for Jazzy, so thedocumented procedure is to clone
humble-develand patch it:vesc_driver,vesc_ackermannandackermann_muxpinCMAKE_CXX_STANDARD 14, butJazzy's
rclcpp,serial_driveranddiagnostic_updaterrequire C++17.cmake_minimum_required(VERSION 3.5), which CMake 3.28 onNoble deprecates loudly and CMake 4 rejects outright.
The page is explicit that a
ros:humble-ros-basecontainer is the better choice for anycar that has to interoperate with
f1tenth_gym_rosorf1tenth_labs, since those areHumble-targeted too. The native port is recommended only for a standalone vehicle.
Fixes that apply to both distributions
udevadm triggerneeds--action=add. A bareudevadm triggerfires achangeevent while the rules match
ACTION=="add", so it silently does nothing and thesymlink never appears. The old page said
sudo udevadm trigger, which meant the VESCsymlink would not show up until an unrelated reboot or replug.
nmclisetup for headless installs, the 2111 /2112 service-port check, the
scanner_typemismatch failure mode (the node connectsand then fails during scan configuration), and a standalone
sick_generic_callertest with the expected 15 Hz / 270° / 0.33° scan so the LiDAR can be isolated from the
rest of the stack.
pad, the 8BitDo Ultimate 2C deadman indices (6 and 8, not 4 and 5), how to read
indices off
/joyfor any other pad, and the mandatory rebuild —f1tenth_stackis anament_pythonpackage, soconfig/andlaunch/are copied intoinstall/, notsymlinked, and editing the source alone changes nothing at runtime.
drive_manual.rstgains a pre-drive checklist to run with the car on a stand, and the/joy→/teleop→/ackermann_drivechain for locating where teleop stops, plus thenote that
jstestandjoy_nodeindices disagree becausejoyuses SDL2 whilejstestreads raw joydev.
Provenance
Everything on the Jazzy page was written while setting up an actual JetPack 7 car — the
CMake patch, the
--action=addbehaviour, thepingcap_net_rawquirk and the--symlink-installfailure are all things that were hit and worked through, notinferred from release notes.
Checks
sphinx-build -W --keep-going -b htmlproduces no new warnings — output is identicalto the current
mainbaseline, and every:ref:resolves.One note unrelated to this PR:
maincurrently emits 9Duplicate explicit target name: "here"warnings fromindex.rst,faq.rst,software_host.rstandgap_finding.rstwhen built against current docutils. CI last ran green in July, but
requirements.txtisunpinned, so the strict build may now fail on
mainfor reasons predating this branch.Happy to fix those in a separate PR — it's
_→__on the affected links.