Complete over-the-air (OTA) firmware update system with: Features: - Downloads releases from Gitea (seb/saltylab-firmware) - Automatic colcon build in staging directory - Symlink-based atomic deployment - ROS2 service restart via systemd - Automatic rollback on build failure - Version tracking in ~/.saltybot-data/versions.json - Update history with timestamps Safety: - Blocks updates if robot velocity > 0.05 m/s - Velocity monitoring via odometry subscription - Backup before update for recovery Triggers: - MQTT /saltybot/ota_command: 'check', 'update:<version>', 'rollback' - /saltybot/ota_status: JSON status updates - Dashboard integration ready Configuration: - Gitea API base, repo info, directories - Build timeout: 3600s (1 hour) - Service restart automation - Backup retention policy ROS2 package structure complete with launch files and config.
25 lines
784 B
XML
25 lines
784 B
XML
<?xml version="1.0"?>
|
|
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
|
|
<package format="3">
|
|
<name>saltybot_voice_router</name>
|
|
<version>0.1.0</version>
|
|
<description>Voice command router with fuzzy matching for natural speech (Issue #491)</description>
|
|
<maintainer email="seb@vayrette.com">seb</maintainer>
|
|
<license>MIT</license>
|
|
|
|
<depend>rclpy</depend>
|
|
<depend>std_msgs</depend>
|
|
<depend>geometry_msgs</depend>
|
|
<depend>rapidfuzz</depend>
|
|
|
|
<exec_depend>python3-launch-ros</exec_depend>
|
|
|
|
<test_depend>ament_copyright</test_depend>
|
|
<test_depend>ament_flake8</test_depend>
|
|
<test_depend>python3-pytest</test_depend>
|
|
|
|
<export>
|
|
<build_type>ament_python</build_type>
|
|
</export>
|
|
</package>
|