ROS 2 kết nối lời nói, thị giác và điều khiển bay ra sao?
- Trung cấp
- Bài viết
- Từ 16 tuổi
- 6 phút đọc

ROS 2 giúp các phần mềm nhận lệnh bằng lời nói, phân tích ảnh và giao tiếp với bộ điều khiển bay trao đổi dữ liệu. Trong một thiết kế drone, phần lời nói tạo yêu cầu, phần thị giác tìm mục tiêu, còn phần điều phối ghép hai kết quả trước khi gửi mục tiêu chuyển động cho bộ điều khiển bay. ROS 2 cung cấp cách kết nối; người phát triển vẫn phải xây dựng phần hiểu lệnh và ra quyết định.
Mục lục
- Thành phần tạo dữ liệu cảm biến
- Trao đổi thông điệp
- Thành phần tích hợp điều khiển
Từ câu nói đến một nhiệm vụ bay
Giả sử trong một mô phỏng, người dùng nói: “Bay tới gần vật màu đỏ.” Hệ thống cần trả lời được ba điều: người dùng muốn làm gì, vật nào trong ảnh là mục tiêu, và vị trí nào phù hợp để drone di chuyển tới.
Luồng dưới đây là một thiết kế minh họa, không phải chức năng có sẵn chỉ cần bật trong ROS 2. Các tên kênh là ví dụ do ứng dụng tự đặt.
| Phần xử lý | Nhận gì? | Chuyển gì cho phần tiếp theo? |
|---|---|---|
| Nhận dạng lời nói | Âm thanh từ micro | Văn bản “bay tới gần vật màu đỏ” |
| Hiểu lệnh | Văn bản vừa nhận | Ý định “tiếp cận” và mô tả mục tiêu “vật màu đỏ” |
| Thị giác | Ảnh camera | Những vật tìm thấy, mã mục tiêu và vị trí trong ảnh |
| Điều phối nhiệm vụ | Ý định, kết quả thị giác và trạng thái drone | Yêu cầu làm rõ, từ chối, hoặc một mục tiêu chuyển động đã qua kiểm tra |
| Giao tiếp với bộ điều khiển bay | Mục tiêu chuyển động | Setpoint phù hợp với giao diện điều khiển; trạng thái trả về cho phần điều phối |
Điểm nối quan trọng nằm ở phần điều phối: nó cần ghép “vật màu đỏ” trong câu nói với một vật cụ thể mà camera nhìn thấy. Nếu có hai vật cùng màu, thiết kế này yêu cầu người dùng chọn lại trước khi tạo nhiệm vụ.
Node và topic giúp các phần trao đổi ra sao?
Có thể tổ chức mỗi phần xử lý thành một node, tức một thành phần phần mềm tham gia hệ thống ROS 2. Tài liệu về node khuyến nghị mỗi node đảm nhiệm một việc logic. Vì vậy, việc nhắc đến node chỉ hữu ích khi chỉ rõ nó làm gì trong chuỗi lời nói, thị giác và điều khiển.
Một topic là kênh có tên để bên phát gửi bản tin và bên nhận đăng ký đọc. Theo tài liệu về topic, cách trao đổi này phù hợp với luồng dữ liệu liên tục như cảm biến hoặc trạng thái robot.
Trong ví dụ trên, node camera có thể phát ảnh qua /camera/image; node thị giác đọc ảnh và phát kết quả qua /vision/targets. Phần hiểu lệnh có thể gửi yêu cầu đã phân tích qua /voice/intent. Node điều phối nhận cả yêu cầu lẫn các mục tiêu, rồi chọn bước tiếp theo. Đây là tên do thiết kế minh họa đặt, không phải bộ topic chuẩn cho mọi drone.
Các phần phải thống nhất cả cấu trúc lẫn ý nghĩa bản tin. Chẳng hạn, “vị trí mục tiêu” cần nói rõ là tọa độ trong ảnh hay vị trí trong không gian, kèm đơn vị và thời điểm quan sát. Đặt cùng tên topic chưa đủ để các phần hiểu đúng dữ liệu của nhau.
Ghép lời nói với hình ảnh vẫn cần xử lý riêng
Trong thiết kế minh họa, phần lời nói cung cấp ý định và mô tả đối tượng; phần thị giác cung cấp những đối tượng đang được quan sát. Phần điều phối đối chiếu hai đầu vào đó để chọn mục tiêu.
Nhưng một vùng màu đỏ trên ảnh chưa cho biết drone cần bay tới tọa độ nào. Thiết kế còn cần cách ước lượng vị trí mục tiêu, chẳng hạn bằng cảm biến chiều sâu hoặc kết hợp thông tin camera với trạng thái drone. Phần lập kế hoạch sau đó mới chọn vị trí tiếp cận theo các giới hạn của ứng dụng.
Vì thế, trong ví dụ này, kết quả “tìm thấy vật màu đỏ” chỉ đủ để xác định đối tượng. Khi chưa có vị trí đáng tin cậy, phần điều phối báo thiếu dữ liệu và giữ yêu cầu ở trạng thái chưa được chấp nhận. ROS 2 vận chuyển các kết quả này; cách suy ra vị trí và điều kiện chấp nhận do ứng dụng định nghĩa.
Yêu cầu đã kiểm tra đi tới PX4 bằng cách nào?
Ở cuối chuỗi, phần giao tiếp chuyển mục tiêu chuyển động thành setpoint, tức giá trị đích gửi cho bộ điều khiển, chẳng hạn vị trí mong muốn. Giao diện điều khiển ROS 2 của PX4 cung cấp các lớp gửi setpoint ở nhiều cấp điều khiển. Trong ví dụ này, ta xét mục tiêu chuyển động ở cấp vị trí.
Nói “bay tới gần vật màu đỏ” chưa phải một setpoint. Để đến bước này, ứng dụng đã phải hiểu câu nói, chọn đúng vật, ước lượng vị trí và lập mục tiêu chuyển động. Phần điều khiển bay tiếp nhận mục tiêu qua giao diện phù hợp với cấu hình của nó.
PX4 là ví dụ cụ thể trong bài. Tài liệu giao diện này lưu ý rằng một số phần còn thử nghiệm và có thể thay đổi. Khả năng tương thích cần đối chiếu theo đúng bản ROS 2, PX4 và thư viện đang dùng.
Phản hồi khép lại chuỗi điều khiển
Sau khi gửi nhiệm vụ, phần điều phối còn cần biết yêu cầu được chấp nhận hay bị từ chối, đang thực hiện hay đã kết thúc. Giao diện người dùng chỉ nên báo “đã tới mục tiêu” khi nhận được kết quả tương ứng từ phần thực hiện.
ROS 2 có action cho tác vụ kéo dài, với phản hồi tiến độ và khả năng yêu cầu hủy hoặc thay thế mục tiêu, theo tài liệu về action. Ứng dụng có thể dùng cơ chế này giữa phần điều phối và phần thực hiện nhiệm vụ. Phần giao tiếp với PX4 vẫn phải được triển khai riêng; tạo một action chưa tự tạo ra chức năng bay.
Trong mô phỏng minh họa, nếu camera mất mục tiêu hoặc dữ liệu đã cũ, phần điều phối ngừng tạo mục tiêu tiếp cận mới và báo lại tình trạng. Hành vi của phương tiện khi nhiệm vụ bị ngắt phải được thiết kế và kiểm tra riêng theo chế độ điều khiển. Bản tin yêu cầu hủy không tự chứng minh drone đã dừng.
Câu hỏi thường gặp
ROS 2 có tự hiểu lời nói và nhận ra vật trong ảnh không?
Ứng dụng cần tích hợp bộ nhận dạng lời nói, phần hiểu lệnh và mô hình thị giác. ROS 2 giúp các phần đó trao đổi yêu cầu và kết quả.
Vì sao không gửi câu nói thẳng cho bộ điều khiển bay?
Trong thiết kế này, bộ điều khiển nhận mục tiêu chuyển động qua giao diện của nó. Câu nói còn thiếu thông tin như đối tượng cụ thể, vị trí đích và điều kiện thực hiện; phần điều phối cần xử lý trước.
Tên topic có giống nhau trên mọi drone không?
Các tên trong bài chỉ là ví dụ. Một hệ thống tích hợp cần thống nhất tên, kiểu bản tin, đơn vị, hệ tọa độ và cách xử lý dữ liệu cũ giữa các phần.
Tóm tắt
Lời nói tạo yêu cầu; thị giác giúp xác định đối tượng; phần điều phối ghép dữ liệu và kiểm tra điều kiện; phần giao tiếp gửi setpoint tới bộ điều khiển bay. Phản hồi từ phần thực hiện quay lại để cập nhật tiến độ hoặc báo lỗi. Node, topic và action là các cơ chế giúp tổ chức và kết nối chuỗi này trong ROS 2.
Thuật ngữ trong bài
Tên tiếng Việt, tên tiếng Anh và nghĩa dùng trong bài. Di chuột, chạm hoặc dùng phím Tab tới từ có gạch chân chấm để xem giải thích ngay khi đọc.
- ROS 2
- Bộ phần mềm trung gian cho robot, trong đó các node trao đổi dữ liệu.
- node
- Một thành viên của đồ thị ROS 2, dùng thư viện client để giao tiếp với node khác.
- topic
- Kênh có tên để bên phát gửi bản tin và bên nhận đăng ký đọc.
- action
- Giao diện cho tác vụ kéo dài, có phản hồi tiến độ và yêu cầu hủy hoặc thay thế mục tiêu.
- setpoint
- Giá trị đích gửi cho bộ điều khiển, chẳng hạn vị trí mong muốn.
Bài này chưa được đánh dấu là đã xem
Thấy nội dung sai hoặc chưa an toàn?
Báo cho quản trị viên qua email. Thư có sẵn tên bài và đường dẫn.
Có thể bạn cũng quan tâm
Cơ bảnKết nối camera với bo nhúng ra sao?
Theo đường ảnh từ cảm biến qua driver tới ứng dụng và so sánh các bước kiểm tra cho Pi, Jetson và ESP32-CAM.
Internet vạn vật (IoT)6 phút đọc
Cơ bảnNén và truyền video bằng RTSP hay WebRTC ra sao?
Theo dõi pipeline nén video và phân biệt vai trò của codec, RTSP, RTP và WebRTC.
Internet vạn vật (IoT)6 phút đọc
Cơ bảnGimbal giữ camera hướng ổn định bằng cách nào?
Giải thích vòng cảm biến–điều khiển–motor giữ hướng camera và phân biệt nó với đường lệnh MAVLink.
Robotics (Robot học)6 phút đọc
Cơ bảnPhát hiện vật thể từ drone khác ảnh mặt đất ra sao?
So sánh ảnh drone và ảnh mặt đất theo góc nhìn, kích thước vật, chuyển động camera và che khuất để hiểu ảnh hưởng đến phát hiện vật thể.
Trí tuệ nhân tạo (AI)5 phút đọc
Nguồn
Các nguồn này viết cho người đọc lớn hơn. Nếu thấy khó, hãy đọc cùng người lớn.
- About Nodes (ROS 2 Jazzy)(mở trong thẻ mới)
ROSBậc C: nguồn khácĐọc ngày 30 tháng 10, 2026
- PX4 ROS 2 Control Interface(mở trong thẻ mới)
PX4Bậc C: nguồn khácĐọc ngày 30 tháng 10, 2026
- Topics (ROS 2 Jazzy, official documentation source)(mở trong thẻ mới)
ROSBậc C: nguồn khácĐọc ngày 30 tháng 10, 2026
- Actions (ROS 2 Jazzy, official documentation source)(mở trong thẻ mới)
ROSBậc C: nguồn khácĐọc ngày 30 tháng 10, 2026
