Implements full boot-time auto-start for the SaltyBot ROS2 stack on
Jetson Orin. Everything comes up automatically after power-on with
correct dependency ordering and restart-on-failure for each service.
New systemd services:
saltybot-ros2.service full_stack.launch.py (perception + SLAM + Nav2)
saltybot-esp32-serial.service ESP32-S3 BALANCE UART bridge (bd-wim1, PR #727)
saltybot-here4.service Here4 DroneCAN GPS bridge (bd-p47c, PR #728)
saltybot-dashboard.service Web dashboard on port 8080
Updated:
saltybot.target now Wants all four new services with
boot-order comments
can-bringup.service bitrate 500 kbps → 1 Mbps (DroneCAN for Here4)
70-canable.rules remove bitrate from udev RUN+=; let service
own the bitrate, add TAG+=systemd for device unit
install_systemd.sh installs all services + udev rules, colcon
build, enables mosquitto, usermod dialout
full_stack.launch.py resolve 8 merge conflict markers (ESP32-S3
rename) and fix missing indent on
enable_mission_logging_arg — file was
un-launchable with SyntaxError
New:
scripts/ros2-launch.sh sources ROS2 Humble + workspace overlay,
then exec ros2 launch — used by all
ROS2 service units via ExecStart=
udev/80-esp32.rules /dev/esp32-balance (CH343) and
/dev/esp32-io (ESP32-S3 native USB CDC)
Resolves bd-1hyn
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>