- 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>
28 lines
913 B
Python
28 lines
913 B
Python
from setuptools import setup
|
|
|
|
package_name = "saltybot_balance_controller"
|
|
|
|
setup(
|
|
name=package_name,
|
|
version="0.1.0",
|
|
packages=[package_name],
|
|
data_files=[
|
|
("share/ament_index/resource_index/packages", [f"resource/{package_name}"]),
|
|
(f"share/{package_name}", ["package.xml"]),
|
|
(f"share/{package_name}/launch", ["launch/balance_controller.launch.py"]),
|
|
(f"share/{package_name}/config", ["config/balance_params.yaml"]),
|
|
],
|
|
install_requires=["setuptools", "pyvesc"],
|
|
zip_safe=True,
|
|
maintainer="sl-controls",
|
|
maintainer_email="sl-controls@saltylab.local",
|
|
description="Balance mode PID controller with tilt safety for SaltyBot",
|
|
license="MIT",
|
|
tests_require=["pytest"],
|
|
entry_points={
|
|
"console_scripts": [
|
|
"balance_controller_node = saltybot_balance_controller.balance_controller_node:main",
|
|
],
|
|
},
|
|
)
|