sl-controls 2919e629e9 feat: Add velocity smoothing filter with Butterworth low-pass filtering
Implements saltybot_velocity_smoother package:
- Subscribes to /odom, applies digital Butterworth low-pass filter
- Filters linear (x,y,z) and angular (x,y,z) velocity components independently
- Publishes smoothed odometry on /odom_smooth
- Reduces encoder jitter and improves state estimation stability
- Configurable filter order (1-4), cutoff frequency (Hz), publish rate
- Can be enabled/disabled via enable_smoothing parameter
- Comprehensive test suite: 18+ tests covering filter behavior, edge cases, scenarios

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-03 00:23:53 -05:00

34 lines
1.2 KiB
Python

from setuptools import setup, find_packages
package_name = 'saltybot_velocity_smoother'
setup(
name=package_name,
version='0.1.0',
packages=find_packages(exclude=['test']),
data_files=[
('share/ament_index/resource_index/packages',
['resource/saltybot_velocity_smoother']),
('share/' + package_name, ['package.xml']),
('share/' + package_name + '/config', ['config/velocity_smoother_config.yaml']),
('share/' + package_name + '/launch', ['launch/velocity_smoother.launch.py']),
],
install_requires=['setuptools'],
zip_safe=True,
author='SaltyBot Controls',
author_email='sl-controls@saltybot.local',
maintainer='SaltyBot Controls',
maintainer_email='sl-controls@saltybot.local',
keywords=['ROS2', 'velocity', 'filtering', 'butterworth'],
classifiers=[
'Intended Audience :: Developers',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 3',
'Topic :: Software Development',
],
entry_points={
'console_scripts': [
'velocity_smoother_node=saltybot_velocity_smoother.velocity_smoother_node:main',
],
},
)