-
Notifications
You must be signed in to change notification settings - Fork 0
episode 2 the comms
Understanding the language that connects minds and machines / Entendiendo el lenguaje que conecta mentes y máquinas
- 🎥 Watch the Short
- 📖 Episode Description
- 💡 Lessons & Learnings
- 🔧 Technical Highlights
- 📚 Learning Resources
- 🎯 Challenge Posed
- ⏭️ Next Episode
The team gathers to discuss how ORION's communications work. Danna starts by highlighting what ORION stands for: Open-source Robot for Interaction Objectives and Navigation. She asks Felipe how the communications function, and he introduces ROS 2 and topics. Danna brilliantly compares the publisher-subscriber model to a radio station and its listeners. David then asks about ORION's specific topics, and ORION itself reveals the five key communication channels that make everything possible.
What is ROS 2?
ROS 2 (Robot Operating System 2) is an open-source framework that helps different parts of a robot communicate with each other. Think of it as the nervous system of a robot—it allows sensors, motors, cameras, and computing units to share information seamlessly. Despite its name, ROS isn't an operating system like Windows or Linux; it's a middleware that runs on top of an OS and provides tools for building complex robotic applications.
Imagine a radio station broadcasting music on FM 95.5:
- The Radio Station = Publisher (sends out information)
- The Frequency (95.5 FM) = Topic (the channel where information flows)
- Your Radio = Subscriber (receives the information)
In ROS 2:
- A publisher sends messages (like sensor data or commands)
- A topic is the named channel where these messages travel (like
/mobile_base_controller/cmd_vel) - A subscriber listens to that topic and receives the messages
The beauty? Multiple radios can tune into the same station, and one radio can listen to multiple stations. Similarly, multiple nodes can subscribe to the same topic, and one node can subscribe to many topics!
-
Decoupled communication: Publishers and subscribers don't need to know about each other directly. They just agree on the topic name and message type. This makes systems flexible and modular.
-
Standardized messages: ROS 2 uses predefined message types (like
geometry_msgs/msg/TwistStampedfor movement) so different components speak the same language. -
Scalability: You can add new publishers or subscribers without changing existing code, just use the right topic related with the task to achieve.
ORION uses five main topics to function:
| Topic | Message Type | Purpose |
|---|---|---|
/mobile_base_controller/cmd |
geometry_msgs/msg/Twist |
Controls ORION's movement (linear and angular velocity) |
/simple_left_arm_controller/commands |
std_msgs/msg/Float64MultiArray |
Commands for the left arm joint positions |
/simple_right_arm_controller/commands |
std_msgs/msg/Float64MultiArray |
Commands for the right arm joint positions |
/emotion |
std_msgs/msg/Int32 |
Sets ORION's emotional state/expression |
/orion_response |
std_msgs/msg/String |
Text-to-speech output from ORION |
-
geometry_msgs/msg/TwistStamped: Contains linear velocity (x, y, z) and angular velocity (roll, pitch, yaw) for movement with a time stamp header. -
std_msgs/msg/Float64MultiArray: An array of floating-point numbers, perfect for controlling multiple arm joints. -
std_msgs/msg/Int32: A simple integer, used here to select predefined emotions. -
std_msgs/msg/String: Text data for ORION's spoken responses.
[Joystick on Vambrace] → publishes to → /mobile_base_controller/cmd_vel → ORION moves
[Potentiometers] → publish to → /simple_left_arm_controller/commands → Left arm adjusts
[Membrane Keyboard] → publishes to → /emotion/int → ORION expresses emotion- Official ROS 2 Documentation - Complete guide to ROS 2 Jazzy
- ROS 2 Tutorials - Understanding Topics - Interactive topic tutorial
- ROS 2 Concepts Overview - Core concepts explained
- Common ROS 2 Interfaces - Standard message types repository
- Understanding ROS 2 Messages
"We know HOW to communicate... now what do we actually NEED to make it happen?" - David
The communication architecture is clear. Topics are the highways, messages are the vehicles. But what physical components and software tools do we need to build this system? What hardware will capture our inputs, and what code will transform them into ROS 2 messages?
➡️ Episode 3: The Tools / Las Herramientas
Danna, David, and Felipe review the tentative components and software tools needed to bring the vambrace to life.
Characters: Danna, Felipe, David, ORION | Published: February 5, 2025 | Wiki: February 28, 2025