Chương 1: Tổng Quan Trình bày tổng quan hệ thống, nội dung đề tài và mục đích đặt ra. Chương 2: Cơ Sở Lý Thuyết Trình bày cơ sở lý thuyết các nội dung kỹ thuật và giới thiệu các thuật toán sử dụng. Chương 3: Thiết Kế Và Thi Công Hệ Thống Trình bày về thiết kế và thi công mô hình hệ thống, lựa chọn thiết bị. Chương 4: Thiết Kế Chương Trình Điều Khiển Trình bày về các chương trình điều khiển, lưu đồ giải thuật và các cài đặt cần thiết cho hệ thống.
Chương 5: Kết Quả Thực Nghiệm Trình bày cách thức vận hành quy trình, kết quả và đánh giá hệ thống. Chương 6: Kết Luận Và Hướng Phát Triển Đưa ra nhận xét tổng quan và các hướng phát triển cho đề tài. 5 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2. Lý thuyết di chuyển đa hướng Xe di chuyển đa hướng là một loại xe có khả năng di chuyển trong nhiều hướng một cách độc lập và linh hoạt.
Điều này cho phép xe di chuyển không chỉ thẳng và quay vòng như các loại xe thông thường, mà còn di chuyển xiên, di chuyển ngang bên, và thực hiện các chuyển động phức tạp khác. Các xe di chuyển đa hướng thường được trang bị các bánh xe đặc biệt như bánh mecanum, bánh bánh xe tròn, bánh xe bước, hoặc các cơ cấu di chuyển khác nhau. Thiết kế này cho phép xe tạo ra lực đẩy và lực kéo trong các hướng khác nhau, đồng thời cho phép điều khiển độc lập của từng bánh xe. Xe di chuyển đa hướng được ứng dụng rộng rãi trong nhiều lĩnh vực như robot di động, xe tự động hóa, xe vận chuyển trong nhà máy và kho hàng, robot hợp tác, và nhiều ứng dụng công nghiệp khác.
Sự linh hoạt và khả năng di chuyển đa hướng của xe giúp tăng hiệu suất và độ chính xác trong các tác vụ di chuyển và vận chuyển. Bánh mecanum là một loại bánh xe đặc biệt được thiết kế để cho phép xe di chuyển đa hướng. Đặc điểm nổi bật của bánh mecanum là có các bánh răng nhỏ được đặt xung quanh vòng ngoài của bánh xe. Nhờ thiết kế này, bánh mecanum có khả năng tạo ra lực đẩy và lực kéo không chỉ theo hướng trục xe, mà còn theo các hướng xiên và chéo.
1: Các hướng di chuyển của bánh Mecanum Phương pháp điều khiển bánh mecanum thường sử dụng các phương pháp như điều khiển vector tốc độ (velocity vector control) hoặc điều khiển mô phỏng (kinematic control). Bằng cách điều chỉnh các giá trị vector tốc độ của từng bánh xe, ta có thể đạt được các chuyển động mong muốn của xe. Ứng dụng của bánh mecanum phổ biến trong ngành công nghiệp tự động hóa, robot hợp tác, robot di động, xe tải tự lái, và các ứng dụng đòi hỏi khả năng di chuyển 6 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT đa hướng và linh hoạt. Việc sử dụng bánh mecanum giúp tăng khả năng vận chuyển và điều khiển của xe, đồng thời giảm thời gian và công sức trong các thao tác di chuyển.
Động học bánh xe Mecanum Hình 2. 2: Mô hình toán học của hệ xe Mecanum Vector tọa độ của robot với hướng song song với tọa độ x đc biểu diễn bằng vector Vx và có các thành phần của vector Vy được xác định bởi: Vx v cos (2.2) Kích thước của robot được biểu diễn bằng bán kính a và b giữa trung tâm thân xe với trục bánh xe theo giá trị ai : {a, a, -a, -a} và bi : {b, -b, b, -b} với i : {1, 2, 3, 4} đại diện cho số bánh xe. Góc nghiêng y giữa V và Vr là 45° , đại diện cho góc nghiêng của bánh lăn mecanum trên mỗi bánh xe là i : , , , . Phương trình vector 4 4 4 4 vận tốc của robot di chuyển theo các thành phần tọa độ có thể được tính bằng công thức sau: 7 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT vi r vi cos( i ) Vx bi (2.3) r vi sin( i ) Vy ai (2.4) Thay hàm tan(𝛾𝑖 ) vào phương trình (2.4) ta có thể tính được vấn tốc tuyến tính của mỗi bánh xe như sau: Vy ai vi Vx bi (2.5) tan( i ) Vì tan( i ) được biểu diễn trong phương trình (2.5) bằng tan( i ) : 1, 1, 1,1 , vận tốc tuyến tính của bánh xe mecanum được tính như sau: v1 Vx Vy a z bz (2.9) 𝑣𝑖 Trong khi đó, vận tốc góc của bánh xe được xác định bằng 𝜔𝑖 = và R là bán 𝑅 kính của bốn bánh xe mecanum, phương trình (2.9) có thể được điều chỉnh thành: 1 1 1 (a b) 1 1 (a b) vx 1 2 vy (2.10) 3 R 1 1 (a b) z 4 1 1 ( a b ) Phương trình (2.10) mô tả mô hình toán học của động học nghịch để tính toán được vận tốc của từng bánh xe dựa trên đầu vào là các thành phần vector của Vx và Vy và theo hướng góc bên của robot mà không thay đổi hướng của robot khi đang hướng tới.
Động học nghịch là phần không thể thiếu trong việc tạo ra một chuỗi động học khi robot được mô hình hóa với một khung thành phần bằng các đoạn cứng được kết nối bằng các khớp nối. Hơn nữa, với bài toán độc học nghịch, các khớp cho một vị trí mong muốn của nền tảng có thể tính toán. Từ công thức (2.10) chuyển hệ ma trận sang hệ phương trình, ta được: 8 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT Vx Vy z (a b) 1 R R R V V ( a b) 2 x y z R R R (2.11) V V ( a b) 3 x y z R R R V V (a b) 4 x y z R R R Từ phương trình (2.) trên, cộng 4 phương trình ta có động học thuận được biểu diễn như sau: Vx 1 1 1 1 1 V R 1 1 2 y 4 1 1 (2.13) 4 Vận tốc dọc theo hướng chéo: R Vy (t ) (1 2 3 4 ) (2.15) 4(a b) Phương trình động học có thể mô tả như sau: x Vx y J V (2.16) y z 9 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT cos sin 0 Trong đó: J sin cos 0 là đầu vào vận tốc của tọa độ tổng quát. Giới thiệu về hệ thống ROS 2.
Tổng quan ROS (Robot Operating System) là một hệ thống phần mềm mã nguồn mở được phát triển nhằm hỗ trợ việc phát triển và điều khiển các robot. ROS cung cấp một khung làm việc linh hoạt và mạnh mẽ cho việc xây dựng các ứng dụng robot đa nền tảng. ROS không chỉ là một hệ điều hành dành riêng cho robot, mà thực chất nó là một tập hợp các thư viện, công cụ và quy tắc cho phép các phần mềm robot tương tác với nhau. Mục tiêu chính của ROS là tạo ra một môi trường hợp tác, trong đó các phần mềm có thể chia sẻ dữ liệu, truyền thông và tương tác với nhau một cách dễ dàng.
ROS hỗ trợ việc phát triển phần mềm robot theo mô hình kiến trúc phân tán, trong đó các thành phần phần mềm độc lập có thể chạy trên các nút (node) riêng biệt và giao tiếp với nhau thông qua các topic, service và action. ROS cung cấp cơ chế tạo ra, quản lý và chuyển đổi các message (thông điệp) để các nút có thể giao tiếp và trao đổi dữ liệu với nhau. 3: Hệ thống ROS ROS hỗ trợ nhiều ngôn ngữ lập trình như C++, Python và Java, giúp cho người phát triển có sự linh hoạt trong việc lựa chọn ngôn ngữ phù hợp với nhu cầu của dự án. Một điểm mạnh của ROS là sự phổ biến và sự hỗ trợ từ cộng đồng người dùng rộng lớn.
Cộng đồng ROS cung cấp nhiều tài liệu, ví dụ và gói phần mềm mở rộng, giúp người dùng tiết kiệm thời gian và công sức trong quá trình phát triển robot. 10 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT Tóm lại, ROS là một hệ thống phần mềm mã nguồn mở mạnh mẽ cho phát triển robot, cung cấp khả năng tương tác và chia sẻ dữ liệu giữa các phần mềm robot. Với ROS, người dùng có thể xây dựng các ứng dụng robot phức tạp một cách dễ dàng và linh hoạt. Hệ điều hành Linux: Linux là một hệ điều hành phổ biến và mạnh mẽ.
Nó được phát triển bởi một cộng đồng toàn cầu và được sử dụng rộng rãi trên nhiều thiết bị và máy tính. Linux có tính linh hoạt cao và có thể được cài đặt trên nhiều loại phần cứng khác nhau. Nó cung cấp một môi trường ổn định và bảo mật, cùng với nhiều công cụ và ứng dụng phong phú. Linux được ưa chuộng cho tính ổn định, hiệu suất cao, khả năng tùy chỉnh và khả năng tương thích với nhiều phần mềm và tiêu chuẩn.
ROS 1 có thể được cài đặt và chạy trên các phiên bản Linux khác nhau như Ubuntu, Fedora, CentOS và nhiều hệ điều hành khác, nhưng hệ thống thường được hỗ trợ tốt nhất trên Ubuntu. Các công cụ và thư viện trong ROS 1 được phát triển và kiểm tra chủ yếu trên Linux, vì vậy việc sử dụng ROS 1 trên hệ điều hành Linux giúp đảm bảo tính ổn định và tương thích tốt. 4: Hệ điều hành Linux phiên bản Ubuntu 20. Cấu trúc Trong ROS, có một số cấp độ khái niệm quan trọng để hiểu cách hệ thống hoạt động và tương tác với nhau.
Dưới đây là một số cấp độ khái niệm chính trong ROS: - Package (Gói): Package là cấp độ tổ chức cao nhất trong ROS. Nó là một thư mục chứa các tập tin và mã nguồn liên quan đến một chức năng cụ thể hoặc một phần của hệ thống robot. Package bao gồm các tệp tin cấu hình, mã 11 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT nguồn, thư viện, message, và các công cụ khác liên quan đến chức năng cụ thể đó. Một gói trong ROS có thể được sử dụng lại và chia sẻ giữa các dự án khác nhau.
- Node (Nút): Node là một quy trình độc lập trong ROS, chạy trên một máy tính riêng biệt.