CHƯƠNG 1.4 Giới hạn của đề tài Môi trường hoạt động: trong nhà. Hoạt động: phụ thuộc vào cảm biến Lidar và Encoder. Vận hành: Vị trí được chỉ định tuần tự. Thiết bị điều khiển: máy tính nội bộ.
Kết nối: Internet. Khối lượng hàng hóa: Không vượt quá 5Kg. Hình dạng hàng hóa: Mặt đáy bằng phẳng. Diện tích hàng hóa: Không vượt quá 40x40cm.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 3 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Khảo sát AMR Autonomous Mobile Robot (AMR) là các robot có khả năng tự vận hành trong một môi trường mà không cần sự can thiệp trực tiếp của con người. Không giống như AGV, AMR có thể đưa ra quyết định và không cần bất kỳ cơ sở hạ tầng nào được cài đặt trước để có điều hướng. AMR có thể được thiết kế với nhiều loại cấu trúc bánh xe khác nhau để phù hợp với yều cầu, nhu cầu nhiệm vụ mà người sử dụng, điều khiển mong muốn.
Kết cấu AMR với 4 bánh mecanum là lựa chọn thường được sử dụng phổ biến trong các ứng dụng như: logistics, quản lí kho, sản xuất và dịch vụ. Có 3 cấu trúc bánh phổ biến nhất là bánh xe khí nén, bánh sắt và bánh mecanum. Bánh khí nén, bánh sắt có tính ổn định cao, chịu tải tốt, dễ điều khiển, kém linh hoạt hơn so với hệ 2 bánh do ko quay tại chỗ, chi phí thấp, dễ bảo trì. Bánh mecanum tính ổn định cao hơn so với cấu trúc xe 2-3 bánh, chi phí cao hơn và phúc tạp hơn bánh thường, độ chịu tải tốt, khả năng di chuyển linh hoạt có thể xoay tại chỗ trong không gian hẹp, thực hiện được động tác di chuyển mà không cần thay đổi hướng trong môi trường phức tạp.
Đánh giá ưu điểm, nhược điểm giữa các kết cấu ở trên và mục tiêu đề ra trên nhóm quyết định sẽ chọn mô hình AMR 4 bánh mecanum để thực thiện đề tài.2 Cơ bản về hệ 4 bánh đa hướng mecanum Bánh mecanum không có vỏ như các loại bánh thông thường, cấu trúc bánh gồm 2 phần: bánh xe chính là các khung tròn làm tự các vật liệu như nhựa hoặc kim loại, các con lăn nghiêng bằng cao su hoặc nhựa để giảm ma sát và tăng độ bám, được gắn xiên vào vành bánh thường có trục quay 45° so với mặt phẳng bánh xe và 45° so với đường trục. BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 4 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Hình 2.1 Mô tả các hướng di chuyển cơ bản của hệ 4 bánh mecanum Để điều khiển chính xác một hệ thống có 4 bánh mecanum, cần điều khiển độc lập mỗi bánh xe bằng một động cơ riêng biệt. Một hệ thống điều khiển phức tạp thường là vi điều khiển, máy tính nhúng sẽ tính toán tốc độ, hướng quay cho từng bánh xe dựa vào hướng di chuyển mong muốn của mô hình.2 Hệ trục tọa độ của hệ toàn cục và cục bộ của xe AMR BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 5 CHƯƠNG 2.3 Tổng quan về ngôn ngữ lập trình và phần mềm hỗ trợ 2.1 Giới thiệu ngôn ngữ lập trình Python Năm 1991, Guido van Rossum giới thiệu với thế giới ngôn ngữ lập trình Python và điều này đã mở ra một chương mới cho ngôn ngữ lập trình.
Python được xem là một ngôn ngữ lập trình bậc cao và nổi bật với cú pháp đơn giản, dễ đọc và dễ học, nhấn mạnh vào tính dễ bảo trì và hiệu quả của chương trình. Đồng thời, ngôn ngữ này hỗ trợ nhiều kiểu lập trình vì Python hướng đến tính linh hoạt. Hơn nữa, Python được sử dụng rộng rãi trong nhiều lĩnh vực. Ngoài ra, Python hoạt động trên nhiều nền tảng khác nhau như Windows, Mac, Linux, Raspberry Pi và có thể viết trong các Môi trường Phát triển Tích hợp (IDE) rất hữu ích khi quản lý các dự án lớn.
Sự kết hợp giữa tính linh hoạt và tính mạnh mẽ của Python làm cho nó trở thành một lựa chọn phổ biến cho các nhà phát triển trên toàn thế giới.2 Ngôn ngữ lập trình Arduino Arduino là một vi điều khiển đơn giản và thân thiện đối với người dùng. Được phát triển vào năm 2005, Arduino đã dần dần trở nên phổ biến cho các dự án lập trình. Vi điều khiển này sử dùng phần mềm có tên là Arduino IDE (Integrated Development Environment) để lập trình và tải mã lên Arduino. Phần mềm này lập trình dựa trên ngôn ngữ C/C++.
Hơn nữa, Arduino IDE còn cung cấp nhiều thư viện lập trình có sẵn giúp người sử dụng dễ dàng hơn.3 Vi điều khiển arduino BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 6 CHƯƠNG 2.3 Phần mềm thiết kế Solidworks Solidworks là một trong những phần mềm không thể thiếu trong các ngành kỹ thuật. Từ khi ra đời, Solidworks đã mở ra một thế giới mới giúp cho các kỹ sư thiết kế có thể làm việc nhanh hơn và sáng tạo nhiều hơn. Về cơ bản, Solidworks là một phần mềm chuyên về cơ khí dùng để thiết kế các sản phẩm với kích thước tùy ý trong không gian 3D. Đồng thời, sau khi thiết kế phầm mềm cũng hỗ trợ mô phỏng chuyển động để người dùng có thể kiểm tra lại phần thiết kế.4 Nền tảng ROS 2.1 Giới thiệu về ROS ROS (Robot Operating System) là một hệ thống mã nguồn mở quản lý, phát triển robot, được thiết kế để cung cấp cho các kỹ sư robot một loạt các thư viện và công cụ cho việc phát triển các ứng dụng robot phức tạp và hiệu quả.
Rất nhiều công ty hàng đầu thế giới trong lĩnh vực này đều chọn ROS làm công cụ cho hoạt động nghiên cứu và phát triển dự án. Với khả năng tương thích cao, ROS là lựa chọn lý tưởng cho bất kỳ dự án nào yêu cầu giao tiếp và điều khiển chính xác cảm biến và thiết bị truyền động. Giúp tối ưu thời gian phát triển, mang lại giải pháp tối ưu kỹ thuật cho các ứng dụng của robot, từ xe tự hành, cánh tay robot công nghiệp nhiều bậc tự do, robot hình người, cho đến thiết bị bay không người lái (UAV), và rất nhiều ứng dụng khác trong các lĩnh vực như y tế, nông nghiệp, quân sự và giáo dục.4 Hệ thống ROS 2.2 Cơ sở phát triển của ROS Khả năng phát triển mở rộng: Với mã nguồn mở và miễn phí cho việc sử dụng và nghiên cứu, cùng với việc được phép sử dụng trong các sản phẩm thương mại, ROS có một cộng đồng người dùng và nhà phát triển vô cùng lớn mạnh. Người dùng có thể dễ dàng tìm kiếm sự giúp đỡ trên các diễn đàn, và có thể mở rộng khả năng của ROS thông qua việc BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 7 CHƯƠNG 2.
CƠ SỞ LÝ THUYẾT thêm vào các gói (packages) mới. ROS cung cấp những công cụ chuẩn giúp việc giao tiếp giữa các tác vụ trở nên dễ dàng hơn. Hỗ trợ đa ngôn ngữ: ROS hỗ trợ nhiều ngôn ngữ lập trình như C++ và Python, giúp linh hoạt trong phát triển các thuật toán về xử lý ảnh, AI, và nhiều lĩnh vực khác. Thư viện đa dạng: ROS có rất nhiều thư viện có sẵn cho các tác vụ khác nhau, AI, thị giác máy tính (computer vision), điều khiển (control),… Dễ dàng tải xuống trực tiếp từ kho lưu trữ của ROS hoặc từ các diễn đàn như GitHub nơi các công ty và tổ chức nghiên cứu công khai mã nguồn dự án của họ.3 Giao thức giao tiếp của ROS Trong hệ thống ROS, các thiết bị phần cứng giao tiếp thông qua các đơn vị được gọi là ‘node’.
Mỗi ‘node’ có thể gửi (publisher) hoặc nhận (subscriber) thông điệp dựa trên chức năng của nó. Giao tiếp trong ROS được thực hiện bằng cách trao đổi thông điệp giữa các ‘node’. Thông thường, các ‘node’ không biết nó đang giao tiếp với ai, nó chỉ xuất bản thông điệp lên một ‘topic’ chung. Để nhận thông điệp, một ‘node’ cần phải đăng ký một ‘topic’ cụ thể.
Một ‘topic’ có thể có nhiều ‘publisher’ và ‘subscriber’, cho phép truyền thông đa hướng. Mỗi khi một ‘node’ đăng ký một ‘topic’, nó sẽ chỉ nhận thông điệp từ ‘topic’ đó và bỏ qua các thông điệp từ những ‘topic’ khác không liên quan. Điều này giúp cho việc truyền thông trong hệ thống được tổ chức hiệu quả, vì mỗi ‘node’ chỉ xử lý thông tin liên quan đến nhiệm vụ của mình.5 Giao thức giao tiếp trong ROS BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 8 CHƯƠNG 2.4 Cấu trúc files trong ROS Trong cấu trúc tệp tin của ROS, việc tổ chức các thư mục phụ thuộc vào thiết kế hệ thống ROS và yêu cầu cụ thể của từng dự án. Các thư mục này là phần không thể thiếu của hệ thống tệp tin, giúp xử lý các tác vụ liên quan đến phát triển và quản lý ứng dụng.
Không gian làm việc trong ROS, hay còn gọi là ‘workspace’, đóng vai trò như một trung tâm quản lý và tổ chức các gói phần mềm ROS. Đây là nơi lưu trữ và sắp xếp các tệp tin của dự án, giúp người dùng có thể dễ dàng theo dõi và quản lý nhiều dự án ROS khác nhau. Trong giao diện người dùng (GUI), không gian làm việc được biểu diễn qua các thư mục và mã nguồn ROS do người dùng tự viết thường được đặt trong không gian làm việc này. Bốn thư mục chính trong không gian làm việc ROS: src: Thư mục chứa mã nguồn của các gói Catkin, nơi người dùng có thể tạo mới hoặc chỉnh sửa mã nguồn của các gói.
build: Thư mục chứa các thông tin bộ đệm và các tệp trung gian được sinh ra bởi Catkin và CMake trong quá trình biên dịch. devel: Thư mục chứa các tệp đối tượng (object files), các chương trình thực thi (executables) được tạo ra sau quá trình biên dịch, và các biến môi trường cần thiết để chạy các gói ROS. install: Thư mục này được tạo ra để chứa các tệp tin cài đặt cho hệ thống.6 Cấu trúc hệ thống(filesystem) trong ROS BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 9 CHƯƠNG 2.5 Giới thiệu các Package ROS sử dụng trong đề tài 2.1 Rosserial Để giao tiếp giữa máy tính và Arduino, ROS hỗ trợ gói roserial. Tín hiệu được truyền qua cổng USB và gói này cho phép cung cấp một giao thức truyền thông ROS hoạt động trên UART của Arduino.
Giao tiếp giữa ROS và Arduino giúp việc điều khiển các cảm biến, động cơ, và phần cứng được sử dụng trong đề tài một cách dễ dàng.7 Kết nối giữa máy tính và Arduino qua Rosserial 2.2 Giao tiếp máy tính và raspberry Pi 4 SSH là một giao thức mạng cho phép bạn đăng nhập vào một máy tính từ xa và thực hiện các lệnh từ xa một cách an toàn. Nó mã hóa toàn bộ phiên làm việc, bảo vệ dữ liệu truyền qua mạng khỏi bị đánh cắp hay giả mạo.