Ported the arduinobot manipulator workspace from Humble to ROS 2 Jazzy — notes on what broke

I teach ROS 2 at an engineering college in India, and this semester we moved to
Jazzy on Ubuntu 24.04. A lot of the good learning material out there is written for
Humble, so I’ve been porting AntoBrandi’s arduinobot workspace across and
documenting it as I go.

Repo: GitHub - prasad914/arduinobot_ws: ros2 tutorial · GitHub
(Apache 2.0, original by Antonio Brandi — this is my Jazzy port.)

Status so far: arduinobot_description builds and displays in RViz. Gazebo,
ros2_control and MoveIt 2 are still in progress.

Two things that cost me time, in case they save someone else:

  1. Passing a URDF as a parameter from the CLI fails if the file has XML comments
    containing a colon. The ros2 CLI parses the value as YAML, and “” looks like a mapping. You get “ScannerError: mapping values are not
    allowed here”, which tells you nothing. Wrap it in single quotes or use
    –params-file with a block scalar.

  2. Nothing in package.xml installs your urdf folder. It only declares dependencies.
    The install(DIRECTORY urdf DESTINATION share/${PROJECT_NAME}) rule in
    CMakeLists.txt is what actually ships it. Obvious in hindsight, and a
    surprisingly common confusion among my students.

I also recorded a full walkthrough if it’s useful to anyone starting out:

Happy to answer questions about the port.