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.
23 lines
681 B
Python
23 lines
681 B
Python
from setuptools import setup, find_packages
|
|
|
|
setup(
|
|
name='saltybot_ota_updater',
|
|
version='0.1.0',
|
|
packages=find_packages(),
|
|
data_files=[
|
|
('share/ament_index/resource_index/packages', ['resource/saltybot_ota_updater']),
|
|
('share/saltybot_ota_updater', ['package.xml']),
|
|
],
|
|
install_requires=['setuptools', 'requests'],
|
|
zip_safe=True,
|
|
author='seb',
|
|
author_email='seb@vayrette.com',
|
|
description='OTA firmware update with Gitea release download and rollback',
|
|
license='Apache-2.0',
|
|
entry_points={
|
|
'console_scripts': [
|
|
'ota_updater_node = saltybot_ota_updater.ota_updater_node:main',
|
|
],
|
|
},
|
|
)
|