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>
39 lines
1007 B
Desktop File
39 lines
1007 B
Desktop File
[Unit]
|
|
Description=SaltyBot Web Dashboard (saltybot_dashboard — port 8080)
|
|
Documentation=https://gitea.vayrette.com/seb/saltylab-firmware
|
|
#
|
|
# Serves the live monitoring dashboard on http://<orin-ip>:8080
|
|
# Subscribes to ROS2 topics over the local DomainID (ROS_DOMAIN_ID=42).
|
|
# Starts after the ROS2 stack but does not hard-depend on it —
|
|
# the dashboard handles missing topics gracefully and will show data as
|
|
# nodes come up.
|
|
After=network-online.target saltybot-ros2.service
|
|
Wants=saltybot-ros2.service
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=orin
|
|
Group=orin
|
|
|
|
Environment="ROS_DOMAIN_ID=42"
|
|
Environment="ROS_DISTRO=humble"
|
|
Environment="SALTYBOT_WS=/opt/saltybot/jetson/ros2_ws/install"
|
|
|
|
ExecStart=/opt/saltybot/scripts/ros2-launch.sh \
|
|
saltybot_dashboard dashboard.launch.py
|
|
|
|
Restart=on-failure
|
|
RestartSec=5s
|
|
StartLimitInterval=60s
|
|
StartLimitBurst=5
|
|
|
|
TimeoutStartSec=30s
|
|
TimeoutStopSec=10s
|
|
|
|
StandardOutput=journal
|
|
StandardError=journal
|
|
SyslogIdentifier=saltybot-dashboard
|
|
|
|
[Install]
|
|
WantedBy=saltybot.target
|