- ROS2 node subscribing to orchestrator state, battery, balance, person tracker, voice commands, health - State-to-emotion mapping: navigation → excited, social → happy/curious, low battery → concerned, etc. - Smooth emotion transitions (0.3–1.2s) with confidence tracking - Idle behaviors: blink (~3s), look-around (~8s), breathing (sine wave) - Social memory: familiarity-based warmth modifier (0.3–1.0) for known people - Personality-aware responses: extroversion, playfulness, responsiveness, anxiety (0.0–1.0 configurable) - Publishes /saltybot/emotion_state (JSON): emotion, intensity, confidence, expression name, context, idle_flags - Configurable via emotion_engine.yaml: personality traits, battery thresholds, update rate - Launch file: emotion_engine.launch.py Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
33 lines
958 B
Python
33 lines
958 B
Python
from setuptools import setup
|
|
import os
|
|
from glob import glob
|
|
|
|
package_name = 'saltybot_emotion_engine'
|
|
|
|
setup(
|
|
name=package_name,
|
|
version='0.1.0',
|
|
packages=[package_name],
|
|
data_files=[
|
|
('share/ament_index/resource_index/packages',
|
|
['resource/' + package_name]),
|
|
('share/' + package_name, ['package.xml']),
|
|
(os.path.join('share', package_name, 'launch'),
|
|
glob('launch/*.py')),
|
|
(os.path.join('share', package_name, 'config'),
|
|
glob('config/*.yaml')),
|
|
],
|
|
install_requires=['setuptools'],
|
|
zip_safe=True,
|
|
maintainer='seb',
|
|
maintainer_email='seb@vayrette.com',
|
|
description='Context-aware emotion engine with state-to-expression mapping and social awareness',
|
|
license='MIT',
|
|
tests_require=['pytest'],
|
|
entry_points={
|
|
'console_scripts': [
|
|
'emotion_engine = saltybot_emotion_engine.emotion_engine_node:main',
|
|
],
|
|
},
|
|
)
|