CHƯƠNG 1.4 Nội dung đề tài Đề tài giới thiệu hệ điều hành ROS –một hệ điều hành mở giúp xây dựng và phát triển các ứng dụng robot một cách hiệu quả và tiết kiệm, đồng thời đề xuất phương pháp định vị xe tự hành trong không gian dựa trên gói định vị robot_localization và bộ lọc Kalman mở rộng (EKF), phương pháp này hợp nhất dữ liệu odometry bánh xe, dữ liệu cảm biến IMU, sau đó sử dụng bộ lọc Kalman mở rộng để dữ đoán trạng thái thực của robot dựa trên dữ liệu đã hợp nhất. Tiếp theo là ứng dụng ROS Navigation Stack để điều hướng, lập kế hoạch đường đi, xây dựng bản đồ, tích hợp nhiều loại cảm biến khác nhau thực hiện các nhiệm vụ khác nhau và giúp robot di chuyển đến vị trí mong muốn một cách an toàn mà không va chạm với bất kỳ vật cản nào. BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 4 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT CHƯƠNG 2.1 Giới thiệu về hệ điều hành Robot Operating System ( ROS) • Khái niệm: ROS là một framework mã nguồn mở dành cho việc phát triển phần mềm robot trên nền tảng Linux, một bộ công cụ phần mềm cung cấp các chức năng thiết yếu cho phát triển phần mềm robot giúp xây dựng các ứng dụng robot phức tạp.
ROS chứa các thư viện, gói phần mềm và các quy trình tiêu chuẩn, quy ước đơn giản để xây dựng và điều hành các ứng dụng robot. ROS cung cấp một nền tảng chung với lợi thế là mã nguồn mở, cho phép các nhà phát triển robot trên toàn thế giới có thể dễ chia sẻ mã nguồn và tái sử dụng các module, phần mềm, tài liệu giúp cho việc xây dựng cộng đồng robot được hiệu quả hơn giải quyết được bài toán robot phức tạp và tốn nhiều chi phí của những nhà phát triển robot trên toàn thế giới • Kiến trúc: ROS được thiết kế theo kiến trúc phân tán, cho phép các thành phần của hệ thống robot hoạt động độc lập, các thành phần của hệ thống gọi là các nút (nodes), các nút này có thể giao tiếp và trao đổi dữ liệu với nhau 1 cách hiệu quả. Kiến trúc phân tán giúp mang lại sự linh hoạt, điều này rất quan trọng để phát triển các ứng dụng robot phức tạp từ những ứng dụng đơn giản. Các thành phần chính của ROS: Master (Máy chủ): Master được ví như một trung tâm điều phối của ROS, chịu trách nhiệm điều phối, quản lý tên, địa chỉ và theo dõi các nút (nodes), chủ đề (topic), dịch vụ (services).
Nó cung cấp thông tin cho các nút (nodes) có thể kết nối với nhau. Nodes (Nút): Các nodes có thể chạy trên nhiều máy tính khác nhau trong cùng một mạng, các nodes giao tiếp với nhau thông qua giao thức mạng TCP/IP, điều này giúp mỗi node có thể thực hiện một chức năng cụ thể và giao tiếp với các node khác ngay cả khi không chạy trên cùng một máy tính. Các tiến trình thực thi một cách độc BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 5 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT lập, ví dụ như thi thập dữ liệu từ cảm biến, điều khiển động cơ, lập kế hoạch đường đi,…… Topics (Chủ đề): là một cơ chế truyền thông một chiều dùng để trao đổi dữ liệu giữa các nút (nodes) trong ROS.
Mỗi topic có một cái tên duy nhất và các nút (nodes) có thể publish (phát hành) hoặc subscribe (đăng ký) nhận dữ liệu trên topic đó, cho phép các node giao tiếp với nhau một cách hiệu quả mà không cần biết về sự tổn tại của nhau. Mỗi topic được liên kết với một loại dữ liệu cụ thể, đảm bảo tính nhất quán và dễ dàng xử lý thông tin.1 Sơ đồ mô hình giao tiếp ROS bằng cơ chế Topics Services (Dịch vụ): là một cơ chế giao tiếp đồng bộ giữa các node, cho phép một node gửi yêu cầu và nhận phản hồi từ một node khác. Khác với topics, nơi dữ liệu được gửi và nhận không đồng bộ, services hoạt động theo mô hình yêu cầu – phản hồi ( request – response). • Request (Yêu cầu): Chứa các thông tin mà node gọi service gửi đến node cung cấp service.
• Response (Phản hồi): Chứa các thông tin mà node cung cấp service trả về cho node gọi service. BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 6 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Hình 2.2 Sơ đồ mô hình giao tiếp ROS bằng cơ chế Service Actions (hành động): giống như services, nhưng actions cho phép theo dõi tiến trình và hủy bỏ các hành động đang thực hiện. Actions thường được sử dụng cho các tác vụ kéo dài, ví dụ như điều hướng robot đến một vị trí đích.3 Sơ đồ mô hình giao tiếp ROS bằng cơ chế Actions Messages (thông điệp): dùng để giao tiếp giữa các node thông qua các topic, service hoặc action.
Mỗi loại message xác định cấu trúc dữ liệu được trao đổi và có thể bao gồm nhiều loại dữ liệu khác nhau như số nguyên, số thực, chuỗi và các message khác. ROS cung cấp tập hợp các message được định nghĩa trước cho các loại dữ liệu phổ biến và cho phép người dùng định nghĩa message tùy theo ứng dụng cụ thể. Parameter Server (Máy chủ tham số): là một hệ thống quản lý các tham số (parameters) mà các node có thể sử dụng để lưu trữ và truy xuất dữ liệu cấu hình. Parameter Server hoạt động như một cơ sở dữ liệu dạng key-value, cho phép các node đọc và ghi các giá trị tham số mà không cần biết chi tiết về các node khác trong hệ thống.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 7 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT • Các công cụ của ROS: ROS cung cấp nhiều công cụ giúp phát triển và quản lý các ứng dụng robot: ▪ Lệnh roscore: Roscore là trung tâm điều hành của ROS, cung cấp các dịch vụ cơ bản như subscribe topic, service, và parameter. Tất cả các node phải kết nối với roscore để giao tiếp với nhau. ▪ Lệnh rosrun: cho phép bạn chạy một node từ một gói ROS.
▪ Lệnh roslaunch: cho phép bạn khởi động nhiều node cùng lúc từ một tệp cấu hình launch. ▪ Lệnh rviz: là một công cụ trực quan hóa mạnh mẽ, cho phép bạn xem và tương tác với các dữ liệu cảm biến và trạng thái của robot. ▪ Lệnh rqt: là một khung công cụ GUI plugin-based để phát triển và điều hành các ứng dụng ROS. • Hệ sinh thái ROS: ROS có một hệ sinh thái rộng lớn và phong phú với nhiều gói phần mềm được phát triển và duy trì bởi cộng đồng.
Các gói phần mềm này cung cấp các chức năng từ điều khiển cơ bản đến xử lý hình ảnh, điều hướng, và lập kế hoạch chuyển động. ▪ ROS Packages: là các đơn vị phần mềm trong ROS, chứa các node, thư viện, dữ liệu cấu hình, và các tệp liên quan.Các package được tổ chức theo cấu trúc thư mục nhất định và thường được chia sẻ qua hệ thống quản lý gói của ROS. ▪ Gazebo: là một trình mô phỏng 3D mạnh mẽ được tích hợp chặt chẽ với ROS, cho phép bạn mô phỏng robot và môi trường làm việc của nó. ▪ MoveIt: là một khung phần mềm cho điều khiển và lập kế hoạch chuyển động, được sử dụng rộng rãi trong cộng đồng ROS.
▪ Navigation Stack: cung cấp các giải pháp cho điều hướng tự động, bao gồm lập bản đồ, định vị, và lập kế hoạch đường đi. BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 8 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Hình 2.4 Hệ sinh thái ROS • Ưu điểm của ROS: ▪ Mã nguồn mở: Cộng đồng ROS lớn mạnh cung cấp nguồn tài liệu phong phú miễn phí và cộng đồng hỗ trợ lớn mạnh. ▪ Giảm thời gian phát triển: ROS giúp đơn giản hóa việc phát triển ứng dụng robot, tiết kiệm thời gian và chi phí.
▪ Tính tái sử dụng: Các thành phần ROS có thể được tái sử dụng trong nhiều dự án khác nhau, giúp tiết kiệm thời gian. ▪ Phần mềm chuẩn hóa: Cung cấp các công cụ và thư viện chuẩn hóa cho các tác vụ robot phổ biến. • Ứng dụng: ▪ Robot di động: Lập bản đồ, Điều khiển và lập trình các robot di động như robot hút bụi, xe tự hành. ▪ Robot công nghiệp: Tích hợp và điều khiển các cánh tay robot trong sản xuất.
▪ Robot nghiên cứu: Hỗ trợ nghiên cứu trong các lĩnh vực như robot học, trí tuệ nhân tạo, xử lý ảnh,. ▪ Robot dịch vụ: Phát triển các robot hỗ trợ con người trong cuộc sống hàng ngày. BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 9 CHƯƠNG 2.2 Hệ tọa độ chuẩn trong ROS cho Robot Differential Hệ tọa độ chuẩn trong ROS đóng vai trò quan trọng trong việc điều hướng hoạt động hiệu quả của robot di động. Hệ thống này cung cấp một ngôn ngữ chung cho các thành phần robot giao tiếp và chia sẻ dữ liệu, giúp robot nhận biết được vị trí của mình và các vật thể xung quanh trong môi trường, từ đó di chuyển an toàn đến vị trí mục tiêu.
Khung Tham Chiếu: Biểu diễn vị trí và hướng trong không gian. Các khung tham chiếu được liên kết với nhau bằng các biến đổi tọa độ, cho phép chuyển đổi dữ liệu từ khung này sang khung khác. Biến đổi tọa độ: Biểu diễn sự khác biệt giữa hai khung tham chiếu, bao gồm vị trí dịch chuyển và xoay. Biến đổi tọa độ được sử dụng để chuyển đổi dữ liệu từ khung này sang khung khác, đảm bảo dữ liệu được biểu diễn chính xác trong khung tham chiếu phù hợp.
Cây khung tham chiếu ROS: là cấu trúc phân cấp các khung tham chiếu, với mỗi khung có thể được liên kết với một hoặc nhiều khung cha. Cây khung tham chiếu giúp mô tả mối quan hệ giữa các bộ phận của robot và cách chúng di chuyển theo thời gian. Gói tf trong ROS cung cấp các công cụ để quản lý và sử dụng các khung tham chiếu, bao gồm phát hành và lắng nghe các biến đổi tọa độ, truy vấn thông tin về các khung tham chiếu và trực quan hóa các mối quan hệ giữa các khung. Các Loại Khung Tham Chiếu Phổ Biến • map: Khung tham chiếu này có nguồn gốc được chọn tùy ý trong môi trường và được coi là cố định.
Nó được sử dụng để biểu diễn vị trí của các vật thể và chướng ngại vật trong môi trường. • odom: Khung tham chiếu này có nguồn gốc tại vị trí khởi tạo của robot và di chuyển cùng với robot. Nó được sử dụng để theo dõi chuyển động của robot dựa trên dữ liệu mã hóa. • base_footprint: Khung tham chiếu này có nguồn gốc ngay dưới tâm của đế robot.
Nó biểu diễn vị trí 2D của robot và di chuyển cùng với robot. BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 10 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT • base_link: Khung tham chiếu này có nguồn gốc tại điểm trục hoặc tâm của robot.