diff --git a/.pio/build/f722/src/esc_backend.o b/.pio/build/f722/src/esc_backend.o new file mode 100644 index 0000000..a13f4c2 Binary files /dev/null and b/.pio/build/f722/src/esc_backend.o differ diff --git a/.pio/build/f722/src/esc_hoverboard.o b/.pio/build/f722/src/esc_hoverboard.o new file mode 100644 index 0000000..3e0c02c Binary files /dev/null and b/.pio/build/f722/src/esc_hoverboard.o differ diff --git a/.pio/build/f722/src/esc_vesc.o b/.pio/build/f722/src/esc_vesc.o new file mode 100644 index 0000000..e134baf Binary files /dev/null and b/.pio/build/f722/src/esc_vesc.o differ diff --git a/.pio/build/f722/src/main.o b/.pio/build/f722/src/main.o new file mode 100644 index 0000000..462921c Binary files /dev/null and b/.pio/build/f722/src/main.o differ diff --git a/.pio/build/f722/src/servo.o b/.pio/build/f722/src/servo.o new file mode 100644 index 0000000..5fd6f79 Binary files /dev/null and b/.pio/build/f722/src/servo.o differ diff --git a/.pio/build/f722/src/ultrasonic.o b/.pio/build/f722/src/ultrasonic.o new file mode 100644 index 0000000..a1e5703 Binary files /dev/null and b/.pio/build/f722/src/ultrasonic.o differ diff --git a/.pio/build/f722/src/watchdog.o b/.pio/build/f722/src/watchdog.o new file mode 100644 index 0000000..06608b7 Binary files /dev/null and b/.pio/build/f722/src/watchdog.o differ diff --git a/jetson/ros2_ws/src/saltybot_face_bridge/package.xml b/jetson/ros2_ws/src/saltybot_face_bridge/package.xml new file mode 100644 index 0000000..f9504d3 --- /dev/null +++ b/jetson/ros2_ws/src/saltybot_face_bridge/package.xml @@ -0,0 +1,26 @@ + + + + saltybot_face_bridge + 0.1.0 + + Face display bridge node for orchestrator state to face expression mapping. + Maps social/orchestrator state to face display WebSocket API. + + sl-controls + MIT + + rclpy + std_msgs + + ament_python + + ament_copyright + ament_flake8 + ament_pep257 + python3-pytest + + + ament_python + + diff --git a/jetson/ros2_ws/src/saltybot_face_bridge/resource/saltybot_face_bridge b/jetson/ros2_ws/src/saltybot_face_bridge/resource/saltybot_face_bridge new file mode 100644 index 0000000..e69de29 diff --git a/jetson/ros2_ws/src/saltybot_face_bridge/saltybot_face_bridge/__init__.py b/jetson/ros2_ws/src/saltybot_face_bridge/saltybot_face_bridge/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/jetson/ros2_ws/src/saltybot_face_bridge/setup.cfg b/jetson/ros2_ws/src/saltybot_face_bridge/setup.cfg new file mode 100644 index 0000000..2923e00 --- /dev/null +++ b/jetson/ros2_ws/src/saltybot_face_bridge/setup.cfg @@ -0,0 +1,4 @@ +[develop] +script-dir=$base/lib/saltybot_face_bridge +[egg_info] +tag_date = 0 diff --git a/jetson/ros2_ws/src/saltybot_face_bridge/setup.py b/jetson/ros2_ws/src/saltybot_face_bridge/setup.py new file mode 100644 index 0000000..e297bf9 --- /dev/null +++ b/jetson/ros2_ws/src/saltybot_face_bridge/setup.py @@ -0,0 +1,27 @@ +from setuptools import setup + +package_name = "saltybot_face_bridge" + +setup( + name=package_name, + version="0.1.0", + packages=[package_name], + data_files=[ + ("share/ament_index/resource_index/packages", [f"resource/{package_name}"]), + (f"share/{package_name}", ["package.xml"]), + (f"share/{package_name}/launch", ["launch/face_bridge.launch.py"]), + (f"share/{package_name}/config", ["config/face_bridge_params.yaml"]), + ], + install_requires=["setuptools"], + zip_safe=True, + maintainer="sl-controls", + maintainer_email="sl-controls@saltylab.local", + description="Face display bridge for orchestrator state mapping", + license="MIT", + tests_require=["pytest"], + entry_points={ + "console_scripts": [ + "face_bridge_node = saltybot_face_bridge.face_bridge_node:main", + ], + }, +) diff --git a/jetson/ros2_ws/src/saltybot_social/saltybot_social/mesh_comms_node.py b/jetson/ros2_ws/src/saltybot_social/saltybot_social/mesh_comms_node.py index 02b9618..0fee141 100644 --- a/jetson/ros2_ws/src/saltybot_social/saltybot_social/mesh_comms_node.py +++ b/jetson/ros2_ws/src/saltybot_social/saltybot_social/mesh_comms_node.py @@ -178,7 +178,7 @@ class MeshCommsNode(Node): msg = MeshPeer() msg.header.stamp = self.get_clock().now().to_msg() msg.robot_id = self._robot_id - msg.namespace = self._ns + msg.ros_namespace = self._ns msg.social_state = state msg.active_person_ids = active_ids msg.greeted_person_names = greeted_names diff --git a/jetson/ros2_ws/src/saltybot_social_msgs/msg/MeshPeer.msg b/jetson/ros2_ws/src/saltybot_social_msgs/msg/MeshPeer.msg index c03d571..e6576f9 100644 --- a/jetson/ros2_ws/src/saltybot_social_msgs/msg/MeshPeer.msg +++ b/jetson/ros2_ws/src/saltybot_social_msgs/msg/MeshPeer.msg @@ -6,7 +6,7 @@ std_msgs/Header header string robot_id # e.g. "saltybot_1" -string namespace # ROS2 namespace, e.g. "/saltybot_1" (empty = default) +string ros_namespace # ROS2 namespace, e.g. "/saltybot_1" (empty = default) # Current social pipeline state (mirrors orchestrator PipelineState) string social_state # "idle" | "listening" | "thinking" | "speaking" | "throttled"