TÓM TẮT ĐỒ ÁN NGHIÊN CỨU, CHẾ TẠO ROBOT TỰ HÀNH PHỤC VỤ TRONG BỆNH VIỆN Trong thời đại công nghiệp hóa, hiện đại hóa bây giờ, với sự phát triển mạnh mẽ của công nghệ kỹ thuật,các thiết
TỔNG QUAN
Lý do chọn đề tài
Để theo kịp các cường quốc thế giới, Việt Nam cần tiếp cận và sở hữu những kiến thức khoa học - kỹ thuật tiên tiến trong giai đoạn công nghiệp hóa và hiện đại hóa Việc tiếp cận và nắm bắt những kiến thức này là điều kiện tiên quyết để đất nước phát triển và vươn lên mạnh mẽ trong thế kỷ XXI.
Kỹ thuật Robot đã và đang được ứng dụng rộng rải trong nhiều lĩnh vực Nó đem lại hiệu quả to lớn trong nông nghiệp, công nghiệp, quốc phòng, y tế, …… Hiện nay xuất hiện rất nhiều loại robot với nhiều công dụng, chức năng, hình dáng khác nhau để có thể ứng dụng vào nhiều môi trường làm việc khác nhau Trong số đó được sử dụng nhiều đó chính là Robot Automated Guided Vehicle (gọi tắt là AGV)
Robot AGV là dạng mobile robot tự di chuyển theo tín hiệu dẫn đường như theo line, từ trường, bản đồ, … Nó được ứng dụng nhiều trong công nghiệp, để thay thế con người làm những công việc nặng nhọc, nguy hiểm và lặp đi lặp lại nhiều lần để tăng năng suất sản xuất Ngoài ra, nó còn được ứng dụng vào y tế khi đại dịch COVID vẫn còn trong hiện tại, nó giúp tránh được tiếp xúc trực tiếp, giúp an toàn hơn cho cả bệnh nhân và bác sĩ
Nhận thấy những lợi ích mà Robot AGV mang lại, nhóm chúng em quyết định sẽ thực hiện đề tài “Nghiên cứu, chế tạo robot tự hành hoạt động phục vụ trong bệnh viện”.
Giới thiệu về Robot tự hành AGV
1.2.1 Tổng quát về Robot AGV - Automated Guided Vehicle:
Robot AGV (Automated Guided Vehicle) là một loại robot tự động được thiết kế để di chuyển và thực hiện các nhiệm vụ cụ thể trong một môi trường sản xuất hoặc nhà máy mà không cần sự can thiệp của con người Điều này giúp tăng cường hiệu suất, giảm chi phí và cải thiện an toàn trong quá trình sản xuất và vận chuyển hàng hóa
1.2.2 Tình hình nghiên cứu trong và ngoài nước:
Hiện nay, Việt Nam đã có những bước đi đáng kể trong lĩnh vực nghiên cứu và phát triển Robot tự hành AGV.Nhiều doanh nghiệp, nhà máy sản xuất công nghiệp và nhà kho thông minh đã bắt đầu tiếp cận và áp dụng xe tự hành vào quy trình sản xuất Vinamilk, Thaco Trường Hải và nhiều đơn vị khác đã là những cái tên tiên phong trong việc ứng dụng xe tự hành AGV vào nhà máy, mang lại hiệu quả to lớn
Hình 1.1 AGV được sử dụng rộng rãi ở nhà máy Vinamilk [14]
Dưới đây là sản phẩm của sinh viên Khoa Cơ khí Chế tạo máy trường Đại học Sư Phạm Kỹ Thuật thành phố Hồ Chí Minh nghiên cứu và chế tạo
Robot có tên là followbot, ứng dụng AI,thuật toán xử lí ảnh, xử lý 3D, giúp robot nhận diện được người, vùng nền và thuật toán điều khiển quỹ đạo chuyển động của robot Robot hoàn thiện với kích thước nhỏ gọn 506 x 466 x 680mm (dài x rộng x cao), khối lượng 18.5Kg, tốc độ hoạt động tối đa 0.7 m/s, tải trọng tối đa 15Kg, đặc biệt rất dễ sử dụng chỉ với thao tác một nút nhấn Robot cơ bản có thể bám theo người để chứa hàng hoá cho họ, nó chưa phân biệt được nhiều người
Trên toàn cầu, nghiên cứu và phát triển trong lĩnh vực robot tự hành AGV đang phát triển mạnh mẽ Các quốc gia tiên tiến công nghệ như Mỹ, Trung Quốc, Nhật Bản, Đức và Hàn Quốc đang dẫn đầu trong việc đầu tư và phát triển các công nghệ AGV tiên tiến Điển hình trong số đó là Kiva Robot – Robot vận chuển được nghiên cứu và sản xuất bởi Amazon Robotics (USA) Nó được lập trình để thực hiện nhiều tính năng quan trọng như nhận và thực hiện đơn hàng, hoàn thành nhiệm vụ và tự động tiếp tục công việc mới sau khi sạc pin xong Robot có trọng lượng khoảng 150 kg và có khả năng nâng kệ hàng lên đến 320 kg Tốc độ di chuyển tối đa của robot trong kho hàng là 1 m/s
Robot giao hàng Starship là một hệ thống giao hàng tự động của công ty Starship Technologies Với hình dáng nhỏ gọn và khả năng tự điều hướng, nó có thể di chuyển an toàn trên đường phố và vỉa hè Robot này được sử dụng để giao hàng trong các khu vực đô thị và trường đại học, mang lại sự tiện lợi và tốc độ cho quá trình giao hàng
Hình 1.4 Robot giao hành Starship [17]
Mục tiêu
- Tìm hiểu, nghiên cứu các tài liệu, kiến thức về Robot - Automated Guided Vehicle
- Thiết kế được cơ khí
- Tính toán các thông số kỹ thuật, lựa chọn động cơ phù hợp
- Tìm hiểu thuật toán điều khiển PID cho động cơ
- Sử dụng các thuật toán để robot vẽ được bản đồ và di chuyển trong môi trường chưa biết.
Đối tượng nghiên cứu
Đối tượng nghiên cứu của đề tài là robot phục vụ trong lĩnh vực bệnh viện Nhóm tập trung vào vấn đề giao hàng, nhu yếu phầm cho bệnh nhân, giúp họ dễ dàng hơn trong việc giao hàng mà không cần phải tiếp xúc.
Phạm vi nghiên cứu
- Robot tự hành trong điều kiện địa hình bằng phẳng, với các thông số sau:
- Khối lượng robot ước tính: 20 (kg)
- Khối lượng vận chuyển: tối đa 10 (kg)
- Vận tốc di chuyển tối đa: 0,5 (m/s).
Phương pháp nghiên cứu
Đề tài này đa dạng nên yêu cầu có một quy trình nghiên cứu cẩn thận và phương pháp hợp lý Nhóm đã tiến hành các phương pháp nghiên cứu sau:
➢ Tìm hiểu về AGV và công nghệ liên quan Tìm hiểu về các hệ thống AGV đã được phát triển trước đó và các ứng dụng của chúng
➢ Đặt mục tiêu nghiên cứu: Xác định mục tiêu cụ thể của đồ án tốt nghiệp
➢ Tìm hiểu và lựa chọn các công nghệ phù hợp: Tìm hiểu và so sánh các công nghệ, phương pháp có thể sử dụng xây dựng xe AGV (Các loại động cơ, hệ thống điều khiển, giao thức truyền thông, cảm biến và phần mềm điều khiển)
➢ Thiết kế: Sử dụng phần mềm Solidworks thiết kế mô hình của xe AGV
➢ Gia công chế tạo: Dựa trên mô hình tiến hành gia công và lắp ráp xe AGV thực tế
➢ Thực nghiệm và đánh giá: Tiến hành các thử nghiệm và đánh giá hiệu suất của xe AGV theo các tiêu chí như tốc độ, độ chính xác, khả năng định vị và tương tác với môi trường
➢ Phân tích kết quả và hướng phát triển tương lai: Đánh giá những kết quả đạt được
5 và phân tích các vấn đề và hạn chế trong quá trình nghiên cứu Đề xuất các cải tiến hoặc hướng phát triển tiếp theo cho xe AGV
➢ Tìm kiếm và đọc các công trình nghiên cứu liên quan, tham khảo sách, bài báo, hướng dẫn kỹ thuật và tài liệu kỹ thuật để nắm bắt kiến thức sâu hơn về đề tài
CƠ SỞ LÝ THUYẾT
Tổng quan robot AGV
Khái niệm xe tự hành AGV (Automated Guided Vehicle) là một khái niệm chung chỉ tất cả các hệ thống có khả năng vận chuyển mà không cần người lái Trong công nghiệp AGV được hiểu là các xe chuyên chở tự động được áp dụng trong các lĩnh vực:
- Cung cấp sắp xếp linh kiện tại khu vực kho và sản xuất
- Chuyển hàng giữa các trạm sản xuất
- Phân phối, cung ứng sản phẩm, đặc biệt trong bán buôn
- Cung cấp, sắp xếp trong các lĩnh vực đặc biệt như bệnh viện, siêu thị, văn phòng… Qua tất cả các ứng dụng trên, AGV thể hiện rất rõ hiệu quả của mình như: Giúp giảm thiệt hại trong kiểm kê, sắp xếp sản xuất linh hoạt hơn, giảm thiểu nguồn nhân lực v.v… AGV còn giúp giảm chi phí chế tạo, tăng hiệu quả sản xuất Chúng có thể được chế tạo để chuyển hàng, kéo hàng, nâng hàng cấp phát cho một số vị trí làm việc nhất định
Hình 2.1 Xe AGV trong công nghiệp
2.1.2 Lịch sử phát triển của AGV
Hệ thống xe dẫn hướng tự động (AGVS) đã tồn tại từ năm 1953 bởi Barrett Electronics
Xe dẫn hướng tự động (AGV) xuất phát từ một phát minh của Savant Automation, một nhà sáng chế tại Walker, Michigan, Hoa Kỳ Hệ thống định hướng đầu tiên sử dụng cảm biến từ trường để theo dõi đường dẫn Sau những năm 1970, AGV được cải tiến về khả năng và tính linh hoạt, được sử dụng không chỉ để kéo rơ moóc trong kho mà còn trong sản xuất, vận hành và lắp ráp ô tô.
Qua nhiều năm, khi công nghệ trở nên tinh vi hơn, thì ngày nay các AGV chủ yếu được định vị bởi hệ thống Lazer LGV (Lazer Guided Vehicle) Trong quá trình tự hành, LGV được lập trình để giao tiếp với các robot khác nhằm đảm bảo sản phẩm được chuyển qua các trạm, kho nơi mà sau đó chúng được giữa lại hoặc chuyển đến một vị trí khác Ngày nay, LGV đóng vai trò quan trọng trong thiết kế các nhà máy và nhà kho, đưa hàng hóa đến đúng địa điểm một cách an toàn
Phân loại theo chức năng
Xe kéo vẫn là phương tiện phổ biến từ khi ra mắt đến nay Chúng có khả năng kéo các toa chở hàng với trọng tải từ 8.000 đến 60.000 pound.
Hình 2.4 AGV kéo Ưu điểm của hệ thống xe kéo:
- Khả năng chuyên chở lớn
- Có thể dự đoán và lên kế hoạch về tính hiệu quả của việc chuyên chở cũng như đảm bảo an toàn
Xe chở (Unit Load Vehicle)
Xe chở được trang bị các tầng khay chứa có thể là các nâng, hạ chuyền động bằng băng tải, đai hoặc xích
Loại này có ưu điểm :
- Tải trọng được phân phối và di chuyển theo yêu cầu
- Thời gian đáp ứng nhanh gọn
- Giảm hư hại tài sản
- Giảm thiểu các tắc nghẽn giao thông chuyên chở
- Lập kế hoạch hiệu quả
Xe đẩy được cho là có tính linh hoạt cao và rẻ tiền Chúng được sử dụng để chuyên chở vật liệu và các hệ thống lắp ráp
Có khả năng nâng các tải trọng đặt trên sàn hoặc trên các bục cao hay các khối hàng đặt trên giá
Phân loại theo dạng đường đi
Loại chạy không chạy theo đường dẫn (Free path navigation)
Xe AGV tự định hướng (AGV tự hành) được thiết kế để có khả năng di chuyển linh hoạt đến bất kỳ vị trí nào trong khu vực hoạt động của chúng Những chiếc xe này được trang bị các cảm biến con quay hồi chuyển để xác định hướng di chuyển, cảm biến laser để xác định các vật thể xung quanh và hệ thống định vị cục bộ để xác định tọa độ tức thời Do sự phức tạp của công nghệ này, việc thiết kế và chế tạo xe AGV tự định hướng đòi hỏi trình độ công nghệ cao hơn so với các loại xe AGV khác.
Loại chạy theo đường dẫn (Fixed path navigation)
Xe AGV thuộc loại này được thiết kế chạy theo các đường dẫn định sẵn gồm các loại đường dẫn như sau:
- Đường dẫn từ: Là loại đường dẫn có cấu tạo là dây từ (Magnetic wire) chôn ngầm dưới nền sàn Khi di chuyển, nhờ có các cảm biến cảm ứng từ mà xe có thể di chuyển
10 theo đường dây dẫn Loại đường dẫn này không nằm bên trên mặt sàn nên có mỹ quan tốt, không ảnh hưởng đến các công việc vận hành khác Tuy nhiên khi sử dụng phải tiêu tốn năng lượng cho việc tạo từ tính trong dây, đồng thời đường dẫn là cố định và không thể thay đổi được
- Đường ray dẫn: Xe AGV được chạy trên các ray định trước trên mặt sàn Loại này chỉ sử dụng đối với những hệ thống chuyên dụng Nó cho phép thiết kế xe đơn giản hơn và có thể di chuyển với tốc độ cao nhưng tính linh hoạt thấp
AGV di chuyển theo các đường băng kẻ sẵn nhờ cảm biến nhận dạng vạch kẻ, cho phép linh hoạt thay đổi đường đi Tuy nhiên, vạch dẫn có thể bị hư hại hoặc bẩn, ảnh hưởng đến độ chính xác trong điều khiển AGV.
Tổng quan về ROS
ROS (Robot Operating System) là một hệ thống mã nguồn mở để phát triển robot Nó cung cấp các dịch vụ mà bạn mong đợi từ một hệ điều hành bao gồm trừu tượng hóa phần cứng, kiểm soát các thiết bị cấp thấp, triển khai chức năng thường được sử dụng, chuyển thông báo giữa các quy trình và quản lý gói Nó cũng cung cấp các công cụ và thư viện để lấy, xây dựng, viết và chạy mã trên nhiều máy tính
Hình 2.7 Ứng dụng của ROS
ROS (Robot Operating System) bắt đầu phát triển từ năm 2007 bởi một nhóm nghiên cứu tại Stanford AI Robot (STAIR) dưới sự hỗ trợ của Stanford Artificial Intelligence Laboratory Ban đầu, ROS được tạo ra nhằm mục đích hỗ trợ việc nghiên cứu và phát triển robot di động ở môi trường nghiên cứu
Sau đó, vào năm 2008, Willow Garage, một công ty nghiên cứu robot đổi mới, đã tiếp quản việc phát triển ROS và đóng góp lớn vào việc xây dựng nền tảng mạnh mẽ và phát triển cộng đồng ROS Willow Garage đã công bố ROS như một mã nguồn mở vào tháng
11 năm 2010, cho phép các nhà phát triển trên toàn cầu tham gia đóng góp và sử dụng ROS một cách tự do
Từ đó, ROS đã trở thành một công cụ phổ biến và mạnh mẽ trong lĩnh vực robot và hệ thống tự động hóa Nó đã thu hút sự quan tâm của các nhà nghiên cứu, doanh nghiệp và cộng đồng phát triển phần mềm Các phiên bản của ROS được phát hành liên tục, với các phiên bản chính như: ROS Electric (2011), ROS Fuerte (2012), ROS Groovy (2012), ROS Hydro (2013), ROS Indigo (2014), ROS Jade (2015), ROS Kinetic (2016), ROS Melodic (2018) và ROS Noetic (2020)
Năm 2013, Willow Garage ngừng phát triển và chuyển giao ROS cho Quỹ Phần mềm Nguồn mở Robot (OSRF) quản lý OSRF tiếp tục cải tiến ROS và duy trì cộng đồng ROS Trong quá trình phát triển, ROS đã trở thành tiêu chuẩn công nghệ được sử dụng rộng rãi trong nhiều lĩnh vực và ứng dụng robot.
ROS đang tiếp tục phát triển và đóng góp cho cộng đồng nguồn mở Nhờ sự hỗ trợ và đóng góp của cộng đồng, ROS đã trở thành một hệ sinh thái phần mềm mạnh mẽ, cung cấp các công cụ và thư viện để phát triển, kiểm thử và triển khai các ứng dụng robot phức tạp.
2.2.3 Các khái niệm cơ bản trong ROS:
Node trong ROS là một tiến trình độc lập, đảm nhiệm một chức năng cụ thể Mỗi node có thể được viết bằng nhiều ngôn ngữ lập trình như C++, Python, Java Sự giao tiếp giữa các node được thực hiện thông qua ROS Master.
ROS Master: ROS Master là một quy trình quản lý dịch vụ cho phép các node tìm kiếm, đăng ký, và giao tiếp với nhau Nó giữ thông tin về các node, topic, service và parameter trong hệ thống
Topic: Topic là một cổng giao tiếp thông qua đó các node có thể gửi và nhận dữ liệu
Các node có thể đăng ký (subscribe) để nhận thông tin từ một topic hoặc gửi (publish) thông tin lên một topic
Package: Package là cách tổ chức và quản lý mã nguồn và tài nguyên của một ứng dụng ROS Mỗi package chứa các file cấu hình, mã nguồn, tài liệu và các tài nguyên cần thiết
Launch File: Tập tin XML mô tả cách các node và các thông số khác được khởi chạy và cấu hình
Roscore là thành phần thiết yếu của ROS, đóng vai trò làm máy chủ trung tâm quản lý tương tác giữa các nút và tài nguyên hệ thống Nó cung cấp các dịch vụ cốt lõi bao gồm quản lý không gian tên, quản lý tin nhắn, quản lý chủ đề và dịch vụ, cũng như quản lý tài nguyên mạng Roscore đảm bảo sự thống nhất và đồng bộ trong giao tiếp giữa các nút, là yếu tố không thể thiếu trong hệ sinh thái ROS.
Hình 2.8 Sơ đồ khối của ROS
Robot di động: ROS được sử dụng rộng rãi để điều khiển và điều hướng robot di động
Nó cung cấp các giao diện chuẩn cho việc thu thập dữ liệu từ cảm biến như lidar, camera và bộ cảm biến khác, cũng như điều khiển các bộ điều khiển động cơ và hệ thống định vị ROS cung cấp các thư viện, gói phần mềm và công cụ để phát triển các ứng dụng điều khiển robot di động, từ các robot nhỏ như robot di động tự hành trong nhà đến các robot di động lớn trong môi trường công nghiệp hay nông nghiệp
Xử lý hình ảnh và nhận diện đối tượng: ROS cung cấp các công cụ và thư viện mạnh mẽ để xử lý hình ảnh và nhận diện đối tượng Các node ROS có thể sử dụng các thư viện như OpenCV và TensorFlow để xử lý hình ảnh, phân tích dữ liệu từ camera và thực hiện các tác vụ như nhận diện khuôn mặt, phát hiện đối tượng và theo dõi vật thể Điều này rất hữu ích trong các ứng dụng như robot thị giác, xe tự hành, hay các hệ thống giám sát và an ninh
Robot công nghiệp: ROS được sử dụng trong lĩnh vực robot công nghiệp để điều khiển và quản lý các robot trong môi trường sản xuất Nó cung cấp giao diện tiêu chuẩn cho việc tương tác với các bộ điều khiển công nghiệp, thiết bị nâng hạ và các cơ cấu robot ROS cũng hỗ trợ tích hợp với các hệ thống điều khiển robot công nghiệp phổ biến như ROS-Industrial và ROS-Control, giúp tạo ra các giải pháp tự động hóa linh hoạt và mở rộng cho ngành công nghiệp
Tổng quát về SLAM
SLAM (Simultaneous localization and mapping) là một phương pháp lập bản đồ công nghệ cho phép robot và các phương tiện tự hành xây dựng bản đồ và định hướng chính xác trong bản đồ trên thời gian thực
2.3.2 Các gói Package trong SLAM:
Các gói Package trong SLAM cung cấp nhiều công cụ và thư viện để triển khai các thuật toán SLAM khác nhau Gmapping cung cấp thuật toán bản đồ lưới, Cartographer tập trung vào việc tạo bản đồ và cung cấp vị trí, RTAB-MAP hỗ trợ SLAM thời gian thực.
Gmapping sử dụng thuật toán Rao-Blackwellized Particle Filter (RBPF) để ước lượng vị trí và xây dựng bản đồ
Gmapping hoạt động bằng cách lấy dữ liệu từ cảm biến laser và sử dụng nó để phát hiện và phân tích các vật thể trong môi trường Các vật thể này được sử dụng để ước lượng vị trí của robot và xây dựng bản đồ Thuật toán RBPF trong Gmapping sử dụng một tập hợp các particle (hạt) để đại diện cho các giả định về vị trí và bản đồ Các particle này được cập nhật dựa trên dữ liệu từ cảm biến laser và thông tin động của robot để tìm ra vị trí và bản đồ tốt nhất phù hợp với dữ liệu thu thập được
Gmapping cung cấp các tính năng như xây dựng bản đồ trong thời gian thực, ước lượng vị trí robot, cung cấp thông tin chi tiết về bản đồ (như xác suất xác định của các ô trong bản đồ), và hỗ trợ tính năng lọc nhiễu và loại bỏ dữ liệu không chính xác
Slam có rất nhiều ứng dụng trong lĩnh vực robot với nhiều lợi ích Đối với robot tự hành, SLAM được sử dụng rộng rãi để ước lượng vị trí của robot, xây dựng bản đồ xung quanh Điều này giúp robot tự hành di chuyển trong môi trường ko biết trước và thực hiện các nhiệm vụ được giao.
Tổng quan về Navigation
Navigation là quá trình xác định và thực hiện các hoạt động để di chuyển từ một vị trí đến vị trí khác trong không gian Trong lĩnh vực robot navigation liên quan đến khả năng của một robot để điều hướng và di chuyển trong môi trường một cách an toàn và hiệu quả
Hình 2.10 Các thành phần của Navigation stack
Các thành phần chính trong hệ thống navigation của một robot bao gồm: Định vị (Localization): Định vị là quá trình xác định vị trí của robot hoặc hệ thống tự động trong không gian Điều này có thể được thực hiện bằng cách sử dụng các cảm biến như GPS, cảm biến hình ảnh, cảm biến laser, hoặc thông qua phương pháp xử lý dữ liệu để ước lượng vị trí dựa trên thông tin môi trường
Bản đồ (Mapping): Bản đồ là biểu diễn không gian xung quanh robot hoặc hệ thống tự động Nó có thể là bản đồ 2D hoặc 3D và được tạo ra thông qua quá trình xây dựng bản đồ từ dữ liệu cảm biến như cảm biến laser, cảm biến hình ảnh hoặc thông qua phương pháp SLAM (Simultaneous Localization and Mapping)
Lập kế hoạch đường đi (Path Planning): Lập kế hoạch đường đi là quá trình xác định tuyến đường di chuyển từ vị trí hiện tại đến vị trí đích Điều này bao gồm lựa chọn các đường đi tối ưu dựa trên các ràng buộc như tránh vật cản, tối thiểu hóa thời gian di chuyển hoặc tối thiểu hóa sự tiêu tốn năng lượng Điều khiển chuyển động (Motion Control): Điều khiển chuyển động là quá trình điều khiển các hành vi di chuyển của robot hoặc hệ thống tự động dựa trên kế hoạch đường đi Nó bao gồm việc điều chỉnh tốc độ, hướng, độ quay của robot để tiếp tục di chuyển theo đúng đường đi đã được lập kế hoạch
Tránh vật cản là công nghệ giúp robot nhận biết và tránh các chướng ngại vật trong quá trình chuyển động Hệ thống cảm biến và thuật toán được sử dụng để phát hiện chướng ngại vật, sau đó robot đưa ra những hành động như tránh né hoặc điều chỉnh đường đi để ngăn ngừa va chạm.
Trong lĩnh vực AGV, hệ thống điều hướng đóng vai trò quan trọng trong việc điều khiển và điều chỉnh hoạt động của các xe tải tự động Bằng cách sử dụng công nghệ định vị và tính toán tuyến đường, hệ thống có khả năng xác định đường đi tối ưu, tránh vật cản và tối ưu hóa tốc độ di chuyển Điều này giúp tăng hiệu suất và đảm bảo an toàn trong quá trình vận chuyển hàng hóa Hệ thống điều hướng AGV là một phần không thể thiếu trong việc tự động hóa quy trình vận chuyển và quản lý kho lưu trữ, đóng góp vào sự tăng cường hiệu suất và giảm chi phí trong các ngành công nghiệp.
PID
PID là viết tắt của Proportional-Integral-Derivative, là một phương pháp điều khiển phản hồi trong hệ thống điều khiển tự động Nó là một trong những thuật toán điều khiển phổ biến nhất và được sử dụng rộng rãi trong các ứng dụng công nghiệp và điện tử
• Khâu tỉ lệ (đôi khi còn được gọi là độ lợi) làm thay đổi giá trị đầu ra, tỉ lệ với giá trị sai số hiện tại Đáp ứng tỉ lệ có thể được điều chỉnh bằng cách nhân sai số đó với một hằng số Kp, được gọi là hệ số tỉ lệ
Khâu tỉ lệ được cho bởi:
Pout: Thừa số tỉ lệ đầu ra
KP: Hệ số tỉ lệ, thông số điều chỉnh e : sai số = SP-PV t : thời gian hay thời gian tức thời
Hệ số của khâu tỉ lệ lớn là do thay đổi lớn ở đầu ra mà sai số thay đổi nhỏ Nếu hệ số của khâu tỉ lệ quá cao, hệ thống sẽ không ổn định Ngược lại, hệ số nhỏ là do đáp ứng đầu ra nhỏ trong khi sai số đầu vào lớn, và làm cho bộ điều khiển kém nhạy, hoặc đáp ứng chậm Nếu Hệ số của khâu tỉ lệ quá thấp, tác động điều khiển có thể sẽ quá bé khi đáp ứng với các nhiễu của hệ thống
Hình 2.12 Đồ thị PV theo thời gian, ba giá trị K p (K i và K d là hằng số) [7]
Phân phối của khâu tích phân (đôi khi còn gọi là reset) tỉ lệ thuận với cả biên độ sai số lẫn quãng thời gian xảy ra sai số Tổng sai số tức thời theo thời gian (tích phân sai số) cho ta tích lũy bù đã được hiệu chỉnh trước đó Tích lũy sai số sau đó được nhân với độ lợi tích phân và cộng với tín hiệu đầu ra của bộ điều khiển Biên độ phân phối của khâu tích phân trên tất cả tác động điều chỉnh được xác định bởi độ lợi tích phân, KI
Thừa số tích phân được cho bởi:
Iout : thừa số tích phân của đầu ra
Ki : độ lợi tích phân, 1 thông số điều chỉnh e : sai số = SP-PV t : thời gian hay thời gian tức thời τ: một biến tích phân trung gian
Khâu tích phân (khi cộng thêm khâu tỉ lệ) sẽ tăng tốc chuyển động của quá trình tới điểm đặt và khử số dư sai số ổn định với một tỉ lệ chỉ phụ thuộc vào bộ điều khiển Tuy nhiên, vì khâu tích phân là đáp ứng của sai số tích lũy trong quá khứ, nó có thể khiến giá trị hiện tại vọt lố qua giá trị đặt (ngang qua điểm đặt và tạo ra một độ lệch với các hướng khác)
Hình 2.13 Đồ thị PV theo thời gian, tương ứng với 3 giá trị Ki (Kp và Kd không đổi) [7]
Tốc độ thay đổi của sai số quá trình được tính toán bằng cách xác định độ dốc của sai số theo thời gian (tức là đạo hàm bậc một theo thời gian) và nhân tốc độ này với độ lợi tỉ lệ
Kd Biên độ của phân phối khâu vi phân (đôi khi được gọi là tốc độ) trên tất cả các hành vi điều khiển được giới hạn bởi độ lợi vi phân, Kd
Thừa số vi phân được cho bởi:
Dout : thừa số vi phân của đầu ra
Kd : Độ lợi vi phân, một thông số điều chỉnh e : sai số = SP-PV t : thời gian hay thời gian tức thời
Hình 2.14 Đồ thị PV theo thời gian, với 3 giá trị Kd (Kp and Ki không đổi) [7]
2.5.2 Các phương pháp điều chỉnh PID:
Để duy trì trạng thái trực tuyến, giá trị ban đầu của Ki và Kd được thiết lập bằng không Tăng dần Kp đến khi đầu ra của vòng điều khiển dao động, sau đó đặt Kp xấp xỉ một nửa giá trị đó để đạt được đáp ứng "1/4 giá trị suy giảm biên độ" Sau đó, tăng Ki phù hợp để xử lý kịp thời Tuy nhiên, Ki quá lớn sẽ gây mất ổn định Nếu cần, hãy tăng Kd để vòng điều khiển nhanh chóng lấy lại giá trị đặt sau nhiễu Tuy nhiên, Kd quá lớn sẽ gây ra đáp ứng dư và vọt lố Điều chỉnh nhanh vòng điều khiển PID thường gây ra một chút vọt lố khi tiến tới điểm đặt nhanh chóng; tuy nhiên, một số hệ thống không chấp nhận vọt lố.
Thông số Thời gian khởi động
Quá độ Thời gian xác lập
Sai số ổn định Độ ổn định
Kp Giảm Tăng Thay đổi nhỏ
Ki Giảm Tăng Tăng Giảm đáng kế Giảm cấp
Kd Giảm ít Giảm ít Giảm ít Về lý thuyết không tác động
Cải thiện nếu Kd nhỏ
Bảng 2.1 Tác động của thông số PID [7]
Một phương pháp điều chỉnh theo kinh nghiệm khác là phương pháp Ziegler–Nichols, được đưa ra bởi John G Ziegler và Nathaniel B Nichols vào những năm 1940 Giống phương pháp trên, độ lợi KI và Kd lúc đầu được gán bằng không Độ lợi P được tăng cho đến khi nó tiến tới độ lợi tới hạn, Ku ở đầu ra của vòng điều khiển bắt đầu dao động
Ku và thời gian dao động Pu được dùng để gán độ lợi như sau:
Dạng điều khiển Kp Ki Kd
PID 0,6Ku 2Kp/Pu KpPu/8
Bảng 2.2 Công thức tính thông số các bộ điều khiển [7]
Hầu hết các ứng dụng công nghiệp hiện đại không còn điều chỉnh vòng điều khiển sử dụng các phương pháp tính toán thủ công như trên nữa Thay vào đó, phần mềm điều chỉnh PID và tối ưu hóa vòng lặp được dùng để đảm báo kết quả chắc chắn Những gói phần mềm này sẽ tập hợp dữ liệu, phát triển các mô hình xử lý, và đề xuất phương pháp điều chỉnh tối ưu Vài gói phần mềm thậm chí còn có thể phát triển việc điều chỉnh bằng cách thu thập dữ liệu từ các thay đổi tham khảo Điều chỉnh PID bằng toán học tạo ra một xung trong hệ thống, và sau đó sử dụng đáp ứng tần số của hệ thống điều khiển để thiết kế các giá trị của vòng điều khiển PID Trong những vòng lặp có thời gian đáp ứng kéo dài nhiều phút, nên chọn điều chỉnh bằng toán
21 học, bởi vì việc thử sai thực tế có thể kéo dài nhiều ngày để tìm điểm ổn định cho vòng lặp Giá trị tối ưu thì khó tìm hơn Vài bộ điều khiển số còn có chức năng tự điều chỉnh, trong đó những thay đổi rất nhỏ của điểm đặt cũng được gửi tới quá trình, cho phép bộ điều khiển tự mình tính toán giá trị điều chỉnh tối ưu
Các dạng điều chỉnh khác cũng được dùng tùy theo tiêu chuẩn đánh giá kết quả khác nhau Nhiều phát minh hiện nay đã được nhúng sẵn vào trong các module phần mềm và phần cứng để điều chỉnh PID.
Tìm hiểu về Rosserial
Rosserial là một gói chứa các ROS message, ROS topic được chuyển đổi thành dạng dữ liệu có thể được sử dụng trong giao tiếp nối tiếp Nói một cách đơn giản nhất, rosserial là cầu nối cho phép phần cứng điện tử mới giao tiếp trực tiếp với hệ thống ROS
Nhu cầu chuyển đổi tin nhắn là do vi điều khiển sử dụng giao tiếp nối tiếp thông thường thông qua UART thay vì TCP/IP vốn là giao tiếp mặc định trong ROS Do đó, rosserial phải chịu trách nhiệm diễn giải mọi dữ liệu được gửi từ vi điều khiển (rosserial- client) đến máy tính (rosserial-server) bằng ROS để làm cho chúng hiểu nhau
Hình 2.15 Rosserial giữa Client và Server
Một hệ thống ROS hoàn chỉnh là sự kết hợp của hai thành phần bao gồm:
- Rosserial_client Package: Danh sách có vi xử lý có sẵn giao tiếp ROS như Arduino, STM32, …
- Rosserial_server Package: Nó đóng vai trò quan trong như một trình thông dịch như ngôn ngữ C++, Python,…
Hình 2.16 Giao tiếp rosserial giữa client và server trong hệ thống
THIẾT KẾ HỆ THỐNG CƠ KHÍ
Phương án thiết kế cơ khí
3.1.1 Lựa chọn cơ cấu chuyển động: Để có phương án di chuyển phù hợp, ta cần phân tích các dạng cơ cấu lái thường được sử dụng cho robot trong nhà xưởng như sau:
• Cơ cấu lái vi sai (differential drive)
Hệ thống lái sử dụng hai bánh sau chủ động để đạt tốc độ và góc quay mong muốn Xe được trang bị bánh xe tự lựa để duy trì cân bằng.
- Đơn giản về cơ khí và dễ dàng áp dụng
- Không cần cơ cấu bẻ lái
- Bán kính quay xe bằng không
- Điều khiển đồng thời vận tốc và hướng của xe bằng hai động cơ
- Khó điều khiển chạy thẳng do hai động cơ độc lập
- Dễ lật đối với xe chỉ có một bánh tự lựa trên địa hình gồ ghề x
Hình 3.1.Cơ cấu vi sai
• Cơ cấu lái xe ba bánh (tricycle)
Cơ cấu này sử dụng một động cơ dẫn động cho hai bánh sau (có bộ vi sai) và một động cơ lái bánh trước hoặc bánh trước vừa dẫn động vừa lái
- Điều khiển dẫn động và bẻ lái độc lập
- Cơ cấu lái đơn giản (nếu bánh dẫn động phía sau)
- Di chuyển qua đoạn đường cong ổn định
- Dẫn động bánh sau cần có bộ vi sai (nếu không có sẽ bị trượt bánh lái)
- Dễ lật trên địa hình gồ ghề
• Cơ cấu lái đồng bộ (Synchronous drive, swerve drive)
Tất cả các bánh xe đều gắn động cơ dẫn động và bẻ lái
Hình 3.2.Cơ cấu lái xe 3 bánh
Hình 3.3.Cơ cấu lái đồng bộ
- Bán kính quay xe bằng không
- Di chuyển tốt trên địa hình gồ ghề (đối với xe bốn bánh trở lên)
- Di chuyển về mọi hướng mà không cần quay xe
- Hệ thống cơ khí phức tạp vì mỗi bánh phải có động cơ dẫn động và bẻ lái
- Điều khiển phức tạp do có nhiều động cơ
Mô hình robot cần một cơ cấu lái đơn giản, linh hoạt khi xoay trở trong kho hàng, do vậy bán kính góc quay xe bằng không là ưu điểm rất lớn Điều kiện di chuyển trong nhà xưởng là bằng phẳng, do đó phương án cơ cấu lái vi sai là phù hợp cho mô hình robot Chọn cơ cấu lái vi sai đơn giản gồm hai bánh dẫn động phía sau và một bánh tự lựa phía trước.
Lựa chọn bộ truyền
Bộ truyền đai gồm bánh dẫn lắp trên trục động cơ, bánh bị dẫn lắp trên tải
Momen truyền đi nhờ vào lực ma sát sinh ra giữa dây đai và các bánh đai
Hình 3.4 AGV cơ câu đồng bộ
- Không gây ồn ào, làm việc êm
- Khi động cơ bị quá tải sẽ không gây thiệt hại do sự trượt của đai
- Có thể truyền động giữa các trục cách xa nhau
- Tỷ số truyển khi làm việc thay đổi do đai bị trượt
- Kích thước bộ truyền, cơ cấu căng đai lớn, cồng kềnh
Bộ truyền đai răng có cơ cấu tương tự bộ truyền đai nhưng momen truyền đi nhờ ăn khớp giữa dây đai và các bánh đai
Hình 3.6 Bộ truyền đai răng
- Kích thước bánh đai nhỏ
- Không có hiện tượng trượt giữa đai và bánh đai
- Kích thước bộ truyền, cơ cấu căng đai lớn, cồng kềnh
Bộ truyền xích bao gồm xích và các đĩa xích dẫn, bị dẫn Xích truyền chuyển động và tải trọng từ trục dẫn động sang trục bị dẫn nhờ vào sự ăn khớp giữa các mắt xích với răng của đĩa xích
- Không có hiện tượng trượt
- Lực tác dụng lên trục nhỏ hơn bộ truyền đai
- Có thể truyền động giữa các trục cách xa nhau
- Kích thước bộ truyền lớn, cồng kềnh, tốc độ chậm
- Gây ra tiếng ồn, không thích hợp khi làm việc ở vận tốc cao
- Dễ bị ăn mòn, biến dạng xích, phải thường xuyên thay thế
Bộ truyền bánh răng truyền chuyển động và momen nhờ sự ăn khớp giữa các bánh răng Trục dẫn động và bị dẫn của bộ truyền có thể song song, giao nhau, chéo nhau hoặc biến chuyển động quay thành chuyển động tịnh tiến
Hình 3.7 Bộ truyền đai xích
- Kích thước bộ truyền nhỏ, khả năng tải lớn
- Tỷ số truyền không đổi, hiệu suất cao
- Vận tốc làm việc và tỉ số truyền lớn nhờ lắp nhiều bánh răng ăn khớp
- Tuổi thọ và độ bền cao
- Chế tạo tương đối phức tạp, đòi hỏi độ chính xác cao
- Khi làm việc ở vận tốc lớn gây ra tiếng ồn Đối với đề tài này, nhóm em quyết định chon bộ truyền đai răng.
Lựa chọn động cơ
Robot tự hành di động nên thông thường sử dụng động cơ dùng dòng điện DC Một số loại động cơ dùng dòng điện DC như: động cơ bước, động cơ DC, động cơ DC servo Robot tự hành cần điều khiển vận tốc nên động cơ DC phải có hồi tiếp vận tốc (mặc dù một số động cơ DC điều khiển được chính xác vận tốc, không cần hồi tiếp nhưng giá sẽ rất cao) Do đó chọn động cơ bước hoặc động cơ DC servo là phương án khả thi Sau đây là những phân tích về ưu, nhược điểm của hai loại động cơ này, từ đó có thể xác định được loại động cơ cần dùng để phù hợp với yêu cầu đặt ra
3.3.2 Động cơ bước Động cơ bước thông thường là loại động cơ điều khiển vòng hở, biến đổi các xung điện rời rạc kế tiếp nhau thành chuyển động quay của rotor Giá trị góc quay phụ thuộc và số xung điện cấp vào động cơ Mỗi vòng quay có số bước cố định, thay đổi tốc độ quay bằng cách thay đổi tốc độ tín hiệu điện cấp cho động cơ
Hình 3.8.Bộ truyền bánh răng
- Không cần hồi tiếp tín hiệu
- Điều khiển chính xác, không có vọt lố và có momen giữ tại một vị trí
- Dễ bị trượt bước khi mang tải lớn
- Tốc độ của động cơ không cao, tối đa từ 1000 ÷ 2000 (rpm)
3.3.3 Động cơ DC servo Động cơ DC servo là động cơ DC có thêm bộ phận đo thông số đầu ra của động cơ thông thường là góc quay, vận tốc quay Từ các sai số góc quay, vận tốc quay thì bộ điều khiển sẽ tăng hay giảm dòng cấp cho động cơ để đạt góc quay, vận tốc mong muốn
Hình 3.10 Động cơ DC servo
- Momen khởi động và vận tốc lớn
- Động cơ chạy êm khi đạt vận tốc cố định
- Có tín hiệu hồi tiếp nên có thể điều khiển được góc quay và vận tốc
- Khi dừng lại, tùy theo chất lượng của bộ điều khiển ảnh hưởng đến đáp ứng nên có thể gây dao động, rung lắc
- Tín hiệu hồi tiếp có thể bị nhiễu
Dưới đây là bảng tổng kết các đặc điểm của hai loại động cơ đã được phân tích Đặc điểm
Loại động cơ Điều khiển góc quay, vận tốc Tốc độ tối đa Hồi tiếp Động cơ bước Có Thấp Không Động cơ DC servo Có Cao Có
Bảng 3.1 So sánh động cơ bước và động cơ DC servo
Dựa vào phân tích và điều kiện hoạt động của robot, động cơ DC servo sẽ là phương án được lựa chọn để thiết kế robot.
Lựa chọn phương án bộ điều khiển
Có hai phương án điều khiển có thể sử dụng cho robot đó là:
- Sử dụng PLC: Bộ điều khiển PLC được sử dụng nhiều trong công nghiệp bởi độ bền và tính tin cậy cao Các thành phần trong hệ thống PLC đã được chuẩn hóa và dễ dàng tìm mua trên thị trường Tuy vậy, hệ thống điều khiển dùng PLC có kích thước khá lớn và giá thành cao
- Sử dụng vi điều khiển: Phương án này rất phổ biến cho cách dạng robot di chuyển Ưu điểm là kích thước nhỏ gọn, giá thành rẻ Tuy nhiên chỉ sử dụng được cho những hệ thống vừa và nhỏ, thời gian hoạt động không dài
Hình 3.11.Bộ điều khiển PLC
Khi hoạt động thực tế cần sử dụng bộ điều khiển có độ tin cậy cao là PLC Tuy nhiên, phương án lựa chọn là vi điều khiển giúp tiết kiệm chi phí đối với những mô hình thử nghiệm
Chương này đã hoàn thành việc phân tích và lựa chọn phương án cơ cấu cơ khí cũng như phương án điện – điện tử cho robot
THIẾT KẾ HỆ THỐNG
Thiết kế robot
Dựa vào các phương án đã chon ở chương 3, ta có mô hình cơ khí như sau:
Hình 4.1.Mô hình cơ khí
1 Bánh xe dẫn động 4 Khung robot
2 Cơ cấu truyền động 5 Động cơ DC encoder
3 Bánh xe đa hướng 6 Trục dẫn động
Hình 4.2.Mô hình cơ khí thực tế
Phân tích mô hình động học của robot
Để tính toán mô hình động học của robot: Ta chọn hệ trục tuyệt đối là Oxy Khi không tồn tại hiện tượng trượt bánh xe, ta có vận tốc dài v và vận tốc góc ω lần lượt được tính:
Hình 4.3.Hệ trục động học
- Vl,Vr là vận tốc dài tức thời bánh trái và bánh phải
- R là bán kính của bánh xe (m)
- V là vận tốc tuyến tính của robot
- G là trung điểm của tâm 2 bánh xe
- L là khoảng cách giữa 2 bánh chủ động
Khi không tồn tại hiện tượng trượt bánh xe, ta có vận tốc dài v và vận tốc góc ω lần lượt được tính theo công thức:
Trong đó 𝑣 𝑟 , 𝑣 𝑙 lần lượt là vận tốc tức thời của bánh trái và bánh phải.
Tính toán chọn công suất động cơ
Ta có các thông số cho trước:
- Khối lượng ước tính là m kg (Robot) + 10 kg (tải)
- Tốc độ tối đa là 0.5 (m/s)
- Bánh xe có đường kính: 2r = 100 (mm)
- Hệ số ma sát chọn 𝜇 = 0,01 chọn theo bảng tham khảo bên dưới:
Bảng 4.1.: Hệ số ma sát lăn
Hình 4.4 Mô hình chuyển động
Chọn chuyển động của robot là chuyển động thẳng Hai bánh dẫn động di chuyển cùng với vận tốc v=0.5 m/s Tác có tốc độ quay của bánh xe là:
𝜂 𝑑 = 0.95 : Hiệu suất bộ truyền đai
TH1: Khi robot chuyển động đều:
Ta có: Phương trình cân bằng lực
TH2: Khi robot chuyển động dần đều:
Momen xoắn để xe trăng tốc là: T = Fw.r = 17.94 0,05 = 0,897 (Nm)
Ta có vận tốc gốc: 𝜔 = 2𝜋𝑓 = 2𝜋 𝑁
0,93 = 9.646 (𝑊) Vậy ta chọn động cơ có P > 9.6466 (W), tốc độ vòng quay 𝑛 = 95,5 (𝑟𝑝𝑚)
Từ kết quả trên, nhóm quyết định chọn động cơ JGB37-545 DC servo có công suất là 60(W), tốc độ không tải là 208RPM
- Tỉ số truyền 168:1 (động cơ quay 168 vòng trục chính hộp giảm tốc quay 1 vòng)
- Dòng chịu đựng tối đa khi có tải: 5A
- Tốc độ không tải: 208RPM (208 vòng 1 phút)
- Tốc độ chịu đựng tối đa khi có tải: 176RPM (176 vòng 1 phút)
- Lực kéo Moment định mức: 21KG.CM
- Lực léo Moment tối đa: 84KG.CM
- Chiều dài hộp số L: 22.5mm
Tính chọn các linh kiện khác
Ta chọn 2 bánh xe robot có đường kính là 100mm:
- Vật liệu: Nhôm Có đệm cao su
Và 1 bánh xe đa hướng:
Hình 4.7.Bánh xe đa hướng
- Chất liệu khung: Kim loại
- Chất liệu bánh xe: nhựa
- Đường kính bánh xe: 20mm
- Độ dày bánh xe: 14mm
Mô hình thực tế
Hình 4.9.Mô hình mô hình thiết kế đế xe
Hình 4.10.Mô hình đế xe
Hình 4.11 Mô hình khung xe
Hình 4.12 Bản vẽ mô hình
Hình 4.13 Mô hình thực tế
Hình 4.14 Mô hình thực tế
Hình 4.15 Mô hình thực tế
THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN
Sơ đồ khối hệ thống
Hình 5.1 Sơ đồ khối hệ thống
5.1.2 Thiết bị và chức năng:
STT Thiết bị Chức năng
1 Nguồn ACQUY 12V Cung cấp nguồn cho 2 động cơ
2 Nguồn 5V Cung cấp nguồn cho máy tính nhúng
Raspberry pi 4 và vi điều khiển Arduino Mega
3 Arduino Mega 2560 Xử lý điều khiển động cơ, thu thập dữ liệu từ encoder,…
4 Raspberry Pi 4 Đọc cảm biến Lidar, sử dụng các thuật toán
5 Cảm biến lidar Quét chướng ngại vật ở môi trường xung quanh tạo bản đồ 2D
6 Động cơ phải Điều khiển bánh xe phải
7 Động cơ trái Điều khiển bánh xe trái
8 Encoder trái Thu thập tín hiệu xung để Arduino điều khiển bánh xe trái
9 Encoder phải Thu thâp tín hiệu xung để Arduino điều khiieenr bánh xe phải
10 Cầu H BTS7960 Mô-đun điều khiển động cơ
Bảng 5.1 Danh sách thiết bị
Hệ thống điện
5.2.1 Danh sách các thiết bị trong hệ thống:
- Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz
- Có 3 lựa chọn RAM: 2GB, 4GB hoặc 8GB LPDDR4-2400 SDRAM
- Wifi chuẩn 2.4 GHz và 5.0 GHz IEEE 802.11ac Bluetooth 5.0, BLE
- 2 cổng USB 3.0 và 2 cổng USB 2.0
- Chuẩn 40 chân GPIO, tương thích với các phiên bản trước
- Hỗ trợ 2 cổng ra màn hình chuẩn Micro HDMI với độ phân giải lên tới 4K
- Khe cắm Micro-SD cho hệ điều hành và lưu trữ
- Nguồn điện DC 5V – 3A DC chuẩn USB-C
- 5V DC via GPIO header (minimum 3A*)
- Hỗ trợ Power over Ethernet (PoE) (yêu cầu có PoE HAT)
Arduino là một bo mạch vi điều khiển do một nhóm giáo sư và sinh viên nước Ý thiết kế và đưa ra đầu tiên vào năm 2005 Mạch Arduino được sử dụng để cảm nhận và điều khiển nhiều đối tượng khác nhau Nó có thể thực hiện nhiều nhiệm vụ lấy tín hiệu từ cảm biến đến điều khiển đèn, động cơ, và nhiều đối tượng khác Ngoài ra mạch còn có khả năng liên kết với nhiều module khác nhau như module đọc thẻ từ, ethernet shield, sim900A, ….để tăng khả ứng dụng của mạch
Phần cứng bao gồm một board mạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARM, Atmel 32-bit,…
Giới thiệu về Arduino Mega 2560:
- Vi điều khiển chính: ATmega2560
- IC nạp và giao tiếp UART: CH340
Mạch được cấp nguồn 5VDC qua cổng USB hoặc nguồn ngoài qua giắc DC Nếu dùng nguồn ngoài, khuyến nghị nên dùng nguồn 6-9VDC để đảm bảo hoạt động ổn định Không nên sử dụng nguồn 12VDC vì có thể gây quá nhiệt cho IC ổn áp, dẫn đến cháy và hỏng mạch.
- Số chân Digital I/O: 54 (trong đó 15 chân có khả năng xuất xung PWM)
- Dòng điện DC Current trên mỗi chân I/O: 20mA
- Dòng điện DC Current chân 3.3V: 50mA
- Flash Memory: 256 KB trong đó 8 KB sử dụng cho bootloader
- Dòng điện tải mach: 43A (Tải trở) hoặc 15A (Tải cảm)
- Tín hiệu logic điều khiển: 3.3 ~ 5VDC
- Tần số điều khiển tối đa: 25KHz
- Tự động shutdown khi điện áp thấp: để tránh điều khiển động cơ ở mức điện áp thấp thiết bị sẽ tự shutdown Nếu điện áp < 5.5VDC, driver sẽ tự ngắt điện và sẽ mở lại sau khi điện áp > 5.5VDC
- Bảo vệ quá nhiệt: BTS7960 bảo vệ chống quá nhiệt bằng cảm biến nhiệt tích hợp bên trong Đầu ra sẽ bị ngắt khi có hiện tượng quá nhiệt
- Model: Máy quét phạm vi laser 360° RPLIDAR A1M8
- Điện áp hệ thống: 5VDC
- Hệ thống hiện tại: 100mA
- Đầu ra: UART Serial (mức điện áp 3.3)
- Độ phân giải phạm vi:
Bảng 5.2 Thông số kỹ thuật Lidar Bảng 5.2 Thông số LIDAR [18]
Hình 5.6 Acquy Long WPI236W 12V-9Ah
Công thức tính toán thời gian sử dụng
Trong đó: T – thời gian dung acquy;
Ah – Dung lượng bình, Ah;
Pt – hiệu suất hệ thống:0.8;
P công suất tiêu thụ của tải,W;
Từ đó ta tính ra được 1.44 (giờ) là thời gian sử dụng acquy cấp nguồn cho AGV
Điều khiển PID
• Chương trình PID điều khiển tốc độ động cơ
Chương trình PID điều khiển tốc độ động cơ
Kết thúc xuất xung PWM pre_Err = Err
Speed = Pulse – pre_Pulse pre_Pulse = Pulse Err = ctrl_Speed – Speed Đ
S Đ abs(Output) > Period Output = Period
D = kD*(Err – pre_Err)/sam_Time
Chương trình đọc giá trị encoder
Sau quá trình điều chỉnh các thông số PID bằng phương pháp thủ công, nhóm thu được kết quả sau: K_pr = 0.28 K_ir = 2.0 K_dr = 0.00001
Kết quả đọc lidar
Hình 5.7 Ảnh đọc map từ Lidar
Encoder Kênh A: A ngắt Kênh B: B input
THUẬT TOÁN SLAM VÀ NAVIGATION
SLAM quá trình vẽ bản đồ
Trước hết, chúng ta cần biết rằng robot không thể hiểu được một môi trường nhất định nếu chúng ta chỉ nhập bản đồ giấy vào đó Bởi vì, robot không có ý thức như con người để tự khám phá môi trường chưa biết Vì vậy, robot sẽ cần mã hóa và hiểu thông tin Các gói Package trong SLAM cung cấp các công cụ và thư viện để triển khai thuật toán SLAM Chẳng hạn như: Gmapping cung cấp thuật toán bản đồ lưới, Cartographer cung cấp thuật toán tạo bản đồ và cung cấp vị trí, RTAB-MAP cung cấp SLAM thời gian thực… Để xây dựng bản đồ bằng ROS, chúng ta có thể áp dụng gói Gmapping được sử dụng phổ biến có chứa phương pháp ánh xạ dựa trên bộ lọc hạt có thể tạo bản đồ lưới
6.1.1 Quy trình xử lý của SLAM
Quá trình SLAM chia thành hai giai đoạn: Localization (xác định vị trí) và Mapping (tạo bản đồ) Trong Localization, robot sử dụng dữ liệu cảm biến và bản đồ đã xây dựng để xác định vị trí trong môi trường Giai đoạn Mapping, robot sử dụng dữ liệu cảm biến để tạo bản đồ môi trường, sử dụng các phương pháp như bản đồ lưới, đồ thị hoặc biểu đồ khác để thể hiện môi trường và các đặc điểm của nó.
Các gói package trong SLAM cung cấp các công cụ và thư viện để triển khai thuật toán SLAM Ví dụ, gói Gmapping cung cấp thuật toán bản đồ lưới, gói Cartographer cung cấp thuật toán tạo bản đồ và xác định vị trí, gói RTAB-Map cung cấp thuật toán SLAM thời gian thực Các gói package này giúp dễ dàng triển khai SLAM trong các ứng dụng robot khác nhau mà không cần xây dựng lại từ đầu
Gmapping là một gói package phổ biến trong ROS được sử dụng để xây dựng bản đồ lưới và xác định vị trí của robot trong quá trình SLAM Gói Gmapping sử dụng dữ liệu từ cảm biến lidar và odometry để tạo bản đồ và ước lượng vị trí của robot
Cách thức hoạt động của Gmapping được dựa trên thuật toán Rao-Blackwellized Particle Filter (RBPF) Đầu tiên, dữ liệu từ cảm biến lidar được sử dụng để phát hiện các điểm đặc trưng trong môi trường Các điểm đặc trưng này thường là các điểm biên, góc hoặc đối tượng nhận dạng được từ dữ liệu lidar
Sau đó, Gmapping sử dụng bộ lọc hạt để ước lượng vị trí và tạo bản đồ Bộ lọc hạt
(Particle Filter) là một phương pháp ước lượng trạng thái dựa trên việc sử dụng một tập hợp các hạt (particle) biểu diễn các giả thuyết về trạng thái của robot Mỗi hạt đại diện cho một trạng thái ước lượng của robot trong không gian Các hạt này sẽ được cập nhật và trọng số dựa trên sự phù hợp giữa các dữ liệu đo và các dự đoán từ trạng thái ước lượng Trong quá trình ước lượng vị trí, Gmapping sử dụng thông tin từ cảm biến lidar để tính toán xác suất xảy ra của các trạng thái ước lượng tại các vị trí khác nhau trong bản đồ Các hạt với xác suất cao sẽ được tăng cường, trong khi các hạt với xác suất thấp sẽ bị loại bỏ Quá trình này tạo ra một phân phối xác suất của vị trí robot trong không gian Đồng thời, Gmapping sử dụng thông tin từ cảm biến odometry để dự đoán sự di chuyển của robot và cập nhật trạng thái ước lượng Kết hợp thông tin từ lidar và odometry, Gmapping tạo ra một bản đồ lưới chính xác và ước lượng vị trí của robot trong môi trường không biết trước
Gmapping cung cấp các tham số và cấu hình để điều chỉnh quá trình xây dựng bản đồ và ước lượng vị trí, bao gồm số lượng hạt, khoảng cách giữa các ô lưới bản đồ, độ chính xác của dữ liệu lidar và odometry, cùng nhiều tùy chọn thiết lập khác.
Gói Gmapping trong ROS cung cấp một công cụ mạnh mẽ để triển khai thuật toán SLAM dựa trên lidar và odometry Nó đã được sử dụng rộng rãi trong nhiều ứng dụng robot thực tế và đóng vai trò quan trọng trong việc xây dựng bản đồ và định vị trong môi trường không biết trước
GMapping (Grid-based Mapping) là một thuật toán SLAM (Simultaneous
Localization and Mapping) phổ biến được sử dụng để xây dựng bản đồ 2D của môi trường bằng cách sử dụng dữ liệu từ cảm biến laser hoặc lidar
• Grid map: Gmapping sử dụng grid map (lưới ô) để biểu diễn không gian xung quanh. Mỗi ô trong lưới đại diện cho một phần nhỏ của môi trường và được gán giá trị để chỉ ra tính chất của ô đó, chẳng hạn như có vật cản hoặc không.Thuật toán này được H.Moravec và A.Elfes đề xuất lần đầu tiên vào năm 1985
Cách thức hoạt động của thuật toán này là trình bày bản đồ môi trường dưới dạng một trường có các biến ngẫu nhiên nhị phân có khoảng cách đều nhau, mỗi biến đại diện cho sự hiện diện của chướng ngại vật tại vị trí đó trong môi trường Sau đó, thuật toán tính toán giá trị gần đúng cho các biến ngẫu nhiên này
• Gmapping sử dụng một kỹ thuật gọi là "particle filter" để ước lượng vị trí của robot dựa trên các đo đạc từ các cảm biến như lidar hoặc camera Thuật toán tạo ra một tập hợp các "particles" (hay "hạt") đại diện cho các ước lượng vị trí khác nhau của robot Các particles này được di chuyển và cập nhật dựa trên thông tin từ các cảm biến và dữ liệu đo đạc để tìm ra vị trí tốt nhất cho robot
Trong quá trình di chuyển, các particles được cập nhật thông qua các bước quan trọng như:
- Dự đoán (prediction): Các particles di chuyển dựa trên thông tin vận tốc và gia tốc của robot
- Cập nhật (update): Các particles được cập nhật dựa trên thông tin mới từ các cảm biến Điều này giúp điều chỉnh ước lượng vị trí của robot và cải thiện độ chính xác của bản đồ
• Gmapping cũng sử dụng "scan matching" để so khớp các đo đạc từ cảm biến với bản đồ hiện tại Quá trình này giúp xác định các vị trí tương ứng giữa dữ liệu đo đạc và bản đồ, từ đó cải thiện chất lượng bản đồ và ước lượng vị trí của robot
"Scan matching" là một kỹ thuật được sử dụng trong lĩnh vực robot học và xác định vị trí để so khớp các dữ liệu quét (scan) từ cảm biến với một bản đồ hoặc mô hình hiện tại Trong quá trình scan matching, các dữ liệu quét được thu thập từ cảm biến như lidar hoặc camera và được biểu diễn dưới dạng điểm hoặc các đặc trưng Mục tiêu là tìm ra một phép biến đổi (translation, xoay, tỉ lệ) tốt nhất để đưa các dữ liệu quét hiện tại vào bản đồ hoặc mô hình đã tồn tại
Hình 6.1 Ví dụ về Grid-map của Gmapping
Hình 6.2 Quy trình xử lý SLAM
Navigation
Navigation là một trong những công cụ thiết yếu nhất trong ROS Nó cho phép robot di động di chuyển tự động Điều này được sử dụng trong nhiều lĩnh vực robot: robot hậu cần cho nhà kho, robot gia đình thực hiện một số nhiệm vụ
Điều hướng là quá trình xác định và triển khai các hành động để di chuyển từ vị trí này sang vị trí khác trong không gian Trong lĩnh vực rô-bốt, điều hướng liên quan đến khả năng của rô-bốt trong việc định hướng và di chuyển trong môi trường một cách an toàn và hiệu quả.
Hình 6.3 Thành phần của Navigation
Dưới đây là một số thành phần quan trọng của gói navigation trong robot tự hành:
Hình 6.4 Các thành phần Navigation
Là một thành phần chính để điều khiển di chuyển của robot Nó kết hợp thông tin từ lập kế hoạch di chuyển và điều khiển chuyển động để đảm bảo robot đi theo lộ trình được lập trước một cách an toàn và hiệu quả
6.2.2 AMCL (Adaptive Monte Carlo Localization):
Là một thuật toán định vị cho phép robot xác định vị trí của mình trong môi trường Nó sử dụng dữ liệu từ cảm biến và bản đồ để ước lượng vị trí hiện tại
Thuật ngữ mô tả tình huống robot bị mắc kẹt trong quá trình di chuyển đến mục tiêu do lỗi trong kế hoạch đường đi.
Hình 6.5 Quy trình recovery behaviors
Nguyên tắc hoạt động của phương pháp này là local costmap sẽ gỡ bỏ các chướng ngại vật nằm ngoài khu vực do người dùng chỉ định Tiếp đến, nếu có thể, robot sẽ khởi động một vòng quay tại chỗ để giải phóng không gian Trong trường hợp tiếp tục thất bại, robot sẽ mạnh tay hơn bằng cách xóa bản đồ, loại bỏ toàn bộ các chướng ngại vật bên ngoài phạm vi hình chữ nhật cho phép xoay tại chỗ Sau đó, tiếp tục với một vòng quay tại chỗ khác Nếu mọi giải pháp đều không khả dụng, robot sẽ đánh giá mục tiêu không thực hiện được và thông báo cho người dùng về việc hủy bỏ.
6.2.4 Global Planner và Local Planner:
- Global Planner tạo ra lộ trình toàn cục từ vị trí hiện tại đến vị trí đích Nó sử dụng thuật toán của Dijkstra hoặc thuật toán A* để đánh giá và lập kế hoạch đường đi tự do ngắn nhất cho robot di động đến điểm mục tiêu đồng thời tránh chướng ngại vật trên hành trình của nó
- Local Planner quản lý điều khiển di chuyển cục bộ của robot, thích ứng với môi trường xung quanh và điều chỉnh theo lộ trình toàn cục
Dựa trên bản đồ Hệ thống dựa trên cảm biến
Hệ thống chủ động Hệ thống phản ứng
Phản ứng tương đối chậm Phản ứng nhanh
Giả sử kiến thức đầy đủ về khu vực không gian làm việc
Giả sử kiến thức chưa đầy đủ về khu vực không gian làm việc
Có được một đường khả thi dẫn đến mục tiêu Đi theo con đường khả thi đến mục tiêu trong khi tránh chướng ngại vật
Bảng 6.1 So sánh Global Planner và Local Planner
Là thành phần quản lý bản đồ, cung cấp dữ liệu bản đồ cho các thành phần khác của hệ thống navigation Các thành phần của map server gồm:
Trạng thái chiếm dụng của từng ô riêng lẻ trên thế giới có thể được trình bày bằng hình ảnh dưới màu của pixel tương ứng Trong cấu hình tiêu chuẩn, khu vực có pixel trắng là miễn phí, trong khi vùng màu đen được tô màu bởi pixel bị chiếm dụng Cuối cùng, khu vực có thang màu xám vẫn chưa được biết hoặc chưa được khám phá
Trong ROS, bản đồ thực tế được lưu trữ ở định dạng tệp "pgm" và tệp "YAML" chứa thông tin bản đồ Ví dụ: thông tin bản đồ có thể được minh họa dưới thông số hình ảnh và độ phân giải tính bằng mét / pixel Chi tiết hơn của từng tham số có thể được giải thích như dưới đây
- Image: Vị trí tệp YAML
- Origin: x,y,yaw với yaw là chiều xoay ngược chiều kim đồng hồ
- Occupied_thresh: Ngưỡng tài nguyên đã được sử dụng, chiếm dụng
- Free_thresh: Ngưỡng tài nguyên chưa bị chiếm dụng
Là một framework mở rộng cho Move Base, giúp tích hợp linh hoạt và tùy chỉnh hơn
Là một tập hợp các thành phần được kết hợp để tạo thành một hệ thống navigation hoàn chỉnh Nó gồm các thành phần như global planner, local planner, costmap, và move base
Thành phần này xây dựng bản đồ chi phí dựa trên dữ liệu từ cảm biến, giúp robot tránh xa các vật cản và chọn đường đi an toàn nhất.
• Global_costmap: được sử dụng để tạo ra một bản đồ chi phí toàn cục của môi trường mà robot hoặc xe tự hành đang hoạt động Bản đồ này bao gồm thông tin về trở ngại, vật cản hoặc các vùng có khả năng gây rủi ro trong không gian xung quanh
• Local_costmap:được sử dụng để tạo ra một bản đồ chi phí cục bộ của môi trường xung quanh robot hoặc xe tự hành Bản đồ này thường là một phần nhỏ của bản đồ toàn cục và cung cấp thông tin chi tiết về trở ngại, vật cản hoặc các vùng có khả năng gây rủi ro trong phạm vi gần của robot hoặc xe tự hành
6.2.9 Odometry: Đây là phương pháp thu thập dữ liệu từ các cảm biến chuyển động để ước tính sự thay đổi tư thế của robot theo thời gian Một loại cảm biến phổ biến được sử dụng để nhận giá trị này là encoder thường được tích hợp với động cơ
Khi robot được trang bị bộ mã hóa trên bánh xe hoặc chân, nó sẽ giúp robot có khả năng xác định được quãng đường di chuyển chính xác khi điều khiển đến một vị trí bất kỳ Ngoài ra, bộ mã hóa cũng có thể đo khoảng cách di chuyển của bánh xe thông qua chu vi của bánh xe.
THỰC NGHIỆM VÀ ĐÁNH GIÁ
Quá trình thực nghiệm
STT Mục tiêu của robot di động
1 Có thể quét bản đồ 2D chất lượng cao và chính xác
2 Có thể nhận biết chính xác các chướng ngại vật tĩnh và động
3 Có thể điều hướng và đi đến vị trí mục tiêu chính xác
Bảng 7.1 Mục tiêu thực nghiệm
7.1.2 Các bước tạo bản đồ
Sau khi khởi động robot, nhóm thiết lập môi trường ROS và cài đặt các gói có sẵn liên quan đến lập bản đồ Nhóm nghiên cứu quyết định sử dụng thuật toán gmapping SLAM để tạo bản đồ.
Bước 1: Khởi động robot – Khởi tạo môi trường truy xuất Kiểm tra các port USB giữa lidar, Arduino Mega 2560 và Raspberry
Nếu các port USB chưa được cấp quyền thì ta phải cấp quyền cho nó bằng lênh: sudo chmod 777 /dev/tty* (Với raspberry là ttyUSB0, lidar là ttyUSB1 )
Bước 2: Kiểm tra kết nối rosserial
Bước 3: Khởi chạy các package hỗ trợ có sẵn bao gồm : Lidar, odom, slam_gmapping
Bước 4: Điều khiển robot di chuyển xung quanh để thu thập dữ liệu vẽ bản đồ 2D trên Rviz
Hình 7.1 Vẽ bản đồ vị trí 0
• Nhận xét: Tại vị trí ban đầu hướng robot đúng với map được vẽ bằng SLAM trên
Rviz Bản đồ bước đầu hình thành đúng với thực tế.
Hình 7.2 Vẽ bản đồ vị trí 1
• Nhận xét: di chuyển mô hình để quét bản đồ môi trường xung quanh Mô hình gặp vật cản là ghế màu trắng nên không thể scan không gian bị ghế chắn phía sau Đồng thời hướng xoay mô hình trên Rviz không đồng nhất với thực tế
Hình 7.3 Vẽ bản đồ vị trí 2
• Nhận xét: Vị trí của mô hình không đồng nhất với thực tế Trên Rviz thì mô hình gần sát tường hơn Đồng thời hướng của mô hình bị lệch Tuy nhiên bản đồ được vẽ tương đối chuẩn
Hình 7.4 Vẽ bản đồ vị trí cuối
• Nhận xét: Khi tới khúc cua, xuất hiện hiện tượng chồng map Bản đồ được vẽ không chính xác
Bước 5: Bản đồ hình thành thì ta bắt đầu lưu bản đồ
• Nhận xét: Sau nhiều lần thực nghiệm, mô hình đã được cải thiện hơn, hiện tượng chồng map ít xuất hiện
Sau đây là bản đồ hoàn chỉnh sau nhiều lần thử nghiệm:
Bước 6 : Chuyển file vào thư mục workspace /ws để có thể gọi map ra thực hiện bước tiếp theo
7.1.2 Di chuyển đến vị trí chỉ định trên Rviz
Sau khi lưu được bản đồ từ gmapping SLAM, Nhóm tiến hành dùng thuật toán Dijkstra để tìm đường đi bằng cách đặt điểm đến và góc quay của robot trên bản đồ bằng lệnh 2D Nav Goal có trên Rviz Từ đó so sánh trên bản đồ với thực tế
Hình 7.7 Vị trí ban đầu của robot
Khi người dùng chỉ định robot đến một vị trí cụ thể bằng lệnh 2D Nav Goal, robot có thể di chuyển đến đúng vị trí đó Như thể hiện trong hình ảnh, robot đã đến đúng vị trí yêu cầu.
Hình 7.8 Vị trí đến của Robot
Tuy nhiên, thiết kế cơ học không chính xác khiến robot di chuyển lệch sang phải Điều này làm robot nhận dạng sai vật cản trong môi trường xung quanh, buộc nó phải thực hiện hành vi phục hồi Recovery_behaviors.
Thực nghiệm và nhận xét
7.2.1 Thực nghiệm điều khiển hướng:
Nhận thấy trong quá trình chạy thử nghiệm, mô hình chạy chưa đúng với yêu cầu Khi điều khiển cho mô hình di chuyển về phía trước, mô hình có xu hướng lệch sang phải
Hình 7.9 Vị trí ban đầu Hình 7.10 Chạy thẳng bị lệch phải
- Tốc độ 2 bánh xe không đều, bánh trái nhanh hơn bánh phải
- Bánh dẫn động phía trước bị kẹt
- Do thiết kế cơ khí bằng thủ công, nên vị trí động cơ bị lệch dẫn đến mô hình chạy bị lệch
- Cần xem xét lại chương trình điều khiển tốc độ 2 động cơ
- Thay thế bánh xe đa hướng mới
- Thiết kế lại hệ thống cơ khí, nên dùng phương pháp CNC để đạt độ chính xác cao
Trong quá trình thực nghiệm, nhóm đã đo lường encoder của hai động cơ Kết quả thu được như sau:
Hình 7.11 Dữ liệu encoder thu được
• Nhận xét: Ta nhận thấy data encoder của hai động cơ bị lệch một khoảng Lý do là khi tính toán, nhóm đã dựa vào thông số kỹ thuật của động cơ là Encoder trả ra 16 xung/kênh/vòng Tuy nhiên, thực tế nhóm sau khi đo lường lại thì nhận thấy một động cơ trả 16 xung/kênh/vòng, động cơ còn lại trả 17 xung/kênh/vòng Do đó có sự chênh lệch như thực nghiệm
• Cách khắc phục: Tính toán, điều khiển lại động cơ
Tiếp theo nhóm đã thực nghiệm góc quay robot để so sánh độ chính xác của robot
Ta đặt mô hình ở vị trí ban đầu như sau:
Hình 7.12 Vị trí ban đầu
Ta tiến hành cho xoay robot tại các vị trí 90 o , 180 o , 360 o :
Góc Hình ảnh Dữ liệu
Bảng 6.1 Dữ liệu góc quay
• Nhận xét: Ta thấy dữ liệu góc quay thu được bị lệch so với thực tế Nguyên nhân là nhóm chưa nghiên cứu thêm vào cảm biến IMU mpu6050 Cảm biến giúp xác định được góc quay robot chính xác hơn
• Từ đó ta đưa ra hướng khắc phục: Cần phải nghiên cứu, thêm vào cảm biến IMU mpu6050 để tăng độ chính xác
Qua quá trình thử nghiệm cho robot di chuyển đến vị trí mong muốn, nhóm đã nhận thấy robot đã họat động được, di chuyển theo lệnh từ bàn phím, vẽ được bản đồ 2D Bên cạnh những mặt đặt được yêu cầu đặt ra của nhóm, nhóm vẫn nhận được một vài hạn chế, cụ thể như sau:
Robot vẫn di chuyển lệch hướng vì bánh xe vận hành với tốc độ không đồng đều Điều này cho thấy thuật toán PID điều khiển vận tốc chưa được tối ưu và thiết kế cơ khí chưa đủ chính xác.
- Khi Lidar quét, robot di chuyển mạnh sẽ bị nhiễu, từ đó bản đồ vẽ ra không chính xác., map bị chồng lên nhau
- So sánh góc quay trên bản đồ với thực tế nhóm thấy robot có bị lệch so với yêu cầu
- Chưa hoàn thiện cơ khí hoàn chỉnh, chưa lắp đặt được bộ phận an toàn: Dừng khẩn cấp, Dây sạc, Đèn hiệu,…
• Nhận thấy hạn chế của robot, nhóm có những giải pháp sau:
- Cần nghiên cứu kỹ hơn về thuật toán PID, tìm thông số PID chính xác hơn để robot di chuyển chính xác,, Hoàn thiện thiết kế cơ khí chính xác hơn
- Đối với góc quay bị lệch, nhóm sẽ nghên cứu bổ sung cảm biến IMU để có thể tính toán góc quay chính xác hơn
- Đối với hiện tượng quét map bị nhiễu, hiện tượng chồng map cần phải tìm tòi nghiên cứu hướng khắc phục vấn đề
- Hoàn thiện cơ khí hoàn chỉnh
TỔNG KẾT VÀ HƯỚNG PHÁT TRIỂN
Kết luận
Sau khi nghiên cứu, nhóm đã xây dựng được robot AGV có khả năng xây dựng bản đồ môi trường xung quanh và triển khai điều hướng đến vị trí mong muốn.Bên cạnh đó, nhóm đã có một số thành tựu sau:
Nhóm đã thiết kế được khung robot Tuy sơ sài nhưng có thể di chuyển được trong nhà, địa hình bằng phẳng,…
Tuy nhiên, độ cao quét của Lidar là 30cm, vì thế những vật cản có chiều cao thấp hơn 30cm sẽ ko bị lidar quét được
8.1.2 Lựa chọn được các phương án thiết kế cơ khí, điều khiển
- Tính toán, chon được động cơ motor phù hợp
- Kết nối được mạch điều khiển với động cơ với các modul
8.1.3 Khả năng vẽ bản đồ và di chuyển theo vị trí mong muốn trên bản đồ:
Trong quá trình thực nghiệm,hệ thống đã vẽ được bản đồ, di chuyển theo yêu cầu
Những hạn chế
- Chưa thể hoàn thành được mô hình hoàn chỉnh
- Thuật toán điều khiển động cơ chưa tối ưu
- Mô hình cơ khí chưa chính xác, ảnh hưởng đến việc điều hướng robot,…
- Quá trình robot thực hiện di chuyển chưa ổn định
- Mô hình cơ khí còn nhiều hạn chế
- Tầm hoạt động phụ thuộc vào mạng kết nối, nếu đi quá xa sẽ bị mất kết nối, không thể thực hiện chức năng
- Do thời gian hạn chế, nhóm chưa thực hiện được các chức năng: tắt nguồn khẩn cấp, led báo hiệu, LCD,…
8.3 Hướng phát triển đề tài:
Hiện nhóm vẫn nghiên cứu về Robot AGV để phát triển lên thành một mô hình hoàn chỉnh Sau đây là một số hướng nghiên cứu và phát triển đề tài thành một đề tài hoàn chỉnh:
- Cải thiện phần cứng, thêm các chức năng mới như: Nút khẩn cấp, LCD hiển thị thông tin, led thông báo……
- Cải thiện các thuật toán PID, thuật toán quét bản đồ, di chuyển
- Nghiên cứu thêm chức năng né tránh vật cản cho xe tự hành,…
- Thêm cảm biến IMU để tăng độ chính xác góc quay, giúp xe di chuyển chính xác hơn
Phụ lục 1.1 Bản vẽ lắp
Phụ lục 1.2: Bản vẽ đế
[1] Thông tin sản phẩm: https://icdayroi.com/ , https://hshop.vn/
[2] Nguyễn Ngọc Bảo, Hồ Viết Bình (2007) Cơ sở công nghệ chế tạo máy Trường Đại học Sư phạm kĩ thuật Thành phố Hồ Chí Minh
[3] PGS.TS Trinh Chat – Le Van Uyen, “Tính Toán Thiết Kế Hệ Dẫn Động Cơ Khí”, NHA XUAT BAN GIAO DUC (2006)
[4] Lê Khánh Điền Vẽ kỹ thuật cơ khí Nhà xuất bản Đại học Quốc gia Tp.HCM
[5] Kaiyu Zheng, “ROS Navigation Tuning Guide” , (2016)
[6] Farbod Fahimi, “Autonomous Robots Modeling, Path Planning, and Control”,
[7] Wikipedia, “Bộ điều khiển PID” : https://vi.wikipedia.org/wiki/Lidar
[8] Joao A Fabro and Rodrigo Longhi Guimaraes, “ROS Navigation: Concepts and Tuturial”, Studies in Computational Intelligence (2016).
[9] Tuan Tran, “Công thức tính thời gian sử dụng ắc quy”, (February 19th 2015) https://acquy.info/faq/cong-thuc-tinh-thoi-gian-su-dung-ac-quy.html
[10] ROS.org, “move_base”.: http://wiki.ros.org/move_base
[11] ROS.org, “map_sever: http://wiki.ros.org/map_server
[12] ROS.org, “tf”: http://wiki.ros.org/tfrver
[13] https://developer.x-plane.com/2022/09/x-plane-12-early-access-notes-for-aircraft- developers/
[14] NgocKhanh, Vinamilk sử dụng robot tự hành trong sản xuất sữa https://viettimes.vn/vinamilk-su-dung-robot-tu-hanh-trong-san-xuat-sua- post24560.html
[15] Nguyen Huy An, PersonFollowingRobot, https://github.com/anhbantre/PersonFollowingRobot, 7/2023 https://developer.x-plane.com/2022/09/x-plane-12-early-access-notes-for-aircraft- developers/
[16] Amazon Kiva Warehouse Robot PNG & PSD, https://www.pixelsquid.com/png/amazon-kiva-warehouse-robot-
[17] BaoThanhNien,Giao hàng tận nhà bằng robot không người lái https://thanhnien.vn/giao-hang-tan-nha-bang-robot-khong-nguoi-lai-185514503.htm
[18] https://www.generationrobots.com/media/rplidar-a1m8-360-degree-laser- scanner- development-kit-datasheet-1.pdf