How Does ROS 2 Connect Voice, Vision and Flight Control?
- Intermediate
- Article
- Ages 16+
- 6 min read

ROS 2 lets software for voice commands, image analysis and flight-controller communication exchange data. In one drone design, speech processing produces a request, vision finds a target, and a coordinator combines both results before sending a motion target to the flight controller. ROS 2 provides the connections; developers still build command understanding and decision logic.
Contents
- Sensor-data component
- Message exchange
- Control-integration component
From a spoken sentence to a flight task
Suppose a user says “Fly near the red object” in a simulation. The system needs to establish what the user wants, which object in the image is the target, and which position the drone could move towards.
The flow below is an illustrative design, rather than a built-in ROS 2 feature you can simply enable. Channel names are examples chosen by the application.
| Processing stage | Input | Output for the next stage |
|---|---|---|
| Speech recognition | Microphone audio | The text “fly near the red object” |
| Command understanding | Recognized text | The intent “approach” and target description “red object” |
| Vision | Camera images | Detected objects, target identifiers and image positions |
| Task coordination | Intent, vision results and drone state | A clarification request, rejection, or a motion target that passed the application's checks |
| Flight-controller communication | Motion target | A setpoint supported by the control interface; state returned to the coordinator |
The critical connection is in the coordinator: it must match “red object” in the sentence to a specific object seen by the camera. If two objects have that colour, this design asks the user to choose before creating a task.
How do nodes and topics connect the stages?
Each processing stage can be organized as a node, a software participant in the ROS 2 system. The node documentation recommends one logical responsibility per node. Discussing nodes becomes useful when their roles in speech, vision and control are clear.
A topic is a named channel where publishers send messages and subscribers receive them. The topic documentation describes this interface as suitable for continuous streams such as sensor data or robot state.
In this example, a camera node could publish images on /camera/image; a vision node reads them and publishes results on /vision/targets. Command understanding could send its parsed request on /voice/intent. The coordinator receives both requests and targets, then chooses the next step. These names belong to the illustrative design, not a standard set of topics for every drone.
The stages must agree on message structure and meaning. For instance, a “target position” needs to specify whether it is an image coordinate or a position in space, along with units and observation time. Matching topic names alone does not establish shared meaning.
Combining speech and images requires application logic
In the illustrative design, speech provides intent and an object description; vision provides the objects currently being observed. The coordinator matches these inputs to select a target.
A red region in an image does not yet establish a destination for the drone. The design also needs a way to estimate the target's position, perhaps using a depth sensor or combining camera information with drone state. A planning stage then chooses an approach position within the application's limits.
In this example, “red object found” is enough to identify an object. Without a reliable position, the coordinator reports missing data and leaves the request unaccepted. ROS 2 carries these results; the application defines position estimation and acceptance conditions.
How does a checked request reach PX4?
At the end of the chain, the communication stage translates the motion target into a setpoint, a desired value sent to a controller, such as a target position. The PX4 ROS 2 control interface provides classes for sending setpoints at different control levels. This example considers a position-level motion target.
“Fly near the red object” is not yet a setpoint. Before reaching this stage, the application has interpreted the sentence, selected an object, estimated its position and planned a motion target. Flight control receives that target through an interface appropriate to its configuration.
PX4 is the concrete example used here. Its interface documentation notes that some parts remain experimental and may change. Compatibility needs checking against the actual ROS 2, PX4 and library versions in use.
Feedback closes the control chain
After sending a task, the coordinator still needs to know whether it was accepted or rejected, is running, or has finished. The user interface should report “target reached” only after receiving the corresponding execution result.
ROS 2 provides an action interface for longer tasks, with progress feedback and requests to cancel or replace a goal, as described in the action documentation. An application can use it between coordination and task execution. PX4 communication still needs its own implementation; creating an action does not implement flight behaviour.
In the illustrative simulation, if the camera loses the target or data becomes stale, the coordinator stops generating new approach targets and reports the condition. Vehicle behaviour after interruption needs separate design and verification for the chosen control mode. A cancellation request alone does not establish that the drone has stopped.
Frequently asked questions
Does ROS 2 understand speech and recognize objects by itself?
The application needs speech recognition, command understanding and a vision model. ROS 2 lets these components exchange requests and results.
Why not send the spoken sentence straight to flight control?
In this design, the controller receives motion targets through its interface. A sentence still lacks a specific object, destination and execution conditions; the coordinator handles those first.
Are topic names the same on every drone?
The names in this article are examples. An integrated system needs agreement on names, message types, units, coordinate frames and stale-data handling between stages.
Summary
Speech creates a request; vision helps identify an object; coordination combines data and checks conditions; communication sends setpoints to flight control. Execution feedback returns to update progress or report errors. Nodes, topics and actions help organize and connect this chain in ROS 2.
Terms in this article
English and Vietnamese terms, with the meanings used here. Hover, tap or Tab to a term with a dotted underline for an explanation as you read.
- ROS 2
- Robotics middleware in which nodes exchange data.
- node
- A participant in the ROS 2 graph that uses a client library to talk to other nodes.
- topic
- A named channel where publishers send messages and subscribers receive them.
- action
- An interface for longer tasks with progress feedback and requests to cancel or replace a goal.
- setpoint
- A desired value sent to a controller, such as a target position.
This article is not marked as viewed
Spotted something wrong or unsafe?
Tell the administrator by email. The message already has the article title and address.
You may also like
BasicHow Do You Connect Cameras to Pi, Jetson and ESP32-CAM?
Trace image data from sensor through driver to application and compare checks for Pi, Jetson and ESP32-CAM.
Internet of Things (IoT)6 min read
BasicHow Do Video Compression and RTSP or WebRTC Streaming Work?
Trace video compression and distinguish the roles of codecs, RTSP, RTP and WebRTC.
Internet of Things (IoT)6 min read
BasicHow Does a Gimbal Keep a Camera Pointing Steady?
Explains the sensor-controller-motor loop that holds camera direction and distinguishes it from MAVLink commands.
Robotics6 min read
BasicHow Is Drone-Footage Object Detection Different?
Compare drone and ground images by viewpoint, object size, camera motion and occlusion to understand their effects on object detection.
Artificial intelligence5 min read
Sources
These sources are written for older readers. If they feel hard, read them with an adult.
- About Nodes (ROS 2 Jazzy)(opens in a new tab)
ROSTier C: other sourcesRead on October 30, 2026
- PX4 ROS 2 Control Interface(opens in a new tab)
PX4Tier C: other sourcesRead on October 30, 2026
- Topics (ROS 2 Jazzy, official documentation source)(opens in a new tab)
ROSTier C: other sourcesRead on October 30, 2026
- Actions (ROS 2 Jazzy, official documentation source)(opens in a new tab)
ROSTier C: other sourcesRead on October 30, 2026
