1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ Án Tốt Nghiệp Nghiên Cứu, Thiết Kế Và Chế Tạo Xe Agv Ứng Dụng Xử Lí Ảnh.docx

100 13 0

Đ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

Định dạng
Số trang 100
Dung lượng 10,72 MB

Cấu trúc

  • CHƯƠNG 1: GIỚI THIỆU (17)
    • 1.1. Tính cấp thiết của đề tài (17)
    • 1.2. Ý nghĩa khoa học và thực tiễn của đề tài (17)
    • 1.3. Mục tiêu nghiên cứu của đề tài (18)
    • 1.4. Đối tượng và phạm vi nghiên cứu (18)
      • 1.4.1. Đối tượng nghiên cứu (18)
      • 1.4.2. Phạm vi nghiên cứu (18)
    • 1.5. Phương pháp nghiên cứu (0)
      • 1.5.1. Cơ sở phương pháp luận (0)
      • 1.5.2. Các phương pháp nghiên cứu cụ thể (0)
    • 1.6. Kết cấu của ĐATN (0)
  • CHƯƠNG 2: TỔNG QUAN NGHIÊN CỨU ĐỀ TÀI (20)
    • 2.1. Giới thiệu (20)
      • 2.1.1. Xu thế phát triển robot hiện nay (20)
      • 2.1.2. Giới thiệu về robot dịch vụ (20)
      • 2.1.3. Xe đẩy siêu thị thông minh (23)
    • 2.2. Các nghiên cứu liên quan đến đề tài (23)
      • 2.2.1. Các nghiên cứu ngoài nước (23)
      • 2.2.2. Các nghiên cứu trong nước (25)
  • CHƯƠNG 3: CƠ SỞ LÝ THUYẾT (26)
    • 3.1. Các cơ cấu hoạt động phổ biến trong robot AGV (26)
      • 3.2.1. Giới thiệu về thị giác máy, ảnh 2D (27)
      • 3.2.2. Thuật toán nhận diện đối tượng – bài toán Object detection (29)
      • 3.2.3. Model SSD (Single Shot Detector) trong Object Detection (30)
    • 3.3. Thị giác máy 3D (34)
      • 3.3.1. Camera số (34)
      • 3.3.2. Ảnh 3D (35)
    • 3.4. Bộ điều khiển PID (36)
    • 3.5. ROS (Robot Operation System) (37)
      • 3.5.1. ROS là gì (37)
      • 3.5.2. Lợi ích của ros cho robot (38)
      • 3.5.3. Các khái niệm cơ bản trong ROS (38)
  • CHƯƠNG 4: CÁC GIẢI PHÁP THỰC HIỆN ĐỀ TÀI VÀ TÍNH TOÁN THIẾT KẾ HỆ THỐNG CƠ KHÍ (40)
    • 4.1. Thông số thiết kế (40)
    • 4.2. Phương hướng và giải pháp thực hiện (41)
      • 4.2.1. Phương án 1 (41)
      • 4.2.2. Phương án 2 (42)
    • 4.3. Lựa chọn phương án (43)
    • 4.4. Trình tự công việc tiến hành (44)
    • 4.5. Tính toán lựa chọn động cơ (45)
    • 4.6. Tính toán thiết kế bộ truyền đai (48)
    • 4.7. Thiết kế hình dạng robot (52)
      • 4.7.1. Thiết kế mặt đế, nắp đế, đế kê giỏ hàng và tấm đặt thiết bị cho robot (52)
      • 4.7.2. Thiết kế khung robot (53)
      • 4.7.3. Lựa chọn bánh xe cho robot (54)
      • 4.7.4. Lựa chọn vật liệu cho trục bánh xe (55)
      • 4.7.5. Thiết kế 3D hệ thống cơ khí (56)
    • 4.8. Tính toán ứng suất, đường kính và dung sai cho trục bánh xe (57)
      • 4.8.1. Tính toán ứng suất (57)
      • 4.8.2. Tính toán dung sai cho trục bánh xe và ổ lăn (59)
    • 4.9. Tính toán động học (60)
  • CHƯƠNG 5: TÍNH TOÁN THIẾT KẾ HỆ THỐNG ĐIỆN VÀ THIẾT KẾ BỘ PI CHO ĐỘNG CƠ (63)
    • 5.1.1. Sơ đồ khối hệ thống điều khiển (63)
    • 5.1.2. Khối Nguồn (64)
    • 5.1.3. Khối cảm biến (camera Kinect v2) (66)
    • 5.1.4. Khối điều khiển (67)
    • 5.1.5. Cơ cấu chấp hành (Động cơ DC Servo) (70)
    • 5.1.6. Khối xử lý dữ liệu chính (73)
    • 5.2. Thiết lập bộ điều khiển PI cho động cơ (76)
  • CHƯƠNG 6: XÂY DỰNG THUẬT TOÁN XỬ LÝ ẢNH (81)
    • 6.1. Nhiệm vụ thuật toán (81)
    • 6.2. Thuật toán phát hiện người (82)
    • 6.3. Thiết lập node xử lý nhận diện người (82)
      • 6.3.1. Xử lý dữ liệu từ camera và tìm distance giữa người và robot (84)
      • 6.3.2. Xử lý dữ liệu để nhận dạng người và phân loại (87)
      • 6.3.3. Dùng dữ liệu đã được xác định để tìm alpha giữa robot và người (88)
    • 6.4. Thiết lập node “data_processing” (89)
    • 6.5. Giải thuật dẫn hướng cho robot (89)
  • CHƯƠNG 7: THỰC NGHIỆM VÀ ĐÁNH GIÁ (92)
    • 7.1. Kết quả gia công cơ khí (92)
    • 7.2. Kết quả thực nghiệm bộ điều khiển PI điều khiển tốc độ động cơ (94)
    • 7.3. Kết quả việc thực nghiệm xử lý ảnh (95)
  • TÀI LIỆU THAM KHẢO (99)

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KĨ THUẬT THÀNH PHỐ HỒ CHÍ MINH  KHOA ĐÀO TẠO CHẤT LƯỢNG CAO ĐỒ ÁN TỐT NGHIỆP Đề tài Nghiên cứu, thiết kế và chế tạo xe agv ứng dụng xử lí ảnh Giả[.]

GIỚI THIỆU

Tính cấp thiết của đề tài

Xe AGV (Automated Guided Vehicle) ngày càng phát triển và đa dạng ứng dụng trong nhiều lĩnh vực khác nhau Trong số đó, một trong những lĩnh vực nhóm đáng chú ý đã lựa chọn xe AGV là lĩnh vực siêu thị, đặc biệt là xe AGV bám theo người trong siêu thị Số người lớn tuổi đang gia tăng trên toàn cầu, đặc biệt là trong các nền kinh tế phát triển Với sự gia tăng này, nhu cầu hỗ trợ và giúp đỡ người lớn tuổi trong các hoạt động hàng ngày, bao gồm việc mua sắm, trở nên càng quan trọng hơn Xe chở hàng đi theo người trong siêu thị là một giải pháp hữu ích để đáp ứng nhu cầu di chuyển hàng hóa của của mọi người đặc biệt là người lớn tuổi, người gặp khó khăn trong việc vận chuyển hàng hoá trong siêu thị.

Khả năng về đáp ứng nhu cầu mua sắm của người lớn tuổi: Người lớn tuổi thường gặp khó khăn trong việc di chuyển và mang hàng hóa trong quá trình mua sắm Xe chở hàng đi theo người giúp giảm bớt gánh nặng vật lý và mệt mỏi cho người lớn tuổi, tạo điều kiện thuận lợi hơn để họ tiến hành mua sắm

Tiềm năng thị trường và lợi ích kinh tế: Với số lượng người lớn tuổi ngày càng tăng, việc nghiên cứu và phát triển xe chở hàng đi theo người đáp ứng nhu cầu của nhóm khách hàng này sẽ mở ra tiềm năng thị trường lớn Siêu thị và các doanh nghiệp bán lẻ có thể tận dụng cơ hội này để thu hút và duy trì khách hàng người lớn tuổi

Với những lợi ích trên, đề tài có tính cấp thiết và đáng được quan tâm Nó không chỉ giúp giải quyết vấn đề vận chuyển hàng hóa cho người lớn tuổi nói riêng và khách hàng nói chung một cách hiệu quả, mà còn đem lại trải nghiệm mới lạ, thú vị cái mà rất quan trọng trong xã hội hiện đại.

Ý nghĩa khoa học và thực tiễn của đề tài

Nghiên cứu này đòi hỏi việc tiếp cận đa ngành, bao gồm cơ khí, điện tử, lập trình, xử lí ảnh Sự kết hợp của các lĩnh vực này giúp đẩy mạnh sự đổi mới và phát triển công nghệ trong việc thiết kế và chế tạo xe chở hàng đi theo người, đáp ứng nhu cầu đặc biệt của người lớn tuổi cũng như nhu cầu trải nghiệm của mọi người Hiểu rõ yêu cầu, thực tế và hạn chế của người lớn tuổi trong việc mua sắm, nhằm đưa ra các giải pháp tối ưu cho việc vận chuyển hàng hóa Điều này đòi hỏi phân tích sâu về tư duy thiết kế, tính toán trọng lượng,cân bằng và an toàn để đảm bảo sự thuận tiện và an toàn cho người sử dụng.

 Ý nghĩa thực tiễn: Đề tài mang lại giá trị thực tế bằng cách đáp ứng nhu cầu của người lớn tuổi và trải nghiệm mới lạ cho khách hàng trong việc mua sắm Xe chở hàng đi theo người giúp giảm bớt khó khăn và trở ngại cho người lớn tuổi khi đi mua sắm, tăng cường sự độc lập và tự chủ cho họ cũng như đem lại nhiều trải nghiệm mới lạ cho mọi người

Sự tiện lợi và linh hoạt của xe chở hàng đi theo người cũng có thể tăng doanh số bán hàng và đóng góp vào lợi ích kinh tế của các doanh nghiệp.

Sản phẩm và công nghệ được phát triển từ đề tài có thể áp dụng rộng rãi trong các siêu thị và các khu mua sắm với điều kiện ánh sáng đủ tốt, tạo ra môi trường thuận lợi cho việc mua sắm và tăng cường trải nghiệm của khách hàng, đặc biệt là người lớn tuổi.

Mục tiêu nghiên cứu của đề tài

Nghiên cứu và hiểu rõ hơn về nhu cầu, yêu cầu đặc biệt của người gặp khó khăn trong việc di chuyển hàng hoá trong siêu thị và nhu cầu về sự tiện lợi cho người mua khi mua sắm

Xây dụng hệ thống cơ khí của robot, hệ thống điện điều khiển, xử lí dữ liệu từ camera, giúp robot nhận biết người Tạo ra một giải pháp thông minh, an toàn và tiện lợi cho việc vận chuyển hàng hóa trong siêu thị.

Thực nghiệm và đưa ra kết quả, định hướng phát triển cho đề tài.

Đối tượng và phạm vi nghiên cứu

1.4.1 Đối tượng nghiên cứu Đối tượng nghiên cứu của đề tài là nhóm người có nhu cầu mua sắm, đặc biệt là những người lớn tuổi và hạn chế trong khả năng vận chuyển khi mua sắm trong siêu thị Nhóm tập trung vào việc hiểu và đáp ứng tốt nhất các nhu cầu của đối tượng này để phát triển robot tự động di chuyển trong siêu thị, giúp họ trải nghiệm mua sắm một cách thuận tiện và dễ dàng hơn.

Nhóm sẽ nghiên cứu tạo ra một hệ thống xe chở hàng linh hoạt hoạt động chủ yếu trên nền gạch phẳng, môi trường có ánh sáng tốt và dễ sử dụng Robot được chế tạo để bám theo người mặc áo chuyên dụng của nhóm Có thể chở được hàng hóa trong siêu thị lớn.

Nhóm tập trung vào việc phát hiện vật cản và tạo ra cảnh báo hoặc dừng để tránh va chạm Robot sẽ không thực hiện chức năng tự động né vật cản.

- Chương 7: Thực nghiệm và đánh giá

Kết cấu của ĐATN

2.1.1 Xu thế phát triển robot hiện nay.

Xu thế phát triển robot hiện nay đang đi theo hướng đa dạng hóa và tiến bộ Các robot ngày càng trở nên thông minh hơn, có khả năng học hỏi và tương tác với con người một cách tự nhiên Trí tuệ nhân tạo đang được tích hợp để tạo ra robot có khả năng nhận biết, phân tích thông tin và ra quyết định Robot cũng đang phát triển để làm việc cùng con người, tạo ra sự hợp tác và tương tác an toàn

Robot không chỉ xuất hiện trong các hoạt động sản xuất, nhà máy, dây chuyền lắp ráp mà ngày càng gần gũi với con người; đặc biệt là các dạng robot dịch vụ như robot hút bụi, robot phục vụ trong nhà hàng, khách sạn, robot tư vấn, chỉ dẫn ở bệnh viện, Điều này tạo ra một môi trường sống và làm việc tiện nghi, hiệu quả và tạo ra những trải nghiệm mới cho con người Từ việc di chuyển linh hoạt đến tương tác xã hội, robot ngày càng trở thành một phần không thể thiếu trong cuộc sống hiện đại và mở ra nhiều triển vọng trong tương lai. Các loại robot đang là xu thế phát triển hiện nay:

 Trí tuệ nhân tạo (Artificial Intelligence - AI).

 Robot hợp tác với con người (Human-Robot Collaboration).

 Robot dịch vụ (Service Robotics).

 Robot di động và đa năng (Mobile and Versatile Robots).

 Robot trong công nghiệp (Industrial Robotics).

2.1.2 Giới thiệu về robot dịch vụ

Robot dịch vụ (Service Robotics): Sự gia tăng của robot dịch vụ đang mở ra nhiều tiềm năng ứng dụng trong các lĩnh vực như y tế, giáo dục, du lịch, khách sạn, v.v Robot dịch vụ có thể đáp ứng nhu cầu của con người trong các tác vụ như hỗ trợ và chăm sóc, giao tiếp và hướng dẫn, vận chuyển và phục vụ, mang lại sự tiện lợi và tăng cường trải nghiệm người dùng.

TỔNG QUAN NGHIÊN CỨU ĐỀ TÀI

Giới thiệu

2.1.1 Xu thế phát triển robot hiện nay.

Xu thế phát triển robot hiện nay đang đi theo hướng đa dạng hóa và tiến bộ Các robot ngày càng trở nên thông minh hơn, có khả năng học hỏi và tương tác với con người một cách tự nhiên Trí tuệ nhân tạo đang được tích hợp để tạo ra robot có khả năng nhận biết, phân tích thông tin và ra quyết định Robot cũng đang phát triển để làm việc cùng con người, tạo ra sự hợp tác và tương tác an toàn

Robot không chỉ xuất hiện trong các hoạt động sản xuất, nhà máy, dây chuyền lắp ráp mà ngày càng gần gũi với con người; đặc biệt là các dạng robot dịch vụ như robot hút bụi, robot phục vụ trong nhà hàng, khách sạn, robot tư vấn, chỉ dẫn ở bệnh viện, Điều này tạo ra một môi trường sống và làm việc tiện nghi, hiệu quả và tạo ra những trải nghiệm mới cho con người Từ việc di chuyển linh hoạt đến tương tác xã hội, robot ngày càng trở thành một phần không thể thiếu trong cuộc sống hiện đại và mở ra nhiều triển vọng trong tương lai. Các loại robot đang là xu thế phát triển hiện nay:

 Trí tuệ nhân tạo (Artificial Intelligence - AI).

 Robot hợp tác với con người (Human-Robot Collaboration).

 Robot dịch vụ (Service Robotics).

 Robot di động và đa năng (Mobile and Versatile Robots).

 Robot trong công nghiệp (Industrial Robotics).

2.1.2 Giới thiệu về robot dịch vụ

Robot dịch vụ (Service Robotics): Sự gia tăng của robot dịch vụ đang mở ra nhiều tiềm năng ứng dụng trong các lĩnh vực như y tế, giáo dục, du lịch, khách sạn, v.v Robot dịch vụ có thể đáp ứng nhu cầu của con người trong các tác vụ như hỗ trợ và chăm sóc, giao tiếp và hướng dẫn, vận chuyển và phục vụ, mang lại sự tiện lợi và tăng cường trải nghiệm người dùng.

Hình 2.1 WiiGo Retail – Robot dịch vụ trong siêu thị của công ty Follow

Inspiration ở Bồ Đào Nha [12] Được thiết kế bởi Follow Inspiration, một công ty khởi nghiệp của Bồ Đào Nha được thành lập vào năm 2012, wiiGo là một giỏ hàng tự điều khiển, giúp khách hàng bị suy giảm khả năng di chuyển mua sắm tại các siêu thị lớn Vào cuối năm 2016, wiiGo đã có buổi giới thiệu đầu tiên tại Pháp với chuỗi siêu thị Les Mousquetaires, tại các cửa hàng Intermarket và Bricomarket ở Auxonnes, gần Dijon và tại các siêu thị lớn Auchan.

Hình 2.2 Hình ảnh minh họa Robot phục vụ thức ăn mèo Bella [19]

Robot mèo BellaBot không phải là thiết bị PuduTech duy nhất như vậy Năm ngoái, các kỹ sư Trung Quốc đã phá triển robot phục vụ PuduBot với ít biểu cảm hơn Thiết bị nặng30kg, tương tự thiết kế của BellaBot, chứa từ 3 – 5 khay với khả năng chuyên chở 10kg mỗi khay Nó tích hợp pin kéo dài tới 24h khi hoạt động liên tục, và được sạc đầy trong 4h. Robot chỉ mất 120 phút để lập bản đồ căn phòng.

Hình 2.3 Robot giao hàng starship [13]

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.

 Lợi ích của robot dịch vụ:

Tăng hiệu suất và năng suất làm việc: Robot dịch vụ có thể làm việc liên tục mà không mệt mỏi hay giảm hiệu suất Điều này giúp tăng năng suất công việc và giảm thời gian hoàn thành.

Giảm chi phí nhân công: Sử dụng robot dịch vụ giảm sự phụ thuộc vào lao động con người, giúp tiết kiệm chi phí nhân công và tăng tính cạnh tranh.

Cải thiện chất lượng dịch vụ: Robot dịch vụ thực hiện các tác vụ một cách chính xác và nhất quán, giúp cải thiện chất lượng dịch vụ và đáp ứng yêu cầu của khách hàng.

Tăng tính an toàn: Robot dịch vụ có thể thực hiện các tác vụ nguy hiểm hoặc căng thẳng mà không đặt con người vào nguy cơ Điều này giúp tăng tính an toàn và giảm nguy cơ tai nạn lao động.

Trải nghiệm khách hàng tốt hơn: Robot dịch vụ cung cấp trải nghiệm tiện lợi và tốt hơn cho khách hàng Chúng có thể phục vụ 24/7, không gặp các ràng buộc thời gian và mang lại sự tiện lợi và linh hoạt cho khách hàng.

Hạn chế trong tương tác con người: Robot dịch vụ chưa thể tương tác và giao tiếp một cách tự nhiên và linh hoạt như con người, dẫn đến khó khăn trong việc hiểu và đáp ứng đúng yêu cầu của người dùng.

Hạn chế về đa nhiệm: Một số robot dịch vụ chỉ có thể thực hiện một nhiệm vụ cụ thể và không linh hoạt trong việc thay đổi và thích ứng với các tình huống mới.

Hạn chế về linh hoạt: Một số robot dịch vụ gặp khó khăn trong việc di chuyển trên các mặt địa hình phức tạp hoặc vượt qua các chướng ngại vật, giới hạn sự ứng dụng của chúng trong các môi trường đa dạng.

Hạn chế về hiệu suất và độ tin cậy: Robot dịch vụ có thể gặp khó khăn trong việc xử lý các tình huống phức tạp và đưa ra quyết định chính xác, và đôi khi có thể gây ra lỗi hoặc hỏng hóc.

2.1.3 Xe đẩy siêu thị thông minh

Các nghiên cứu liên quan đến đề tài

2.2.1 Các nghiên cứu ngoài nước

Trên thế giới, có nhiều nghiên cứu và phát triển về xe đẩy hàng trong siêu thị nhằm tăng cường hiệu suất và tiện ích cho quá trình mua sắm Dưới đây là một số nghiên cứu đáng chú ý:

"Robotic Shopping Cart" của hãng Five Elements Robotics: Hãng Five Elements Robotics đã nghiên cứu và phát triển một loại xe đẩy tự động có khả năng di chuyển theo người dùng và chứa hàng hoá trong siêu thị Xe đẩy này cũng có khả năng tương tác giọng nói và thực hiện các tác vụ đơn giản.

Hình 2.5 Robot di động ELI [22]

Robot di động ELI hoạt động như một giỏ mua hàng thông minh: nó có thể đi theoKhách hàng xung quanh cửa hàng trong khi người này đang chọn sản phẩm, nó có thể hướng dẫn Khách hàng vị trí của sản phẩm và cũng cho phép thanh toán tự động, trong số các chức năng khác.

ELI tích hợp các cảm biến nhận dạng giọng nói của con người và các cảm biến khác cho phép tránh chướng ngại vật Theo cách đó, nó có thể đi theo người tiêu dùng và điều hướng một cách tự động Bằng màn hình tích hợp của nó, người tiêu dùng có thể chọn các sản phẩm quan tâm và robot sẽ hướng dẫn họ đến với chúng.

Các tính năng khác bao gồm, tìm vị trí của ô tô trong bãi đậu xe và xác minh thông tin mua hàng, chẳng hạn như phiếu giảm giá hoặc thời hạn mua hàng.

2.2.2 Các nghiên cứu trong nước

Hiện nay robot dịch vụ trong siêu thị ở Việt Nam chưa được nghiên cứu, chế tạo nhiều. Dưới đây là sản phầm của nhóm sinh viên Khoa cơ khí chế tạo máy, trường Đại Học Sư Phạm Kỹ Thuật Tp.HCM 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ượng18.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

CƠ SỞ LÝ THUYẾT

Các cơ cấu hoạt động phổ biến trong robot AGV

Robot dịch vụ với cơ cấu di động thường có cấu hình của robot di động trên bánh xe (cơ cấu hai bánh vi sai) do thuận lợi trong việc điều khiển Với cơ cấu này, robot dễ dàng di chuyển trên nền gạch phẳng trong nhà như nhà hàng, khách sạn, siêu thị.

Hình 3.7 Nguyên lý hoạt động của cơ cấu vi sai [20]

Kiểm soát tốc độ vi sai là phương pháp lái AGV phổ biến nhất Nó sử dụng hai bánh dẫn động độc lập, mỗi bánh được dẫn động ở cùng tốc độ để đi thẳng hoặc ở các tốc độ khác nhau để rẽ.

Hình 3.8 Cơ cấu điều khiển vô lăng [20] Điều khiển vô lăng là một phương pháp phổ biến khác được sử dụng chủ yếu trong các phương tiện ba bánh như xe nâng hàng Trong cơ cấu này, bánh xe truyền động cũng là bánh xe quay Một tổ hợp động cơ và bộ mã hóa gia tăng được sử dụng cho chuyển động tiến và lùi, trong khi tổ hợp động cơ thứ hai và bộ mã hóa gia tăng được sử dụng để lái.Cách tiếp cận này cung cấp đường dẫn tốt hơn và cung cấp chuyển hướng rất trơn tru Ngoài ra, không giống như AGV điều khiển vi sai, phương tiện điều khiển vô lăng cũng có thể được sử dụng để kéo.

Hình 3.9 Cơ cấu điều khiển kết hợp [20]

Loại AGV thứ ba kết hợp các phương pháp điều khiển vi sai và lái Hai động cơ lái/truyền động độc lập với bộ mã hóa gia tăng phù hợp được đặt ở các góc chéo của AGV. Bánh xe xoay được đặt ở các góc đối diện Điều này cho phép xe rẽ theo hình vòng cung.

Nó cũng có thể di chuyển ngang hoặc theo bất kỳ hướng nào và nó có thể lái ở chế độ vi sai theo bất kỳ hướng nào.

Dựa vào việc phân tích các cơ cấu hoạt động trên nhóm đã quyết định lựa chọn cơ cấu vi sai với 2 bánh chủ động và 2 bánh bị động, nhằm điều khiển dễ dàng với góc xoay đa dạng và khả năng chịu tải Hai bánh chuyển động bởi 2 động cơ vì vậy nó có thể quay không đồng tốc và không cần thiết kế cơ cấu lái Đồng thời ở các nhà hàng hiện nay cũng đang sử dụng cơ cấu này Vì thế việc đưa cơ cấu này để sử dụng là hoàn toàn hợp lý

3.2 Xử lí dữ liệu – Xử lí ảnh (2D, 3D)

3.2.1 Giới thiệu về thị giác máy, ảnh 2D

Thị giác máy tính là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc máy tính có khả năng nhận diện, phân tích và hiểu các hình ảnh và video tương tự như con người Nó kết hợp các phương pháp và thuật toán trong xử lý hình ảnh, phân loại, nhận dạng đối tượng, theo dõi chuyển động và trích xuất thông tin từ hình ảnh và video.

Không gian màu RGB là một hệ thống màu rất phổ biến được sử dụng trong đồ họa máy tính và nhiều thiết bị kỹ thuật số khác Nó dựa trên ý tưởng của việc kết hợp ba màu sắc cơ bản là đỏ (R, Red), xanh lục (G, Green) và xanh lam (B, Blue).[16]

Trong không gian màu RGB, mỗi màu sắc được biểu diễn bằng một giá trị từ 0 đến 255 cho mỗi kênh màu (R, G, B) Kết hợp các giá trị này, ta có thể tạo ra hàng triệu màu sắc khác nhau bằng cách điều chỉnh độ sáng và tỷ lệ của ba kênh màu.Hệ thống RGB thường được sử dụng để hiển thị màu trên các màn hình, in ấn và các thiết bị kỹ thuật số khác Nó cung cấp khả năngtái tạo màu sắc rất rộng và chính xác, cho phép chúng ta tạo ra hình ảnh sống động và chân thực.

Ngoài không gian màu RGB, còn có nhiều hệ thống màu khác như CMYK (Cyan, Magenta, Yellow, Key), HSV (Hue, Saturation, Value), HSL (Hue, Saturation, Lightness) và nhiều hệ thống màu khác nữa Mỗi hệ thống màu có ứng dụng và tính chất riêng, tùy thuộc vào mục đích sử dụng và ngữ cảnh cụ thể.

Hình 3.10 Hình Thêm đỏ vào xanh lá cây tạo ra vàng; thêm vàng vào xanh lam tạo ra trắng [27]

Khi chọn một màu cụ thể, ta sẽ có một bộ ba số tương ứng (R, G, B) Mỗi số trong khoảng từ 0 đến 255 đại diện cho mức độ của màu đỏ (R), màu xanh lục (G) và màu xanh lam (B) Kết hợp các giá trị này, ta có thể tạo ra hàng triệu màu sắc khác nhau.

Trong ảnh màu, mỗi điểm ảnh hoặc pixel được biểu diễn bởi một khối màu rất nhỏ Pixel là đơn vị cơ bản nhất để tạo nên một bức ảnh kỹ thuật số 2D Mỗi pixel trong ảnh màu được biểu diễn bằng một bộ ba số (R, G, B), trong đó mỗi số đại diện cho mức độ của màu tương ứng. Để thuận tiện cho việc lưu trữ và xử lý ảnh, thông thường mỗi giá trị màu trong mỗi pixel sẽ được lưu trữ trong một ma trận riêng Mỗi ma trận này được gọi là một kênh màu (channel) Vì vậy, ảnh màu được gọi là ảnh có ba kênh màu: kênh màu đỏ (red channel), kênh màu xanh lục (green channel), và kênh màu xanh lam (blue channel).

Bằng cách kết hợp và điều chỉnh các giá trị trong ba kênh màu này, ta có thể tạo ra các màu sắc đa dạng và biểu diễn rõ nét các chi tiết trong ảnh màu Mô hình không gian màu

RGB là một trong những mô hình phổ biến và quan trọng nhất để biểu diễn và xử lý ảnh màu.

3.2.2 Thuật toán nhận diện đối tượng – bài toán Object detection

Nhận dạng đối tượng là một thuật ngữ chung để mô tả một tập hợp các nhiệm vụ thị giác máy tính có liên quan liên quan đến việc xác định các đối tượng trong ảnh kỹ thuật số.

Hình 3.11 Phân loại chó mèo [7]

Phân loại hình ảnh liên quan đến việc dự đoán lớp của một đối tượng trong một hình ảnh Định vị vật thể đề cập đến việc xác định vị trí của một hoặc nhiều đối tượng trong một hình ảnh và vẽ bounding box xung quanh chúng Phát hiện đối tượng kết hợp hai nhiệm vụ trên và thực hiện cho một hoặc nhiều đối tượng trong hình ảnh Chúng ta có thể phân biệt giữa ba nhiệm vụ thị giác máy tính cơ bản trên thông qua input và output của chúng như sau [17]:

Phân loại hình ảnh là quá trình dự đoán lớp của một đối tượng trong một hình ảnh Nó liên quan đến việc xác định và gán nhãn cho các đối tượng trong hình ảnh dựa trên các đặc trưng và thông tin được trích xuất từ hình ảnh đó Mục tiêu của phân loại hình ảnh là nhận diện đối tượng và phân loại chúng vào các lớp hay nhãn khác nhau. Định vị đối tượng, hay còn gọi là object localization, là quá trình xác định vị trí của một hoặc nhiều đối tượng trong một hình ảnh Nó bao gồm việc xác định tọa độ và kích thước của các bounding box (khung giới hạn) xung quanh các đối tượng trong hình ảnh Định vị vật thể cho phép chúng ta biết chính xác đối tượng đang nằm ở đâu trong hình ảnh.

Thị giác máy 3D

Là một dạng camera 3D có hai hoặc nhiều hơn các cảm biến hình ảnh để bắt được các góc ảnh khác nhau Từ độ sai lệch giá trị trả về từ hai camera đơn đó tính ra chiều sâu của ảnh Đây là mô hình camera 3D đầu tiên, có độ chính xác so với camera cùng chức năng không cao, giá thành tương đối rẻ Tuy nhiên, với việc cải thiện chất lượng của cảm biến hình ảnh và giải thuật xử lý, hiện tại có một số l số loại stereo camera cho chất lượng rất tốt nhưng giá thành tương đối cao.[1]

 Time-of-Flight camera(TOF camera)

Các TOF camera xử dụng ánh sáng hồng ngoại chiếu tới vật thể cần xác định, cảm biến đo thời gian dội lại của tia hồng ngoại để xác định chiều sâu Sai số khoảng 1cm, Microsoft Kinect v2 là một trong những đại diện tiêu biểu của loại camera này.[1]

Hoạt động bằng cách chiếu một dải ánh sáng lên bề mặt cần xác định, dựa trên hiện tượng cong của ảnh trả về để tính ra chiều sâu của bề mặt Tốc độ này khá nhanh so với phương pháp ToF, sai số 1 cm vấn đề của phương pháp này là vật thể phải đủ lớn để gây ra hiện tượng cong ảnh.[1]

Một hướng tiếp cận mới là sử dụng thị giác máy 3D để giải quyết những vấn đề thực tế mà thị giác máy 2D gặp phải trong bài toán robot đi theo người Thay vì chỉ dựa trên thông tin hai chiều, thị giác máy 3D cho phép thu thập thông tin chiều sâu, khoảng cách và vị trí tương đối của đối tượng so với robot Với thị giác máy 3D, robot có thể xác định được khoảng cách đến đối tượng và độ lệch so với vị trí mong muốn Điều này giúp robot có thể điều chỉnh hướng di chuyển Thêm vào đó, thông tin chiều sâu cũng cung cấp thêm thông tin về môi trường xung quanh, giúp robot đưa ra quyết định và phản ứng phù hợp.

Bằng cách áp dụng thị giác máy 3D trong bài toán robot đi theo người, ta có thể cải thiện khả năng điều hướng và tương tác của robot Điều này giúp robot hoạt động một cách hiệu quả và an toàn hơn trong môi trường thực tế, đồng thời nâng cao trải nghiệm và sự tin tưởng của người sử dụng.

Trong thị giác máy 3D, ảnh RGB-D là một dạng phổ biến, kết hợp thông tin màu sắc (RGB) và thông tin độ sâu (Depth) Độ sâu cung cấp thông tin về khoảng cách từ camera đến các điểm trong hình ảnh, giúp tái tạo không gian ba chiều Thông qua ảnh RGB-D, có thể xác định vị trí và hình dạng của các đối tượng trong một không gian 3D.

Ngoài ra, point cloud (đám mây điểm) cũng là một phương pháp thị giác máy 3D phổ biến Point cloud biểu diễn không gian bằng cách lưu trữ tập hợp các điểm 3D trong không gian Các điểm này có thể được xây dựng từ ảnh RGB-D và thông số của camera Point cloud cho phép tái tạo chi tiết và chính xác của đối tượng trong không gian 3D.

Thị giác máy 3D đã mở ra nhiều tiềm năng và cơ hội cho việc phát triển các ứng dụng thông minh và tương tác trong thế giới thực Với khả năng xử lý thông tin không gian ba chiều và độ sâu, nó mang lại những lợi ích đáng kể trong việc điều khiển robot, xây dựng môi trường thực tế ảo, cải thiện an ninh và an toàn, và nhiều lĩnh vực ứng dụng khác.

Bộ điều khiển PID

Bộ điều khiển PID (Proportional Integral Derivative) lý tưởng là cấu trức ghép song song của ba khâu: P, I và D Thuật toán PID có thể mô tả đơn giản như hình 2.22 Bộ điều khiển PID sẽ giám sát đầu ra của hệ thống, sau đó so sánh với giá trị mong muốn Nếu hệ thống chưa đạt được giá trị mong muốn, nghĩa là sai số e khác không, bộ PID sẽ tính toán ra giá trịtác động mới (tác động vào hệ thống) để hiệu chỉnh hệ thống Quá trình này sẽ được thực hiện liên tục cho đến khi nào e = 0, lúc đó hệ thống sẽ đạt trạng thái ổn định Hệt hống như thế còn được gọi là hệ thống điều khiển vòng kín (Closed Loop Control) vì nó có hồi tiếp trạng thái của hệ thống về bộ điều khiển.

Sơ đồ 3.3 Sơ đồ khối của một hệ kín có bộ PID

Hàm truyền của bộ PID được viết như sau:

Hình 3.16 Ví dụ về ảnh point cloud [8]

K P là hệ số khuếch đại của bộ PID.

K I là hệ số tích phân [s -1].

K D là hệ số vi phân [s].

K I gọi là hằng số thời gian tích phân.

K P gọi là hằng số thời gian vi phân. Điều chỉnh tỉ lệ (P): là phương pháp điều chỉnh tạo ra tín hiệu điều chỉnh tỉ lệ với sai lệch đầu vào. Điều chỉnh tích phân (I): là phương pháp điều chỉnh tỉ lệ để lại một độ lệch (offset) sau điều chỉnh rất lớn Để khắc phục ta sử dụng kết hợp điều chỉnh tỉ lệ với điều chỉnh tích phân Điều chỉnh tích phân là phương pháp điều chỉnh tạo ra tín hiệu điều chỉnh sao cho độ lệch giảm tới 0 Thời gian càng nhỏ thể hiện tác động điều chỉnh tích phân càng mạnh, ứng với độ lệch càng bé. Điều chỉnh vi phân (D): khi hằng số thời gian hoặc thời gian chết của hệ thống rất lớn điều chỉnh theo P hoặc PI có đáp ứng quá chậm thì ta sử dụng kết hợp với điều chỉnh vi phân Điều chỉnh vi phân tạo ra tín hiệu điều chỉnh sao cho tỉ lệ với tốc độ thay đổi sai lệch đầu vào.

Trong thực tế do các bộ điều khiển PID được sử dụng rất phổ biến trong công nghiệp, đặc biệt là trong lĩnh vực điều khiển quá trình nên các hãng sản xuất thiết bị tự động thường cung cấp các bộ điều khiển PID thương mại chế tạo bằng mạch khuếch đại thuật toán Các bộ PID được thiết kế chế tạo sẵn này rất tiện dụng Người sử dụng có thể chọn chế độ điều khiển P, I, PI, PD, PID tuỳ theo yêu cầu bằng cách tắt mở các thành phần chức năng tương ứng.

ROS (Robot Operation System)

ROS là một hệ điều hành siêu mã nguồn mở dành cho rô-bốt của bạn 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 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.[28]

Trước năm 2007, năm phát hành ROS, các kỹ sư robot không có kiến trúc phần mềm nhúng tiêu chuẩn Đó là lý do tại sao ROS là một bước tiến lớn ROS được phát triển và duy trì bởi một công ty ở California, Willow Garage, được thành lập vào năm 2006 bởi Scott Hassan, một trong những nhân viên đầu tiên của Google.[28]

3.5.2 Lợi ích của ros cho robot:

Tiêu chuẩn hóa và tái sử dụng: ROS cung cấp các giao thức, giao diện và thư viện chuẩn hóa cho việc phát triển robot Điều này giúp tiết kiệm thời gian và công sức trong việc phát triển phần mềm, và cho phép tái sử dụng lại các thành phần đã được xây dựng trước đó. Quản lý gói phần mềm: ROS sử dụng hệ thống quản lý gói phần mềm mạnh mẽ, cho phép bạn dễ dàng cài đặt, cập nhật và quản lý các phần mềm liên quan đến robot Điều này giúp quản lý và duy trì các thành phần phần mềm một cách hiệu quả.

Giao tiếp và tương tác giữa các thành phần: ROS cung cấp cơ chế giao tiếp linh hoạt cho các thành phần của robot, cho phép chúng tương tác và trao đổi dữ liệu dễ dàng Điều này tạo điều kiện thuận lợi cho việc phát triển các hệ thống phức tạp và tích hợp các công nghệ khác nhau vào robot.

Hỗ trợ đa nền tảng: ROS hỗ trợ nhiều nền tảng phần cứng và hệ điều hành, cho phép bạn phát triển và chạy các ứng dụng trên nhiều loại robot khác nhau Điều này tăng tính linh hoạt và sự mở rộng trong việc triển khai robot trên các môi trường và nền tảng khác nhau. Tổng hợp lại, sử dụng ROS giúp tăng năng suất, tiết kiệm thời gian và công sức, tạo điều kiện thuận lợi cho phát triển và triển khai robot Nó cung cấp các công cụ, giao thức và cộng đồng mạnh mẽ để hỗ trợ việc phát triển các ứng dụng robot phức tạp và tích hợp các công nghệ khác nhau một cách linh hoạt.

3.5.3 Các khái niệm cơ bản trong ROS

Node: Là một tiến trình độc lập chạy trong ROS Node thực hiện các chức năng cụ thể và có thể giao tiếp với các node khác thông qua các thông điệp.

Topic: Là cơ chế giao tiếp không đồng bộ trong ROS Các node có thể xuất bản (publish) dữ liệu vào một topic và đọc (subscribe) dữ liệu từ topic đó Topic giúp các node truyền thông tin và tương tác với nhau.

Message: Là dạng dữ liệu được sử dụng để truyền thông tin giữa các node trong ROS. Message định nghĩa cấu trúc dữ liệu và các trường thông tin mà node gửi và nhận thông qua các topic.

Service: Là cơ chế giao tiếp đồng bộ trong ROS Node có thể gửi yêu cầu (request) đến một service và nhận được phản hồi (response) từ service đó Service thường được sử dụng khi cần trao đổi dữ liệu theo yêu cầu chứ không phải liên tục như topic.

Package: Là đơn vị cơ bản trong ROS để tổ chức và chia sẻ mã nguồn Package chứa các file cấu hình, mã nguồn, thư viện và tài nguyên khác liên quan đến một chức năng cụ thể.

Launch file: Là file cấu hình XML dùng để khởi chạy và cấu hình một tập hợp các node và thông điệp trong ROS Launch file giúp tự động hóa quá trình khởi động và cấu hình môi trường làm việc.

Roscore: Là một thành phần quan trọng trong ROS, là máy chủ trung tâm để quản lý giao tiếp giữa các node và tài nguyên của hệ thống ROS Nó cung cấp các dịch vụ quan trọng như quản lý namespace, quản lý thông điệp, quản lý topic và service, và quản lý tài nguyên mạng Roscore đảm bảo tính nhất quán và đồng bộ trong giao tiếp giữa các node và là một phần không thể thiếu trong môi trường ROS [28]

CÁC GIẢI PHÁP THỰC HIỆN ĐỀ TÀI VÀ TÍNH TOÁN THIẾT KẾ HỆ THỐNG CƠ KHÍ

Thông số thiết kế

Trong các trung tâm hoặc siêu thị lớn chiều rộng lối đi giữa các kệ hàng với nhau là tử khoảng 1m đến 1,5m nên cần lựa chọn thiết kế robot có kích thước phù hợp có thể nằm trong khoảng kích thước như sau: chiều dài và chiều rộng không lớn hơn 0,5 m.

Hình 4.17 Hình ảnh lối đi trong siêu thị [25]

Về chiều cao của robot để thiết kế chiều cao hợp lý cho người sử dụng dễ dàng bỏ hàng hóa vào giỏ Nhóm đã tiến hành đo đạc và tham khảo trên mạng kích thước các mẫu xe đẩy hàng có trên thị trường Chiều cao tính từ mặt sàn tới đáy của giỏ đựng hàng có kích thước từ 0,4 m đến 0,5 m tùy thuộc vào dung tích chứa hàng của xe mà kích thước này thay đổi. Đây là các thiết kế tiêu chuẩn nên nhóm đã dựa vào thông số trên để đưa ra giới hạn chiều cao cho robot có thể nằm trong khoảng kích thước 0,4-0,5 m

 Tải trọng và vận tốc của robot:

Tổng khối lượng xe và tải trọng tối đa có thể ước lượng m = 50kg Tốc độ đi bộ trung bình của con người thường tử 0,7-1 m/s Nên tốc độ lớn nhất của xe: v = 3.6km/h = 1m/s.

 Cơ cấu chuyển động: Điều kiện di chuyển của robot là trên sàn gạch bằng phẳng, ít ma sát Có thể sử dụng bánh xe cao su để tăng độ bám Sử dụng cơ cấu chuyền trộng vi sai với hai bánh đẫn động và hai bánh lái để điều chỉnh hướng di chuyển của robot.

Một camera hoặc hệ thống camera để nhận dạng và theo dõi người , cũng như có thể đo được khoảng cách từ người đến robot ( sử dụng các loại camera 3D) Hệ thống xử lý và điều khiển:

Vi xử lý để điều khiển tốc độ của động cơ, sử dụng Single Board Computer để nhận dữ liệu hình ảnh và dữ liệu cảm biến độ sâu nhằm diện người và lấy được khoảng cách từ người đến camera.

Hệ điều hành robot (Robot Operating System): Được cài đặt trên Single Board Computer để quản lý và điều phối các hoạt động của robot.

Pin hoặc nguồn điện khác: Cung cấp nguồn điện cho robot Cần xác định công suất tối

Phương hướng và giải pháp thực hiện

Thiết kế robot có kích thước khoảng 430x480x480mm Với tải trọng tối đa 50kg nên phần đế và phần khung cần phải chắc chắn nền chọn vật liệu làm đế và trục là thép ss400, khung xe sử dụng thanh nhôm định hình có kích thước 20x20 Sử dụng hệ thống truyền động vi sai sử dụng hai bánh dẫn động độc lập Sử dụng động cơ hành tinh planet 12-24vdc công suất tối đa 30W.

Robot được trang bị camera kinect v2 để nhận dạng và đo được khoảng cách giữa người với robot Sử dụng cảm biến đo khoảng cách để phát hiện vật cản phía trước Sử dụng vi xử lý stm32 để diều khiển tốc độ của động cơ Board Jetson nano để xử lí các dữ liệu hình ảnh và cảm biến thu được từ camera.

Xe cần có khả năng phản ứng nhanh sự thay đổi của người trong di chuyển nên nhóm quyết định sử dụng xác định nhận dạng người bằng mô hình retrain SSD-MobileNetV2 trên tập dữ liệu COCO do đây là mô hình có độ chính xác và tốc độ xử lý cho ra kết quả tốt và nhanh nhất trong các mô hình nhận diện.

Hình 4.18 Hiệu suất của Jetson Nano khi chạy các mạng Machine Learning [30]

Xây dựng thuật toán nhận diện màu sắc để cho người dùng mặc áo có màu tương ứng với robot nhằm phân biệt được người sử dụng robot với những người xung quanh.

Xây dựng thuật toán điều khiển, bộ điều khiển PID để robot di chuyển ổn định Tính toán và thực nghiệm để đưa ra thông số PID phù hợp cho hệ thống.

Phần thiết kế cơ khí vẫn giữ nguyên thay đổi camera kinect v2 bằng camera D435i Real Sense để tăng chất lượng nhận diện hình ảnh và tiết kiệm năng lượng hơn, nhưng đổi lại giá thành cao.

Robot được trang bị cảm biến chuyển động như máy quét LiDAR hoặc cảm biến hồng ngoại để phát hiện vật cản và vị trí của robot.

Sử dụng thuật toán nhận diện và xây dựng bộ điều khiển pid như phương án 1 Xây dựng thuật toán điều khiển sử dụng cảm biến lidar để quét bản đồ siêu thị nhằm xác định được vị trí của robot trên bản đồ sau khi robot hoàn thành xong công việc có thể tự đi về vị trí cũ mà không cần người dẫn.

Lựa chọn phương án

Sau khi xem xét các phương án và các yếu tố liên quan, nhóm đã quyết định lựa chọn Phương án 1 để tiến hành thực hiện đề tài Dưới đây là một phân tích chi tiết và các lý do cho sự lựa chọn này:

Thiết kế robot: Đội tạo ra một robot chở hàng đi theo người lớn tuổi trong siêu thị với kích thước 430x480x480mm Để đảm bảo độ bền và khả năng chịu tải trọng tối đa 50kg, chúng tôi đã chọn vật liệu chắc chắn như thép SS400 cho đế và khung xe Khung xe được làm bằng thanh nhôm định hình 20x20 để tăng tính nhẹ nhàng và linh hoạt Để đảm bảo hiệu suất di chuyển tốt, chúng tôi sử dụng hệ thống truyền động vi sai với hai bánh dẫn động độc lập Động cơ hành tinh planet 12-24vdc công suất tối đa 30W được sử dụng để cung cấp sức mạnh cần thiết cho robot.

Thiết bị phát hiện và xử lý: Để nhận dạng và đo khoảng cách giữa người và robot, chúng tôi đã trang bị camera Kinect V2 Đây là một giải pháp phù hợp cho việc nhận dạng và định vị người dùng Để phát hiện và tránh vật cản phía trước, sử dụng cảm biến đo khoảng cách. Hơn nữa, vi xử lý STM32 và board Jetson Nano được sử dụng để điều khiển và xử lý dữ liệu từ các thiết bị phát hiện, đồng thời thực hiện các thuật toán và tính toán cần thiết.

Nhận dạng và xác định người: sử dụng các thuật toán nhận dạng người để xác định và nhận dạng người sử dụng robot Mô hình retrain SSD-MobileNetV2 trên tập dữ liệu COCO được sử dụng để nhận dạng và xác định vị trí người trong khung hình. Điều khiển robot: xây dựng thuật toán điều khiển và bộ điều khiển PI để đảm bảo robot di chuyển ổn định và chính xác Sử dụng thông tin từ các cảm biến và camera Kinect V2, tính toán và điều khiển tốc độ và hướng di chuyển của robot, đồng thời duy trì khoảng cách an toàn giữa robot và người dùng.

Sử dụng màu sắc phân biệt người để robot đi theo chưa phải là phương pháp tối ưu nhất vẫn còn nhiều hạn chế như ánh sáng hoặc trùng lặp màu sắc, nhưng do phần cứng hiện tại là sử dụng jetson nano 4gb không đủ tài nguyên để xây dựng thuật toán tracking Nên nhóm sử dụng cách này để phân biệt.

Trình tự công việc tiến hành

 Nghiên cứu và thu thập thông tin:

- Tìm hiểu về các yêu cầu và mục tiêu của đề tài.

- Nghiên cứu các công nghệ, phương pháp và giải pháp hiện có liên quan đến robot chở hàng và theo dõi nhận diện người trong siêu thị.

- Thu thập thông tin về cấu trúc và kích thước của siêu thị cụ thể, các quy định và ràng buộc liên quan đến việc triển khai robot trong không gian siêu thị.

- Xác định các yêu cầu phần cứng như camera Kinect, STM32 và Jetson Nano, cơ cấu vi sai, cảm biến, hệ thống di chuyển và nguồn điện.

- Thiết kế mạch vi xử lý để điều khiển và tương tác với các thành phần phần cứng khác.

- Xác định và tích hợp các cảm biến và hệ thống di chuyển vào robot.

- Lắp ráp và kiểm tra phần cứng để đảm bảo hoạt động ổn định và tương thích.

- Xác định và triển khai các thuật toán nhận dạng người, nhận dạng màu sắc và điều khiển.

- Tối ưu hóa phần mềm để đảm bảo hiệu suất tính toán và thời gian phản hồi nhanh.

 Kiểm tra và hiệu chỉnh:

- Thực hiện kiểm tra và hiệu chỉnh robot khi chạy thực tế.

- Đảm bảo rằng robot có thể nhận dạng và theo dõi người, di chuyển theo sau một cách an toàn và linh hoạt, và tương tác tốt với môi trường xung quanh.

- Điều chỉnh các thiết đặt và thông số để cải thiện hiệu suất và độ tin cậy của robot.

 Triển khai và vận hành:

- Triển khai robot chở hàng đi theo người trong siêu thị

- Đảm bảo sự an toàn và tuân thủ các quy định và ràng buộc của siêu thị trong quá trình vận hành.

- Theo dõi và duy trì robot, bao gồm việc kiểm tra và bảo dưỡng phần cứng, cập nhật phần mềm và xử lý sự cố (nếu có).

Tính toán lựa chọn động cơ

 Các thông số đầu vào của robot được ước lượng:

- Tổng khối lượng xe và tải trọng tối đa: m = 50kg

- Tốc độ lớn nhất của xe: v = 3.6km/h = 1m/s

- Chọn bánh xe dẫn động có đường kính dxe = 145mm = 0.145m (r = 0.0725m)

- Xe có hai động cơ dẫn động ở hai bánh sau, một bánh tự do dẫn hướng.

 Tính công suất cần thiết của động cơ Pct ≥ Plv + Pmm , với:

- Plv là công suất làm việc của động cơ

- Pmm là công suất mất mát qua bộ truyền

Hình 4.19 Hình phân tích lực tác động lên robot khi di chuyển

Theo định luật 2 Newton : F k −F ms = ma (4.1)

 = 0.01 : hệ số ma sát lăn, chọn theo bảng tham khảo bên dưới

Bảng 4.1 Hệ số ma sát lăn tham khảo [29]

Công suất đủ để kéo xe : P xe = F k v = 30.1 = 30(W) (4.5)

Công suất để đủ làm việc mỗi động cơ là : P lv =P xe

 Tính công suất mất mát P mm = ( 1 η - 1 ) P lv (4.7) Trong đó, ƞ = ƞđ ƞol là hiệu suất chung

Tra bảng 2.1 trang 31 [28] được: ƞ đ = 0.95: hiệu suất bộ truyền đai ƞ ol = 0.99: hiệu suất một cặp ổ lăn ƞ = ƞ đ ƞ ol = 0.94

P ct mỗi động cơ : P ct độngcơ ≥ 0.95 + 15 = 15,95(W)

 Tính tốc độ quay lớn nhất của động cơ n dc :

Theo cơ kĩ thuật : v = r. (4.8) Tốc độ quay tối đa của bánh xe:

Số vòng quay trên phút của bánh xe: n bx = ❑ bx 2 60 π = 13 30 π = 127,3(vòng/p)

 Tốc độ quay tối đa của động cơ: n dc = u n bx (v/p)

 Momen xoắn lớn nhất của động cơ :

 Momen xoắn lớn nhất trên trục bánh xe :

Bảng 4.2 Bảng thông số tính toán lựa chọn động cơ

Trục Trục động cơ Trục công tác

Từ (4.6), (4.10) và (4.11), chọn được động cơ Planet 24VDC 60W 600RPM, thỏa mãn các yêu cầu trên.

Hình 4.20 Động cơ Planet 12-24VDC 30WThông số kỹ thuật :

- Điện áp động cơ : 12 - 24V DC

- Mô men xoắn: 9500 gf.cm

- Tốc độ động cơ: 12000 vòng/phút

- Tốc độ qua giảm tốc: 600 vòng/phút

- Encoder: 12 xung, 2 kênh A B, nguồn 5v dc

- Động cơ 555 chất lượng, bền bỉ với thời gian.

- Hộp số mạnh mẽ với bộ nhông hành tinh chính xác, vận hành êm ái.

Hình 4.21 Kích thước động cơ [21]

Tính toán thiết kế bộ truyền đai

Để tăng mô men và giảm tốc cho động cơ, nhóm đã lựa chọn bộ truyền đai răng tỷ số truyền 2 Việc tính toán thiết kế trục bánh xe và lựa chọn bộ truyền đai răng được thực hiện xong xong với nhau đến khi chọn được bộ truyền đai và tính toán được trục phù hợp Sau nhiều lần tính toán, lựa chọn, nhóm đã có được bộ truyền đai phù hợp và kết quả tính toán để có căn cứ chế tạo trục bánh xe.

 Thông số đầu vào như sau:

Theo thông số của bảng ta chọn số răng Z 1> 10 Chọn Z 1 = 20 răng

 Mô đun của đai răng tính theo công thức: m = 35√ 3 P n 1 1 5 √ 3 0,01595 254,6 =1,39( mm) (4.12)

Trị số m tính được lấy theo tiêu chuẩn bảng 4.28 trang 69 [3]: m = 1.5mm, bước đai p = 4.71mm

 Theo bảng 1 (phụ lục 1) Chọn m = 1.5mm  Bước răng p: p = 4.71mm  Chiều dày đai H: H = 2.2mm.

 Chiều cao răng h : h = (0,60,9)m Chọn h = 0,6.2 = 1,2mm  Chọn h = 1,2mm Theo bảng 1 (phụ lục 1).

 Chiều rộng nhỏ nhất của răng: S = (1  1,2).m Chọn S =1.1,5 = 1,5mm

 Đường kính bánh đai số 1 : d 1=m z 1 = 1.5.20 = 30mm Chọn d 1 = 30mm Theo bảng 1

 Đường kính bánh đai số 2 : d 2=m z 2 = 1.5.40 = 60mm Chọn d 2 = 60mm Theo bảng 1 (phụ lục 1)

 Khoảng cách trục nhỏ nhất a min =0,5.( d 1+d 2 )+C (4.13)

 Khoảng cách trục lớn nhất a max = 2.( d 1+d 2 ) = 2.(30+60) = 180mm (4.14)

 Khoảng cách trục a chọn là : a = 95 mm

 Chọn theo tiêu chuẩn  b = 12.5 mm Theo bảng 3 (phụ lục 1) ψ d : độ dao động từ 6

 Chiều rộng bánh đai B : B = 12 + 2 = 14 (mm) Chọn B = 14mm Chọn theo tiêu chuẩn  B = 14mm Theo bảng 1 (phụ lục 1)

 Chọn theo tiêu chuẩn  L = 380mm  Số răng trên đai Z p = 40 Theo bảng 1 (phụ lục 1) v = π d 1 n 1

C r : hệ số tải trọng động có giá trị từ 1,3 – 2,4 ( giá trị càng lớn với thiết bị có va đập hoặc quá tải cục bộ thường xuyên ).

 Kiểm nghiệm khả năng chịu tải của đai :

- w t : tải trọng riêng cho phép (N/mm).

- C u : hệ số xét đến ảnh hưởng tỉ số truyền

- C c = 1 – khi không sử dụng con lăn , C c = 0,9 – khi sử dụng 1 con lăn C c = 0,8 – khi sử dụng 2 con lăn

- C b : hệ số xét đến ảnh hưởng chiều rộng đai

Kiểm nghiệm đồ bền mòn : p o = 1000 P 1 C r φ z o b h ≤ [P] z (4.20)

15.32 1,5 = 0,18 ≤ [P] z Theo bảng 2 (Phụ lục 1)Lực căng ban đầu : F o = (1÷1,3) q m b.v 2 = 1,7 (N)

Lực tác dụng lên trục : F r = (1 ÷ 1,2) F t = 1.22,06 = 22,06 (N)

Bảng 4.3 Bảng thông số tính toán đai sơ bộ

Chiều rộng nhỏ nhất của răng S (mm) 1,5 Đường kính bánh đai số 1 d 1 (mm) 30 Đường kính bánh đai số 2 d 2 (mm) 60

Chiều rộng bánh đai B (mm) 14

Số răng trên đai Z p (răng) 40

Khoảng cách trục nhỏ nhất a min (mm) 46,5

Khoảng cách trục lớn nhất a max (mm) 180

Số răng ăn khớp trục nhỏ (răng) 15

Dựa vào các thông số tính toán sơ bộ phía trên Nhóm đã quyết định chọn loại puly đai răng có thông số như sau: d tr ụ c = (0,8÷1,2) d độ ng c ơ  d độ ng c ơ = 8mm  d tr ụ c ≈ 10mm

Bảng 4.4 Bảng thông số đai thực tế

Số bánh răng chủ động Z1 20 răng

Số bánh răng bị động Z2 40 răng

Bề rộng bánh răng B 9 mm Đường kính vòng đỉnh của bánh răng chủ động D1 33 mm Đường kính vòng đỉnh của bánh răng bị động D2 63 mm Đường kính vòng chia của bánh răng chủ động d1 30mm Đường kính vòng chia của bánh răng bị d2 60mm động Đường kính trục puly chủ động d độ ngc ơ 8 mm Đường kính trục puly bị động d tr ụ c 12 mm v = π d 1 n 1

 Kiểm nghiệm lại khả năng chịu tải của đai : w t =22,06 b +q v 2

Thiết kế hình dạng robot

4.7.1 Thiết kế mặt đế, nắp đế, đế kê giỏ hàng và tấm đặt thiết bị cho robot

Bảng 4.5 Thông số các chi tiết gia công

Tên chi tiết Kích thước Vật liệu Phương pháp gia công Đế robot 460x410x3 Thép SS400 CNC lazer

Tấm nắp đế 370x270x2 mica Cắt CNC

Tấm để thiết bị điều khiển 280x270x5 mica Cắt CNC

Tấm kê giỏ hàng 370x270x2 Thép SS400 CNC lazer

Hình 4.22 Đế và nắp đế

Hình 4.23 Hình tấm kê giỏ hàng và tấm để thiết bị

- Thông số nhôm định hình:

 Vật liệu: hợp kim nhôm

- Sử dụng máy cắt và cắt thành những thanh theo đúng kích thước đã thiết kế sau đó lắp ghép lại với nhau bằng pad chữ T, L sử dụng bulong chữ T để cố định

Hình 4.24 Hình khung nhôm định hình 4.7.3 Lựa chọn bánh xe cho robot

 Bánh xe đa hướng Để đạt được tính linh hoạt trong di chuyển trong các môi trường khác nhau, chịu được tải trong lớn nhóm đã lựa chọn bánh xe đa hướng v1 25mm có thông số như sau:

- Màu sắc: vàng Mạ kềnh (Xi): Kẽm

- Chất liệu: Nhựa PP - thép

- Đường kính bánh xe: 25mm

- Độ dày bánh xe 14mm

Hình 4.25 Hình bánh xe đa hướng

Do bánh xe làm việc trong môi trường có ma sát thấp, nên cần có độ bám cao Hai bánh dẫn động chịu lực lớn nên phải chịu được tải trọng cao

Thông số bánh xe như sau:

- Kích thước: đường kính ngoài 145 mm Bề rộng: 40mm Trục bánh có thể lắp trực tiếp với các loại động cơ giảm tốc có đường kính trục từ 8 đến 24mm

- Vật liệu: Bánh xe được đúc bằng nhôm có độ bền cao, vỏ được bọc cao su mềm có nhiều rảnh nên có độ bám cao.

Hình 4.26 Hình bánh xe chủ động 4.7.4 Lựa chọn vật liệu cho trục bánh xe

Inox 304 tròn đặc có khả năng chống ăn mòn ,chống oxi hóa tốt ,chịu tải trọng cao,chịu được những sự va đập mạnh và có tính đàn hồi tốt nhờ độ bền kéo và giới hạn chảy cao Do đó nhóm quyết định chọn inox 304 tròn đặc làm trục nối từ puly qua bánh xe, có chiều dài: 150 mm

Hình 4.27: Hình trục inox 304 tròn đặc 4.7.5 Thiết kế 3D hệ thống cơ khí

Sau khi lên ý tưởng và thiết kế 3D thì đây là mô hình 3D và kích thước của robot:

Hình 4.28 Hình dáng và kích thước của robot

 Robot được thiết kế với chiều cao vừa đủ để người dùng không gặp khó khăn khi bỏ đồ lên robot, cùng với đó là chiều dài và rộng vừa đủ để di chuyển giữa các kệ hàng trong siêu thị.

 Mô hình có kết cấu chắc chắn nhờ các thanh nhôm định hình được gắn với nhau tạo thành một khối cứng cáp.

 Được trang bị các nút nhấn để sử dụng robot và màn hình hiển thị dung lượng pin.

 Trong đó mô hình được chia làm 2 phần:

- Phần đế robot: gồm các khung nhôm định hình, bộ truyền động và mạch điều khiển, camera cũng như nguồn cấp cho các thiết bị điện.

- Phần đựng hàng hoá: sử dụng tấm thép SS400 dày 2mm được kê lên 4 trụ nhôm định hình để đựng hàng hoá.

Tính toán ứng suất, đường kính và dung sai cho trục bánh xe

Chọn vật liệu chế tạo trục là Inox304 có σ b khoảng 500 Mpa và ứng suất xoắn cho phép

Khối lượng chia đều 2 bánh xe: m = 25kg

Mômen xoắn trục công tác: T = 1087,5Nmm Đường kính bánh xe: dxe = 145mm

 Xác định sơ bộ đường kính trục:

Vậy đường kính sơ bộ là d sb =√ 3 0,2.[ ] T = √ 3 0,2 1087,5 [15] = 7,13(mm) (4.24)

 Xác định giá trị các lực tác dụng lên trục:

Phản lực tác dụng lên trục bánh xe: N = mg = 9,8.25 = 245 N (4.25)

Lực vòng trên bánh xe: F t 2 = 2T d xe = 15(N) (4.26)

Lực vòng trên bánh đai răng lớn: F t1 = 2 d T

Lực tác dụng lên trục bánh xe đối với bộ truyền đai răng theo công thức : F r 1 = (1 ÷1.2)

 Tính phản lực tại các gối đỡ:

Phương trình cân bằng moment tại D theo Oyz

 R BY = 420,28Phương trình cân căng theo Oyz :

Hình 4.29 Biểu đồ tính toán nội lực của trục

Phương trình cần bằng moment tại D theo Oxz

Phương trình cần bằng moent tại D theo 0xz

Tính moment tương đương tại các vị trí:

 d D ≥√ 0,1.[ M tdD σ F ] = = √ 0,1.65 941,8 =5,2(mm) Để phù hợp với kết cấu cũng như lắp đặt bánh đai răng, ta chọn đường kính tại A là d A = 8mm và đường kính tại B là d B = 12 mm. Để phù hợp với kết cấu cũng như lắp đặt ổ lăn, ta chọn đường kính tại C bằng đường kính tại D, tức là d C = d D = 12 mm.

4.8.2 Tính toán dung sai cho trục bánh xe và ổ lăn

Vòng trong của ổ quay cùng với trục nên tải trọng lần lượt tác dụng lên khắp đường lăn của ổ và lập lại sau mỗi vòng quay Suy ra, tải trọng vòng trong ổ là chu kỳ.

- Tải trọng vòng trong là tải trọng chu kỳ

- Đường kính của ổ là: d = 10 mm < 100

→Trang 71 [2], Đường kính trục là 12mm → d = 12k6

→Tra bảng 2 trang 183 [2], ta có trục có kích thước là: d = 12k6 = 12 +0,001 +0,012

Tính toán động học

Bảng 4.6 Bảng kí hiệu các thông số tính toán động học được sử dụng

Vận tốc dài của robot (m/s) υ

Vận tốc góc của robot (rad/s) ω

Vận tốc góc trục bên phải (rad/s) ω R

Vận tốc góc trục bên trái (rad/s) ω L

Vận tốc góc động cơ bên phải (rad/s) ω dcR

Vận tốc góc động cơ bên trái (rad/s) ω dcL

Vận tốc dài trục bên phải (m/s) υ R

Vận tốc dài trục bên trái (m/s) υ L

Góc định hướng khi robot rẽ trái hoặc phải (rad) θ

Bán kính mỗi bánh xe (m) R = 0.0725

Khoảng cách hai tâm trục hai bánh xe (m) L = 0.37

Bán kính chuyển động của robot khi quay một góc θ R T

Xét trường hợp robot chuyển động thẳng:

Hình 4.30 Robot chuyển động thẳng

Robot của nhóm có hai bánh dẫn động vi sai Cấu tạo cơ bản robot được thể hiện ở hình bên trên Theo cơ kĩ thuật, vận tốc của cả hai bánh sau υ R và υ L có thể được tính: υ R =R ω R (4.29) υ L =R ω L (4.30)

Vận tốc của robot di động được tính bằng trung bình cộng vận tốc của bánh xe chuyển động bên phải và bên trái: υ=υ R +υ L

Xét trường hợp robot chuyển động xoay một cung tròn: Đường cong hoặc chiều dài của đường chuyển động của robot L T là trung bình cộng của cung trái L L và cung phải L R :

Hình 4.31 Mô tả chuyển động robot khi rẽ một cung

Góc định hướng θ của robot được tính như sau : θ=L T

Giải hệ hai phương trình trên: ω R =2ω+ωL

Do sử dụng bộ truyền đai tỷ số truyền là 2 nên tốc độ hai động cơ bên phải ω dcR và bên trái ω dcL : ω dcR =2υ+ω L

Từ 2 công thức 4.45 và 4.46 trên có thể thấy muốn xe cua 1 góc θ thì sẽ phụ thuộc vào 2 biến là vận tốc dài của xe và vận tốc góc của xe Việc lựa chọn vận tốc dài của xe và vận tốc góc của xe để cho ra góc cua phù hợp sẽ được trình bày ở chương 6.

TÍNH TOÁN THIẾT KẾ HỆ THỐNG ĐIỆN VÀ THIẾT KẾ BỘ PI CHO ĐỘNG CƠ

Sơ đồ khối hệ thống điều khiển

Sơ đồ 5.4 Sơ đồ hệ thống điện

Robot bao gồm 5 khối trong hệ thống điện:

 Khối đầu tiên cung cấp nguồn cho toàn bộ hệ thống, bao gồm: o Nguồn 12VDC từ ắc quy dùng để điều khiển 2 mạch H-Bridge cho 2 động cơ, nguồn 12VDC từ ắc quy hạ áp xuống 5V 5A để cấp cho board Jetson Nano o Nguồn sạc dự phòng 5VDC cung cấp cho vi điều khiển STM32F103C8T6 và encoder.

 Khối thứ hai là bộ xử lý chính của robot, có thể coi như bộ não Board Jetson Nano được sử dụng để tính toán và xử lý dữ liệu từ camera, cũng như truyền tham số điều khiển (tốc độ động cơ) cho khối thứ tư.

 Khối thứ ba là khối cảm biến, giống như cặp mắt của robot Camera Kinect v2 thu thập dữ liệu hình ảnh từ môi trường và được xử lý trên board Jetson Nano.

 Khối thứ tư là khối điều khiển, nhận lệnh tốc độ từ khối thứ hai và điều khiển PID tốc độ của động cơ.

 Cuối cùng, khối thứ năm là khối cơ cấu chấp hành, gồm 2 động cơ DC Servo.

Khối Nguồn

Khối nguồn trong hệ thống có chức năng cung cấp năng lượng cho toàn bộ hệ thống. Trong đó, khối nguồn chính là Ắc quy 12V 10Ah, cung cấp nguồn cho cả 2 mạch cầu H và Board Jetson Nano Ngoài ra, khối nguồn phụ, tức sạc dự phòng, cung cấp nguồn cho vi điều khiển STM và encoder trên động cơ.

 Tính toán, lựa chọn nguồn cung cấp chính 24VDC

Công suất từng linh kiện điện tử:

- Động cơ Planet 12-24VDC, công suất tối đa 30W

- Camera Kinect V2 , công suất tối đa 12W

- Jetson Nano 5V 4A, công suất tối đa 20W

- H-Bridge driver, bỏ qua do công suất tỏa nhiệt quá nhỏ

- Mạch hạ áp DC XY-3606 LM2596S 5V 5A, bỏ qua do công suất tỏa nhiệt nhỏ

- Với tổng công suất tối đa sử dụng là: 2.30 + 12 + 20 = 92W

- Công thức tính dung lượng pin cần thiết: A = PT V , trong đó (5.1)

Cho T = 1 giờ là thời gian xe có thể chạy liên tục với công suất tối đa như trên, với V 12V,  = 0.8 thì dung lượng cần thiết cho xe là A= 12∗0,8 92∗1 9,58 (Ah)

Với dung lượng 9,58Ah để chạy liên tục cho 1 giờ thì nhóm đã quyết định chọn 2 ắc quy Eagle Thái Lan YTS5s(GEL) 12V 5Ah để mắc song song với nhau và có được nguồn là 12V 10Ah.

Ngoài ra, nhóm còn dùng thêm nguồn sạc dự phòng để cấp nguồn riêng choStm32f103c8t6 và Encoder của động cơ.

Hình 5.32 Ắc Quy Eagle Thái Lan YTS5s(GEL) 12V 5Ah

Hình 5.33 Sạc dự phòng 15000mah

 Mạch hạ áp 5V-5A cấp nguồn Board Jetson Nano

Mạch hạ áp 5V-5A được sử dụng để hạ áp từ nguồn chính 24VDC xuống 5V cấp cho Board Jetson Nano.

Hình 5.34 Mô đun hạ áp DC-DC 24V/12V To 5V 5A

- Điện áp đầu vào: DC 9V - 36V.

- Sức chứa đầu ra: o Đầu vào 9 ~ 24V: Đầu ra 5.2V / 6A / 30W o Đầu vào 24 ~ 32V: Đầu ra 5.2V / 5A / 25W o Đầu vào 32 ~ 36V: Đầu ra 5.2V / 3.5A / 18W

Khối cảm biến (camera Kinect v2)

 Nhiệm vụ khối cảm biến

Camera Kinect v2 như trong sơ đồ khối đã trình bày, tương tự như cặp mắt của robot, giúp robot nhận biết môi trường xung quanh Đặc biệt, camera này cho phép robot phát hiện và theo dõi con người, giúp robot có thể đi theo và tương tác với con người một cách tự động.

Camera Kinect v2 là một thiết bị cảm biến đa chức năng được phát triển bởi Microsoft.

Nó được thiết kế đặc biệt để nhận dạng và theo dõi chuyển động của con người trong không gian 3D

 Những ứng dụng phổ biến của Camera Kinect V2:

- Nhận dạng và theo dõi chuyển động

Cảm biến chiều sâu (Depth Sensor): Sử dụng công nghệ Time-of-Flight (ToF) để đo khoảng cách từ camera đến các điểm trong không gian Cảm biến chiều sâu của Kinect v2 sử dụng ánh sáng hồng ngoại và cảm biến để đo lường thời gian mà ánh sáng mất đi và trở lại từ các đối tượng, từ đó xác định khoảng cách.

Cảm biến hình ảnh (RGB Sensor): Ghi lại hình ảnh màu sắc RGB thông qua một máy ảnh tích hợp Cảm biến hình ảnh của Kinect v2 cho phép nhận diện và theo dõi các đối tượng trong không gian.

Microphone Array: Camera Kinect v2 đi kèm với một mảng microphone để thu âm và xác định hướng tiếng nói Mảng microphone này cho phép nhận dạng và xử lý âm thanh, tạo điều kiện cho tương tác giọng nói với hệ thống.

Cấu tạo này cho phép Camera Kinect v2 thu thập thông tin chiều sâu và hình ảnh màu sắc, cùng với khả năng thu âm và xử lý âm thanh, tạo ra một hệ thống hoàn chỉnh để nhận dạng và theo dõi chuyển động trong không gian 3D.

Thông số kỹ thuật Realsense Camera D455 cần quan tâm:

- Khoảng cách hoạt động của cảm biến độ sâu: 0,5 – 5,0 m

- Tỷ lệ khung hình RGB: 30fps

- Độ phân giải khung hình ảnh màu: 1920x1080

- Độ phân giải khung hình ảnh depth: 512x424

- Tầm nhìn sâu: 70 o - 60 o (chiều ngang – chiều dọc)

Khối điều khiển

 Nhiệm vụ khối điều khiển

Sơ đồ 5.5 Sơ đồ khối điều khiển từ STM32

Trong khối điều khiển, vi điều khiển STM32F103C8T6 và driver cầu H được sử dụng để điều khiển 2 động cơ DC Servo STM32F103C8T6 nhận lệnh vận tốc được tính toán từ Jetson Nano và truyền qua giao thức UART (sử dụng UART2 trên STM32) Sau đó, nó thực hiện quá trình điều khiển tốc độ của 2 động cơ bằng cách sử dụng thuật toán PID.

STM32F103 là một vi điều khiển 32-bit thuộc dòng chip STM32 của STMicroelectronics Với lõi ARM Cortex-M3 và tốc độ tối đa 72MHz, nó cung cấp sự mạnh mẽ và linh hoạt trong việc xử lý các tác vụ STM32F103 có giá thành hợp lý và được hỗ trợ bởi mạch nạp và công cụ lập trình đa dạng, giúp dễ dàng phát triển và nạp chương trình.

Cấu hình các chân giao tiếp được sử dụng để điều khiển tốc độ động cơ:

- Timer 3 để tạo xung PWM cấp cho 2 động cơ

- Ngắt ngoài cho A11,A12 và B4,B6 lần lượt đọc encoder phải và trái

- 4 chân B8, B9 và B5, B7 lần lượt là chân đảo chiều động cơ phải và trái

- Sử dụng USART1 để giao tiếp với Netson Nano

Hình 5.36 Cấu hình các chân được sử dụng

Mạch cầu H là một mạch công suất cơ bản có ứng dụng phổ biến trong điều khiển động cơ điện DC Trên thị trường hiện có nhiều loại mạch cầu H, và sự lựa chọn phụ thuộc vào các yếu tố quan trọng như dòng điện, áp điều khiển và tần số, tùy theo ứng dụng cụ thể mà chúng được sử dụng.

Hình 5.37 Cấu tạo đơn giản cầu H [11]

Thông số của driver mà nhóm sử dụng:

Hình 5.38 Các ký hiệu của mạch [14]

 Điện áp sử dụng: 7 ~ 24 VDC (Limit: 6.5 ~ 27VDC).

 Công suất tối đa: 160W/1 động cơ (nếu chạy liên tục xin chỉ sử dụng 70% công suất tôi đa, khoảng 115W 1 động cơ và mắc thêm cầu chì bảo vệ quá tải).

Cơ cấu chấp hành (Động cơ DC Servo)

Động cơ DC Servo là một hệ thống gồm hai thành phần chính, bao gồm động cơ DC và encoder Ngoài ra, để tăng mô men quay và giảm tốc độ của động cơ có thể thêm một hộp số vào đó Động cơ Servo DC được sử dụng để điều khiển chính xác các thông số như góc quay, tốc độ và mô men Trong dự án này, nhóm đã lựa chọn cặp động cơ Planet Servo

DC với công suất 30W, tốc độ tối đa 600rpm Động cơ này sử dụng nguồn DC 24V và encoder với 12 xung Ngoài ra, nó còn được trang bị hộp số với tỉ số truyền 1:19,2.

Hình 5.39 Động cơ Planet DC Servo

 Động cơ DC Động cơ DC là một loại động cơ điện hoạt động bằng dòng điện một chiều Cấu tạo của động cơ bao gồm hai phần chính: stato (thường được gọi là khung cố định) và roto (thường được gọi là rotor hay cối quay) Phần stato chứa cuộn dây kích từ, thường được đặt trên khung cố định, tạo ra một trường từ xung quanh nó Phần roto chứa cuộn dây phần ứng, thường được đặt trên cối quay Khi dòng điện chạy qua cuộn dây phần ứng, lực điện từ tác động lên thanh dẫn phần ứng trong phương tiếp tuyến với mặt trụ của cối quay, tạo nên lực làm quay cối.

Tùy thuộc vào cách mắc cuộn dây trên roto và stato, chúng ta có các loại động cơ sau:

- Động cơ kích từ độc lập: Cuộn dây kích từ (cuộn dây stato) và cuộn dây phần ứng (roto) được mắc riêng biệt và có thể cấp nguồn riêng biệt.

- Động cơ kích từ nối tiếp: Cuộn dây kích từ được mắc nối tiếp với cuộn dây phần ứng. Đối với loại động cơ kích từ độc lập, cuộn dây kích từ có thể được thay thế bằng nam châm vĩnh cửu Khi đó, chúng ta có một loại động cơ điện một chiều sử dụng nam châm vĩnh cửu.

Trong trường hợp sử dụng động cơ kích từ độc lập với nam châm vĩnh cửu, việc thay thế cuộn dây kích từ bằng nam châm vĩnh cửu cho phép ta có một loại động cơ điện một chiều khác Để thay đổi tốc độ của động cơ này, ta chỉ cần điều chỉnh điện áp được cấp cho phần roto Tuy nhiên, việc cấp điện áp một chiều và thay đổi nó thường gặp khó khăn Vì vậy,người ta sử dụng phương pháp điều xung (PWM) để giải quyết vấn đề này.

Hình 5.40 Điều chế độ rộng xung PWM [6]

Mạch điều khiển động cơ sử dụng phương pháp PWM hoạt động dựa trên nguyên tắc cấp nguồn cho động cơ thông qua chuỗi xung đóng mở với tốc độ rất nhanh Nguồn DC được chuyển đổi thành tín hiệu xung vuông, chỉ gồm hai mức: 0V và xấp xỉ điện áp hoạt động Tín hiệu xung vuông này được cung cấp cho động cơ để điều khiển tốc độ quay.

Phương pháp PWM cho phép điều chỉnh tốc độ động cơ bằng cách thay đổi tỷ lệ thời gian xung cao so với tổng thời gian xung Khi tỷ lệ này càng cao, động cơ sẽ chạy với tốc độ càng nhanh Trong mạch điều khiển, việc điều chỉnh tốc độ được thực hiện bằng cách điều chỉnh thời gian mức cao của chuỗi xung vuông Điều này ảnh hưởng trực tiếp đến công suất trung bình cấp cho động cơ và tác động lên tốc độ quay của nó.

Ví dụ, trên hình 4.11, ta có thể thấy rằng dãy xung điều khiển trên cùng có độ rộng xung nhỏ, dẫn đến động cơ chạy chậm Ngược lại, khi độ rộng xung càng lớn (như dãy xung thứ

2 và thứ 3), động cơ DC sẽ chạy với tốc độ nhanh hơn Phương pháp điều khiển PWM này cho phép đạt được sự điều chỉnh chính xác và linh hoạt của tốc độ động cơ, giúp đáp ứng các yêu cầu và ứng dụng đa dạng trong điều khiển động cơ DC.

Encoder được sử dụng để xác định vị trí góc của đĩa quay hoặc quãng đường di chuyển cho bánh xe, trục động cơ hoặc bất kỳ thiết bị nào có khả năng quay và cần xác định độ dịch chuyển.

Có hai loại encoder chính là encoder tuyệt đối (absolute encoder) và encoder tương đối (incremental encoder) Encoder tuyệt đối cung cấp thông tin vị trí encoder một cách chính xác mà không cần qua bất kỳ xử lý nào, trong khi encoder tương đối yêu cầu xử lý tín hiệu từ encoder trước khi có thể xác định vị trí quay của động cơ Với chi phí thấp hơn và quá trình xử lý đơn giản, encoder tương đối được lựa chọn trong phạm vi đề tài này.

Hình 5.41 Mô tả cấu tạo cơ bản encoder tương đối [9]

Bố cục cơ bản của encoder tương đối gồm ba thành phần chính: đĩa quay với các rãnh, nguồn phát và nguồn thu Theo cấu trúc đơn giản như hình minh họa, mỗi khi động cơ thực hiện một vòng quay, ánh sáng hồng ngoại từ nguồn phát sẽ đi qua các khe nhỏ, đến cảm biến quang và cảm biến sẽ thu nhận một tín hiệu Số khe trên đĩa tương ứng với độ phân giải của encoder Để điều khiển động cơ, ta cần biết độ phân giải của encoder đang được sử dụng Độ phân giải ảnh hưởng đến độ chính xác của quá trình điều khiển và phương pháp điều khiển.

Encoder tương đối thường có hai kênh A và B Trên encoder, có một cặp bộ phát và thu khác được đặt trên cùng một vòng tròn với kênh A, nhưng lệch một chút Đây là kênh B của encoder Tín hiệu xung từ kênh B có cùng tần số với kênh A, nhưng lệch pha 90 độ Bằng cách kết hợp kênh A và kênh B, ta có thể xác định hướng quay của động cơ.

Encoder được nhóm sử dụng có số xung là 12 xung trên 1 vòng quay của trục chính động cơ

Khối xử lý dữ liệu chính

 Nhiệm vụ khối xử lý dữ liệu chính

Sơ đồ 5.6 Sơ đồ khối xử lí dữ liệu chính

Trong sơ đồ khối của hệ thống điều khiển điện, khối xử lí dữ liệu được triển khai trên Board Jetson Nano, chức năng tương tự như bộ não của robot Board này cho phép robot cảm nhận và tương tác với môi trường, xác định vị trí của robot so với người thông qua dữ liệu từ khối cảm biến (Camera Kinect V2) Dữ liệu này được sử dụng để điều khiển và hướng dẫn robot bằng cách tính toán và gửi lệnh vận tốc xuống STM32 thông qua giao tiếp UART Để quản lý các luồng dữ liệu phức tạp, chạy đồng thời một cách linh hoạt và thuận tiện cho việc truyền nhận dữ liệu, cũng như cho phép lập trình bằng nhiều ngôn ngữ (Python, C++, ), nhóm đã áp dụng ROS (Robot Operating System) vào hệ thống.

Sơ đồ 5.7 Sơ đồ hệ thống các node

Nhiệm vụ và các bước thiết lập node xử lí ảnh và dẫn hướng cho robot (node

“process_image” và “data_processing”) sẽ được trình bày ở chương 6.

Jetson Nano Developer Kit là một máy tính nhỏ gọn và mạnh mẽ của NVIDIA được thiết kế để chạy nhiều mạng neural song song cho các ứng dụng như phân loại hình ảnh, phát hiện đối tượng, phân đoạn và xử lý giọng nói.

Nó cũng có thể được sử dụng để phát triển các ứng dụng IoT và robot Ngoài ra, Jetson Nano Developer Kit hỗ trợ nhiều framework máy học mã nguồn mở như TensorFlow, PyTorch, Caffe và MXNet.

Bên cạnh đó, NVIDIA cung cấp các dự án mã nguồn mở cho Jetson Nano Developer Kit trên GitHub Các dự án này bao gồm các ví dụ về phân loại hình ảnh, phát hiện đối tượng và xử lý giọng nói Ngoài ra, NVIDIA cũng cung cấp các công cụ hữu ích như thư viện PythonGPIO của Jetson Nano Developer Kit và nó tương thích với các cảm biến và phụ kiện thông dụng.

Hình 5.42 Máy tính nhúng Jetson Nano Developer Kit [10]

Thiết lập bộ điều khiển PI cho động cơ

Cấu trúc bộ điều khiển PI điều khiển tốc độ động cơ được xây dựng như sơ đồ bên dưới:

Sơ đồ 5.8 Sơ đồ bộ điều khiển PI tốc độ động cơ

 SP: tốc độ đặt hay tốc độ động cơ mong muốn

 MV: điện áp cấp cho động cơ, cụ thể là giá trị PWM

 PV: tốc độ thực tế của động cơ được tính từ giá trị encoder trả về

 e = SP – PV: sai số giữa tốc độ mong muốn và tốc độ thực tế

 Tìm hàm truyền tương đối của động cơ từ thực nghiệm Động cơ được sử dụng là động cơ DC Servo 30W 600 (vòng/phút), có hộp giảm tốc với hệ số 19,2 , encoder 12ppr Kiểm tra thực tế tốc độ lớn nhất của động cơ khoảng 611 (vòng/ phút), encoder 12ppr

Công thức tính tốc độ động cơ ndc từ giá tị xung encoder: n dc = M∗60 ppr∗u∗N∗T (5.2)

 T = 10ms là thời gian lấy mẫu, tức thời gian mỗi lần đọc giá trị xung encoder

 ndc là tốc độ động cơ trong khoảng thời gian T

 M là là số xung encoder trong khoảng thời gian T

 ppr = 12 là số xung encoder mỗi vòng chưa qua hộp giảm tốc của động cơ

 u = 19,2 là hệ số hộp giảm tốc

 N = 4 là chế độ đọc encoder X4 (xét trạng thái cả hai kênh A,B của encoder)

Các bước tìm được hàm truyền tương đối của động cơ bằng System Identification Tool của Matlab:

Bước 1: Chuẩn bị dữ liệu đầu vào là bảng dữ liệu về sự thay đổi tốc độ của động cơ từ lúc bằng 0 đến lúc đạt được tốc độ lớn nhất ứng với điện áp 24.3VDC (nguồn tổ ong) Cấp điện áp 24.3 VDC (từ nguồn tổ ong) và tiến hành ghi nhận tốc độ động cơ thay đổi từ lúc bằng 0 cho đến lúc đạt được tốc độ lớn nhất với thời gian lấy mẫu T = 10ms Dữ liệu thu thập khoảng 80 giá trị.

Hình 5.43 Dữ liệu thu thập được về sự thay đổi tốc độ động cơ phải

Bước 2: Lưu dữ liệu thu thập được vào file excel và dùng công cụ System Identification Tool của Matlab để tìm hàm truyền tương đối Nhập dữ liệu đo được từ file excel vào matlab:

 Nhập cột điện áp bằng lệnh: o u1 = xlsread('left_motor.xlsx',1,'B1:B80')Nhập cột tốc độ bằng lệnh: o y1 = xlsread('left_motor.xlsx',1,'A1:A80')

 Lưu 2 file dữ liệu vừa nhập vào matlab thành một file thống nhất bằng lệnh: save ident u1 y1

 Mở giao diện System Identification Tool bằng lệnh: ident

Hình 5.44 Giao diện System Identification Tool

Nhập dữ liệu là sự thay đổi tốc độ động cơ từ lúc bằng 0 đến khi đạt tốc độ lớn nhất:

Hình 5.45 Dữ liệu đã được nhập vào System Identification Tool

Sau khi dữ liệu đã được nhập vào System Identification Tool, đồ thì dữ hiệu liệu đầu vào là điện áp (volt) và đầu ra là tốc độ động cơ theo thời gian sẽ được biểu diễn bên dưới.

Hình 5.46 Đồ thì biểu diễn sự thay đổi tốc độ động cơ (RPM) ứng với điện áp 24.3VDC theo thời gian (s)

Chọn hàm truyền của động cơ phải (Right Motor) có dạng bậc nhất không trễ:

Nhóm tìm được các thông số hàm truyền của động cơ phải:

Hình 5.47 Các thông số hàm truyền tương đối động cơ phải tìm được

Hàm truyền động cơ trái có dạng: F RM = K s+1 Với:

 PV: tốc độ đo được sau mỗi thời gian lấy mẫu T = 10ms

Sử dụng Matlab và thử nghiệm với động cơ thực tế nhiều lần các giá trị Kp, Ki, tìm được hai thông số của bộ điều khiển PI phù hợp nhất cho từng động cơ:

Thông số bộ điều khiển PI của động phải:

Thông số bộ điều khiển PI của động cơ trái:

Với 2 thông số Kp và Ki như trên thì tốc độ của xe được chạy ổn định với dao động khá nhỏ, thực nghiệm bộ điều khiển PI sẽ được trình bày ở chương 7.

XÂY DỰNG THUẬT TOÁN XỬ LÝ ẢNH

Nhiệm vụ thuật toán

 Trong hệ thống, module xử lý ảnh có hai nhiệm vụ chính như sau: Định vị đối tượng mục tiêu: Tùy theo bài toán cụ thể, module này có thể được sử dụng cho cả global planning và local planning Trong trường hợp global planning, nhiệm vụ của module là định vị và xác định tọa độ của đối tượng cần bám theo, dựa trên thông tin đã biết trước Điều này cho phép điều khiển robot đến một vị trí cụ thể Trong trường hợp local planning, module sẽ tập trung vào đối tượng gần phía trước của robot và cung cấp thông tin về đối tượng đó để định vị và đưa ra quyết định điều khiển phù hợp.

Hỗ trợ điều hướng robot: Module này hỗ trợ quá trình điều hướng của robot bằng cách sử dụng dữ liệu từ quá trình phân tích hình ảnh từ camera, được gọi là visual odometry. Visual odometry giúp xác định vị trí của robot và giảm sai số tích luỹ từ wheel odometry (dựa trên encoder) trong thời gian dài Ngoài ra, module cũng hỗ trợ định hướng robot để tránh vật cản và đi qua không gian hẹp khi robot đang bám theo đối tượng.

Trong hệ thống, thuật toán xử lý ảnh được chia thành hai node chính là "process_image" và “data_processing

- Tín hiệu lấy từ camera.

- Trạng thái nút nhấn để ra lệnh cho module hoạt động.

 Đầu ra có các thông số chính cho thuật toán điều khiển:

- Góc (đơn vị độ) của robot so với người

Sơ đồ 6.11 Input và output của module xử lý ảnh

Thuật toán phát hiện người

Để giải quyết bài toán phát hiện vị trí người trong khung hình với yêu cầu về dung lượng nhẹ và tốc độ cao, nhóm đã quyết định sử dụng mô hình SSD Mobilenet-v2, được hỗ trợ bởi NVIDIA và đã được huấn luyện trước trên tập dữ liệu COCO Mô hình này đã đạt được tốc độ thời gian thực (39 FPS) trên Jetson Nano với khả năng dự đoán 91 đối tượng.

Nhóm đã lựa chọn mô hình pre-trained này để tiết kiệm thời gian huấn luyện lại Trong bài toán nhận diện người, chỉ cần hiển thị các đối tượng được dự đoán là người Để tránh nhiễu, nhóm chỉ chọn những đối tượng có độ chính xác dự đoán (confidence) trên ngưỡng 0.5.

Sau khi load mô hình bằng thư viện Jetson Inference, nó sẽ tự động chuyển đổi mô hình từ định dạng PyTorch (.pth) sang TensorRT (.engine) để thực hiện quá trình inference

Hàm để tải mô hình được jetson-inference hỗ trợ là : jetson.inference.detectNet("ssd-mobilenet-v2", threshold=0.5)

Sau khi nhận ảnh từ node “process_img”, cần chuyển vị trí lưu trữ để xử lý sang GPU nhằm tăng thêm tốc độ inference, sử dụng hàm: jetson.utils.cudaFromNumpy()

Thiết lập node xử lý nhận diện người

 Node này có tên là “process_img”, giao tiếp với các topic:

- “/color_image”: ảnh sau khi lấy từ camera và gửi dữ liệu vào node “process_image”.

- “/is_clothes” : nhận diện màu sắc của áo

- “/distance”:khoảng cách giữa người và robot

- “/alpha”: góc giữa người so với robot.

- “/is_person”: thông số cho biết có người trong khung hình hay không

Thiết cho thuật toán điều khiển (0 là không có, 1 là có)

- is_person”: thông số cho biết có người trong khung hình hay không

- “/is_clothes” : thông số cho biết có áo trong khung hình hay không

Sơ đồ 6.12 Input và output của node “process_img”

Sơ đồ 6.13 Sơ đồ khối của Node “process_img”

6.3.1 Xử lý dữ liệu từ camera và tìm distance giữa người và robot

Vì camera được đặt thẳng đứng, lúc này trục x sẽ vuông góc với mặt phẳng nền, suy ra trục x song song với vector pháp tuyến của mặt phẳng nền.

Hình 6.49 Hệ trục tọa độ của camera [31]

Node “process_image” có nhiệm vụ lấy dữ liệu trực tiếp từ camera bao gồm ảnh depth và ảnh RGB.

RGB được căn chỉnh vào cùng một khung hình có độ phân giải 524x 412 tương ứng chiều rộngvà dài Vì camera được đặt thẳng đứng nên cần phải xoay khung hình một góc 90 độ cùng chiều kim đồng hồ để mô hình phát hiện người một cách chính xác hơn.

Hình 6.50 Vị trí camera trên robot

Hình 6.51 Mô tả hình học phép chiếu 3D Đặt P (X, Y, Z) là một điểm point cloud trong không gia n 3D M (x, y) là một điểm trên ảnh RGB tương ứng với P. u, v là tọa độ tương ứng của M (x, y) (mm). w, h là chiều rộng và chiều dài của ảnh (p ixel) d là khoảng cách đến P (m). f là tiêu cự camera (mm). Áp dụng tam giác đồng dạng, ta có: u

S x , S y là số pixel/mm f x , f y là tiêu cự camera theo chiều ngang và dọc (pixel)

C x , C y là điểm tâm của mặt phẳng image(pixel)

Từ (6.1) và (6.2) suy ra được :

⌋ (6.3) Áp dụng công thức khoảng cách một điểm đến góc tọa độ Oxyz, Khoảng cách từ của điểm M trên ảnh RGB tương ứng với P trong không gian: d 2 = X 2 + Y 2 + Z 2 d 2 = Z 2 + ( X−C x ) 2 Z

Vì camera để xoay nên tọa độ trên ảnh gốc thay đổi theo công thức : x = y r C x = C yr y = w - x r C y = C xr (6.5) x r , y r , C xr , C yr là tọa độ trong ảnh đã xoay

6.3.2 Xử lý dữ liệu để nhận dạng người và phân loại

Khối “Detection” : Như đã đề cập ở phần đầu sau khi lấy dữ liệu từ camera được chuẩn hóa ta sử dụng hàm để tải mô hình được jetson-inference hỗ trợ là : jetson.inference.detectNet("ssd-mobilenet-v2", threshold=0.5).

Khối “Classifier ”: Lấy dữ liệu từ ảnh HSV sau khi được chuẩn hóa và sử dụng hàm cv2.findContours trong thư viện của opencv để phân loại màu sắc của áo nhằm phân loại đối tượng robot theo dõi khác biệt so với các đối tượng khác.

Sơ đồ 6.14 Sơ đồ khối của khối “Classifier”

Giai đoạn I : Dùng để giới hạn màu sắc để phân loại đối tượng.

Giai đoạn II : Dùng để xóa nhiễu và lọc các thông tin liên quan đến đối tượng cần nhận dạng.

Giai đoạn III : Dùng để tăng số lượng pixel chiều dọc và chiều ngang sau khi lọc nhiễu có một phần bị mất đi

Giai đoạn IV : Dùng đường viền để bao quang đối tượng cần nhận diện.

6.3.3 Dùng dữ liệu đã được xác định để tìm alpha giữa robot và người

Hình 6.52 Mô tả hình học phép chiếu 3D

 Tính toán góc alpha giữa robot và người

Dựa vào hình, để tính góc từ điểm P so với robot chiếu điểm P vuông góc với trục Y tạo thành điểm P Y Góc alpha được tạo bởi OP và O P Y trong mặt phẳng PO P Y

Trong tam giác vuông PO P Y : α = sin ( OP Y ) = sin ( Y d ) (6.6)

Từ công thức (6.2) và (6.3) suy ra: α = sin ( √ f 2 +( X−C y−C x ) 2 +(Y y −C y ) 2 ) (6.7)

Vì ảnh tính toán trong phép chiếu là ảnh gốc, ảnh phát hiện người là ảnh đã xoay nên áp dụng công thức (6.5) ta được công thức tính góc alpha: α = sin ( √ f 2 +( y r −C w− yr ) x 2 r +(w −C xr −x r −C xr ) 2 ) (6.8) Với x_r , y_r ở đây tương ứng với tọa độ tâm của boudingbox (pixel)

C_xr , C_yr là tọa độ tâm của khung hình (pixel) α là góc giữa người và robot ( độ )

Thiết lập node “data_processing”

 Node này giao tiếp với các topic như sau:

- “/distance”:khoảng cách giữa người và robot

- “/is_person”: thông số cho biết có người trong khung hình hay không

- “/alpha”: góc giữa người so với robot

- “/is_clothes” : nhận diện màu sắc của áo

Thiết cho thuật toán điều khiển (0 là không có, 1 là có).

- “/is_clothes” : thông số cho biết có màu áo trong khung hình hay không

- “/is_person”: thông số cho biết có người trong khung hình hay không

- “/vel_right”: tốc độ của bánh xe phải

- “/vel_left”: tốc độ của bánh xe trái

Sơ đồ 6.15 Input và output của node “data_processing”

Nhiệm vụ chính của node này dùng để chuyển đổi dữ liệu thành vận tốc của động cơ. Sau khi nhận được các dữ liệu từ các publisher “/is_person”,“/is_clothes”,“/distance” và

“/alpha” thì sẽ được ra các công thức được sử dụng trong node “data_processing” để biến đổi thành vận tốc và gửi giá trị cho động cơ của xe thông qua STM32 Detect_status bao gồm cả “/is_person”,“/is_clothes”.

Giải thuật dẫn hướng cho robot

Robot sẽ di chuyển và duy trì khoảng cách với người là 1m Khi người lệch 1 góc alpha so với xe thì xe sẽ chuyển động 1 cung cố định theo người Khi mất người thì xe sẽ quay tại chỗ đến khi tìm thấy người sẽ tiếp tục bám theo Với khoảng cách 1m là đủ để người dùng không phải bước quá dài tới xe và xe vẫn đủ khoảng cách để xử lý

Hình 6.53 Vị trí người so với robot

Sơ đồ 6.16 Sơ đồ khối cho node “data_processing”

 Alpha: góc lệch giữa xe và người

 d: là viết tắt của distance, là khoảng cách giữa xe và người

Phương pháp xe di chuyển như sau: người dùng sẽ nhấn nút nguồn để khởi động máy và nhấn start để xe bắt đầu nhận dữ liệu và chạy Xe sẽ dựa vào biến alpha và distance để di chuyển theo bám theo người Xe sẽ đi thẳng theo người với tốc độ tuyến tính từ 0,3-0,7m/s thay đổi so với khoảng cách d dao động từ 1-3m, sau khi thực nghiệm nhiều lần thì nhóm đã chọn được góc alpha phù hợp để xe đi thẳng là -10 o

Ngày đăng: 09/08/2023, 17:33

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

TÀI LIỆU LIÊN QUAN

w