Implement ROS2 node for fun behavior routines: - spin: 360° rotation with audio - dance: sway side-to-side + bob - nod: head yes/no patterns - celebrate: spin + look up + smile - shy: back away + head down + bashful Features: - Voice command integration (/saltybot/voice_command) - Timed sequences: /cmd_vel + pan_tilt controls - Obstacle safety abort on /scan near-field detection - 10s cooldown between tricks to prevent repetition - Trick state publishing (/saltybot/trick_state) - Background execution thread for non-blocking operation Package structure: - saltybot_tricks/trick_routines_node.py (main node) - launch/tricks.launch.py (configurable launch) - config/tricks_params.yaml (tuning parameters) - test/test_tricks.py (module structure tests) Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
33 lines
990 B
Python
33 lines
990 B
Python
from setuptools import find_packages, setup
|
|
import os
|
|
from glob import glob
|
|
|
|
package_name = 'saltybot_tricks'
|
|
|
|
setup(
|
|
name=package_name,
|
|
version='0.1.0',
|
|
packages=find_packages(exclude=['test']),
|
|
data_files=[
|
|
('share/ament_index/resource_index/packages',
|
|
['resource/' + package_name]),
|
|
('share/' + package_name, ['package.xml']),
|
|
(os.path.join('share', package_name, 'launch'),
|
|
glob(os.path.join('launch', '*launch.[pxy][yma]*'))),
|
|
(os.path.join('share', package_name, 'config'),
|
|
glob(os.path.join('config', '*.yaml'))),
|
|
],
|
|
install_requires=['setuptools'],
|
|
zip_safe=True,
|
|
maintainer='seb',
|
|
maintainer_email='seb@vayrette.com',
|
|
description='Fun trick routines for SaltyBot (Issue #431)',
|
|
license='MIT',
|
|
tests_require=['pytest'],
|
|
entry_points={
|
|
'console_scripts': [
|
|
'trick_routines_node = saltybot_tricks.trick_routines_node:main',
|
|
],
|
|
},
|
|
)
|