1. Trang chủ
  2. » Giáo Dục - Đào Tạo

thiết kế chế tạo robot tự hành hoạt động phục vụ trong bệnh viện

97 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết kế, chế tạo robot tự hành hoạt động phục vụ trong bệnh viện
Tác giả Huỳnh Tấn Nam, Phạm Minh Tiến
Người hướng dẫn T.S Vũ Quang Huy
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Công Nghệ Kỹ Thuật Cơ Điện Tử
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2024
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 97
Dung lượng 8,02 MB

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN (23)
    • 1.1. Lý do chọn đề tài (23)
    • 1.2. Giới thiệu về Robot tự hành AGV (23)
      • 1.2.1. Tổng quát về Robot AGV - Automated Guided Vehicle (23)
      • 1.2.2. Tình hình nghiên cứu trong và ngoài nước (24)
    • 1.3. Mục tiêu (26)
    • 1.4. Đối tượng nghiên cứu (26)
    • 1.5. Phạm vi nghiên cứu (26)
    • 1.6. Phương pháp nghiên cứu (26)
  • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT (28)
    • 2.1. Tổng quan robot AGV (28)
      • 2.1.1. Khái niệm AGV (28)
      • 2.1.2. Lịch sử phát triển của AGV (29)
      • 2.1.3. Phân loại AGV (30)
    • 2.2. Tổng quan về ROS (32)
      • 2.2.1. Khái niệm (32)
      • 2.2.2. Lịch sử của ROS (32)
      • 2.2.3. Các khái niệm cơ bản trong ROS (33)
      • 2.2.4. Ứng dụng của ROS (34)
    • 2.3. Tổng quát về SLAM (35)
      • 2.3.1 Khái niệm SLAM (35)
      • 2.3.2. Các gói Package trong SLAM (35)
      • 2.3.3. Ứng dụng của SLAM (36)
    • 2.4. Tổng quan về Navigation (36)
      • 2.4.1. Khái niệm (36)
      • 2.4.2. Các thành phần chính (36)
      • 2.4.3. Ứng dụng của Navigation (37)
    • 2.5. PID (37)
      • 2.5.1. Khái niệm PID (37)
      • 2.5.2. Các phương pháp điều chỉnh PID (41)
    • 2.6. Tìm hiểu về Rosserial (43)
  • CHƯƠNG 3: THIẾT KẾ HỆ THỐNG CƠ KHÍ (45)
    • 3.1. Phương án thiết kế cơ khí (45)
      • 3.1.1. Lựa chọn cơ cấu chuyển động (45)
    • 3.2. Lựa chọn bộ truyền (47)
      • 3.2.1. Bộ truyền đai (47)
      • 3.2.2. Bộ truyền đai răng (48)
      • 3.2.3. Bộ truyền xích (49)
      • 3.2.4. Bộ truyền bánh răng (49)
    • 3.3. Lựa chọn động cơ (50)
      • 3.3.1. Giới thiệu (50)
      • 3.3.2. Động cơ bước (50)
      • 3.3.3. Động cơ DC servo (51)
    • 3.4. Lựa chọn phương án bộ điều khiển (52)
  • CHƯƠNG 4: THIẾT KẾ HỆ THỐNG (54)
    • 4.1. Thiết kế robot (54)
    • 4.2. Phân tích mô hình động học của robot (55)
    • 4.3. Tính toán chọn công suất động cơ (56)
    • 4.4. Tính chọn các linh kiện khác (59)
      • 4.4.1. Lựa chọn bánh xe (59)
      • 4.4.2. Lựa chọn gối đỡ (60)
    • 4.5 Mô hình thực tế (60)
  • CHƯƠNG 5: THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN (64)
    • 5.1. Sơ đồ khối hệ thống (64)
      • 5.1.1. Sơ đồ khối (64)
      • 5.1.2. Thiết bị và chức năng (65)
    • 5.2. Hệ thống điện (66)
      • 5.2.1 Danh sách các thiết bị trong hệ thống (66)
    • 5.3 Điều khiển PID (71)
    • 5.4. Kết quả đọc lidar (72)
  • CHƯƠNG 6: THUẬT TOÁN SLAM VÀ NAVIGATION (73)
    • 6.1. SLAM quá trình vẽ bản đồ (73)
      • 6.1.1. Quy trình xử lý của SLAM (73)
      • 6.1.2. Gmapping (74)
    • 6.2. Navigation (76)
      • 6.2.1. Move Base (77)
      • 6.2.2. AMCL (Adaptive Monte Carlo Localization) (77)
      • 6.2.3. Recovery_behaviors (77)
      • 6.2.4. Global Planner và Local Planner (78)
      • 6.2.5. Map Server (79)
      • 6.2.6. Move Base Flex (80)
      • 6.2.7. Navigation Stack (80)
      • 6.2.8. Costmap_2d (80)
      • 6.2.9. Odometry (80)
  • CHƯƠNG 7: THỰC NGHIỆM VÀ ĐÁNH GIÁ (81)
    • 7.1. Quá trình thực nghiệm (81)
      • 7.1.1. Tiêu chí thực nghiệm (81)
      • 7.1.2. Các bước tạo bản đồ (81)
      • 7.1.2. Di chuyển đến vị trí chỉ định trên Rviz (85)
    • 7.2. Thực nghiệm và nhận xét (86)
      • 7.2.1. Thực nghiệm điều khiển hướng (86)
      • 7.2.2. Thực nghiệm đo encoder (86)
      • 7.2.3. Thực nghiệm góc quay (87)
      • 7.2.4 Nhận xét (90)
  • CHƯƠNG 8: TỔNG KẾT VÀ HƯỚNG PHÁT TRIỂN (91)
    • 8.1. Kết luận (91)
      • 8.1.1. Thiết kế cơ khí (91)
      • 8.1.2. Lựa chọn được các phương án thiết kế cơ khí, điều khiển (91)
      • 8.1.3. Khả năng vẽ bản đồ và di chuyển theo vị trí mong muốn trên bản đồ (91)
    • 8.2. Những hạn chế (91)

Nội dung

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

Ngày đăng: 26/09/2024, 12:11

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[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) Sách, tạp chí
Tiêu đề: Tính Toán Thiết Kế Hệ Dẫn Động Cơ Khí
[6] Farbod Fahimi, “Autonomous Robots Modeling, Path Planning, and Control”, (2009) Sách, tạp chí
Tiêu đề: Autonomous Robots Modeling, Path Planning, and Control
[7] Wikipedia, “Bộ điều khiển PID” : https://vi.wikipedia.org/wiki/Lidar Sách, tạp chí
Tiêu đề: Bộ điều khiển PID
[8] Joao A Fabro and Rodrigo Longhi Guimaraes, “ROS Navigation: Concepts and Tuturial”, Studies in Computational Intelligence (2016) Sách, tạp chí
Tiêu đề: ROS Navigation: Concepts and Tuturial
[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 Sách, tạp chí
Tiêu đề: 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
[1] Thông tin sản phẩm: https://icdayroi.com/ , https://hshop.vn/ Link
[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 Link
[15] Nguyen Huy An, PersonFollowingRobot, https://github.com/anhbantre/PersonFollowingRobot, 7/2023https://developer.x-plane.com/2022/09/x-plane-12-early-access-notes-for-aircraft-developers/ Link
[16] Amazon Kiva Warehouse Robot PNG &amp; PSD,https://www.pixelsquid.com/png/amazon-kiva-warehouse-robot-2440747714355401873?image=G03 Link
[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 Link
[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 Khác
[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. (2013) Khác

HÌNH ẢNH LIÊN QUAN

Hình 2.10. Các thành phần của Navigation stack - thiết kế chế tạo robot tự hành hoạt động phục vụ trong bệnh viện
Hình 2.10. Các thành phần của Navigation stack (Trang 36)
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] - thiết kế chế tạo robot tự hành hoạt động phục vụ trong bệnh viện
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] (Trang 40)
Hình 2.14. Đồ thị PV theo thời gian, với 3 giá trị Kd (Kp and Ki không đổi) [7] - thiết kế chế tạo robot tự hành hoạt động phục vụ trong bệnh viện
Hình 2.14. Đồ thị PV theo thời gian, với 3 giá trị Kd (Kp and Ki không đổi) [7] (Trang 41)
Hình 2.16 Giao tiếp rosserial giữa client và server trong hệ  thống - thiết kế chế tạo robot tự hành hoạt động phục vụ trong bệnh viện
Hình 2.16 Giao tiếp rosserial giữa client và server trong hệ thống (Trang 44)
Hình 3.4 AGV cơ câu đồng bộ - thiết kế chế tạo robot tự hành hoạt động phục vụ trong bệnh viện
Hình 3.4 AGV cơ câu đồng bộ (Trang 47)
Hình 4.2.Mô hình cơ khí thực tế - thiết kế chế tạo robot tự hành hoạt động phục vụ trong bệnh viện
Hình 4.2. Mô hình cơ khí thực tế (Trang 55)
Hình 4.15. Mô hình thực tế - thiết kế chế tạo robot tự hành hoạt động phục vụ trong bệnh viện
Hình 4.15. Mô hình thực tế (Trang 63)
Hình 4.14. Mô hình thực tế - thiết kế chế tạo robot tự hành hoạt động phục vụ trong bệnh viện
Hình 4.14. Mô hình thực tế (Trang 63)
5.1. Sơ đồ khối hệ thống - thiết kế chế tạo robot tự hành hoạt động phục vụ trong bệnh viện
5.1. Sơ đồ khối hệ thống (Trang 64)
Hình 6.1. Ví dụ về Grid-map của Gmapping - thiết kế chế tạo robot tự hành hoạt động phục vụ trong bệnh viện
Hình 6.1. Ví dụ về Grid-map của Gmapping (Trang 75)
Hình 7.1. Vẽ bản đồ vị trí 0 - thiết kế chế tạo robot tự hành hoạt động phục vụ trong bệnh viện
Hình 7.1. Vẽ bản đồ vị trí 0 (Trang 82)
Hình 7.3. Vẽ bản đồ vị trí 2 - thiết kế chế tạo robot tự hành hoạt động phục vụ trong bệnh viện
Hình 7.3. Vẽ bản đồ vị trí 2 (Trang 83)
Hình 7.11. Dữ liệu encoder thu được - thiết kế chế tạo robot tự hành hoạt động phục vụ trong bệnh viện
Hình 7.11. Dữ liệu encoder thu được (Trang 87)
Hình 7.12. Vị trí ban đầu - thiết kế chế tạo robot tự hành hoạt động phục vụ trong bệnh viện
Hình 7.12. Vị trí ban đầu (Trang 88)
Bảng 6.1. Dữ liệu góc quay - thiết kế chế tạo robot tự hành hoạt động phục vụ trong bệnh viện
Bảng 6.1. Dữ liệu góc quay (Trang 89)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w