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>
25 lines
848 B
Python
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',
|
|
],
|
|
},
|
|
)
|