sl-controls fc87862603 feat(controls): Adaptive PID gain scheduler (Issue #309)
Implements ROS2 adaptive PID gain scheduler for SaltyBot with:
- Subscribes to /saltybot/speed_scale for speed conditions
- Subscribes to /saltybot/terrain_roughness for surface conditions
- Adjusts PID gains dynamically:
  * P gain increases with terrain roughness (better response on rough)
  * D gain decreases at low speed (prevent oscillation when slow)
  * I gain scales with both conditions for stability
- Publishes Float32MultiArray [Kp, Ki, Kd] on /saltybot/pid_gains
- Configurable scaling factors for each gain modulation
- Includes 18+ unit tests for gain scheduling logic

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-02 21:37:08 -05:00

25 lines
848 B
Python

from setuptools import setup, find_packages
setup(
name='saltybot_pid_scheduler',
version='0.1.0',
packages=find_packages(),
data_files=[
('share/ament_index/resource_index/packages', ['resource/saltybot_pid_scheduler']),
('share/saltybot_pid_scheduler', ['package.xml']),
('share/saltybot_pid_scheduler/config', ['config/pid_scheduler_config.yaml']),
('share/saltybot_pid_scheduler/launch', ['launch/pid_scheduler.launch.py']),
],
install_requires=['setuptools'],
zip_safe=True,
author='SaltyLab Controls',
author_email='sl-controls@saltylab.local',
description='Adaptive PID gain scheduler for SaltyBot',
license='MIT',
entry_points={
'console_scripts': [
'pid_scheduler_node=saltybot_pid_scheduler.pid_scheduler_node:main',
],
},
)