ROS: Robot OS #1 Node, Action, Service và Topic
Làm quen ROS với 3 khái niệm chính là NODE, TOPIC VÀ SERVICEs
Đối tượng: DEV, Robotics researcher.
ROS như được biết là một hệ điều hành robot - os, mỗi os đều có cấu trúc của riêng nó, nhưng về cơ bản ROS được phân tách theo các layer như sau

Cấu trúc, layer các tầng trong ROS
Trong ROS platform, dữ liệu hay thông tin mà ta có thể nghĩ ra trong quá trình trao đổi của hệ thống được chia thành 3 dạng dữ liệu chính là topic, service và action. Mỗi category sẽ được sử dụng cho từng mục đích cụ thể.

Cách các node giao tiếp với nhau, nguồn ROS document
Topic, “chủ đề”, được dùng cho các hoạt động có tính chất liên tục của hệ thống như dữ liệu cảm biến, trạng thái phản hồi của robot để phản hồi chính xác và nhanh chóng các đặc tính vật lý là robot phải tương tác.
Ví dụ sử dụng cho Topic, có thể như sau: (IMU sensor, Ultra sonic barrier detection,…) Publisher (node sensor) liên tục phát tính hiệu đọc được từ cảm biến, Receiver (node controller) chờ đợi tín hiệu bằng hàm callback. Dữ liệu chỉ đến 1 chiều và không cần phải hồi.
Services, lấy ý nghĩa cùng tên từ các service layer có trong OS, nó được chia thành nhiều tầng khác nhau. Dựa trên ROS hình ảnh lấy từ Ros docs ta thấy được ở rcl (ros control) có service, ngăn cách giữa app và tầng thấp hơn. Cho thấy Services phục vụ cho các mục đích thao tác nhanh và sớm trả/ terminate tác vụ. (truy vấn trạng thái hiện tại của robot, khi cần. Hoặc sẽ thực hiện các thao tác tính toán IK nhanh – cái mà đã có công thức tổng quát, nếu IK lâu có thể cân nhắc chuyển qua action). Sử dụng chủ yếu cho App query trạng thái của robot.
Action, khi các process thực hiện theo những khoảng thời gian rời rạc (theo toán học, sample time) thì nó thường được áp dụng dưới phương thức là action, ví dụ như đi chuyển robot hoặc feed back của hệ thống theo thời gian để điều khiển. Action có thể bị ngắt giữa chừng, hoặc bị preempt (bởi các event), hoặc đơn giản là dừng để thay đổi giữa chừng, hoặc đổi mục tiêu hoạt động “action”.
Ví dụ: tác vụ lập lịch của hệ thống cho robot di chuyển theo lộ trình (navigation, robot phys control, lidar scan). Cần phải thực hiện trên một quãng đường từ A -> B với thời gian cụ thể (long time). Trong quá trình đi cần phản hồi cảm biến (encoder) để tính toán khối lượng đã thực hiện, có thể điều chỉnh path (có thể hủy)
Node, có thể hiểu là từng các mô đun riêng biệt trong hệ thống, mỗi node đều có chứa các properties riêng của nó gồm: action class khác nhau/ có thể có nhiều: client và server. Và có thể chứa các fast query request sending để kiểm tra sys-state hay để gọi và check liên tục các new event?

Khoa học - Công nghệ
/khoa-hoc-cong-nghe
Bài viết nổi bật khác
- Hot nhất
- Mới nhất

