- ROS2 node for balance mode PID parameter management via pyvesc UART - Tilt safety kill switch: ±45° pitch > 500ms triggers motor cutoff - Startup ramp: gradual acceleration from 0 to full output over configurable duration - IMU integration: subscribe to /imu/data for pitch/roll angle computation - State publishing: /saltybot/balance_state with tilt angles, PID values, motor telemetry - Data logging: /saltybot/balance_log publishes CSV-formatted IMU + motor data - Configurable parameters: PID gains, tilt thresholds, ramp duration, control frequency - Test suite: quaternion to Euler conversion, tilt safety checks, startup ramp Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
29 lines
952 B
XML
29 lines
952 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_balance_controller</name>
|
|
<version>0.1.0</version>
|
|
<description>
|
|
Balance mode PID controller for SaltyBot self-balancing robot.
|
|
Manages VESC balance PID parameters, tilt safety limits (±45° > 500ms kill),
|
|
startup ramp, and state monitoring via IMU.
|
|
</description>
|
|
<maintainer email="sl-controls@saltylab.local">sl-controls</maintainer>
|
|
<license>MIT</license>
|
|
|
|
<depend>rclpy</depend>
|
|
<depend>sensor_msgs</depend>
|
|
<depend>std_msgs</depend>
|
|
|
|
<buildtool_depend>ament_python</buildtool_depend>
|
|
|
|
<test_depend>ament_copyright</test_depend>
|
|
<test_depend>ament_flake8</test_depend>
|
|
<test_depend>ament_pep257</test_depend>
|
|
<test_depend>python3-pytest</test_depend>
|
|
|
|
<export>
|
|
<build_type>ament_python</build_type>
|
|
</export>
|
|
</package>
|