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

Thiết kế hệ thống cánh tay robot di động ứng dụng thuật toán marker vision tracking

82 20 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

Tiêu đề Thiết kế hệ thống cánh tay robot di động ứng dụng thuật toán marker vision tracking
Tác giả Phạm Phước Dũng
Người hướng dẫn TS. Nguyễn Hoàng Giáp
Trường học Đại học Bách Khoa - ĐHQG TP. HCM
Chuyên ngành Kỹ thuật Điều khiển và Tự động hóa
Thể loại Luận văn thạc sĩ
Năm xuất bản 2023
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 82
Dung lượng 1,89 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • CHƯƠNG 1. GIỚI THIỆU (15)
    • 1.1. Tính cấp thiết của đề tài (15)
    • 1.2. Mục tiêu của đề tài (18)
    • 1.3. Bố cục của luận văn (19)
  • CHƯƠNG 2. CƠ SỞ LÝ THUYẾT (19)
    • 2.1. Xây dựng hệ thống robot tự hành sử dụng SLAM (20)
      • 2.1.1. Tính toán Odometry của robot từ dữ liệu encoder (20)
      • 2.1.2. Ứng dụng SLAM cho robot tự hành trên nền tảng ROS (23)
    • 2.2. Thuật toán nhận dạng Aruco marker (39)
  • CHƯƠNG 3. PHƯƠNG PHÁP MARKER-VISION TRACKING (42)
    • 3.1. Passive marker (42)
    • 3.2. Optical Tracking Camera (43)
    • 3.3. Trích xuất dữ liệu khoảng cách từ camera đến marker (44)
  • CHƯƠNG 4. THIẾT KẾ HỆ THỐNG CÁNH TAY ROBOT DI ĐỘNG (45)
    • 4.1. Kiến trúc hệ thống điều khiển cho cánh tay robot di động (45)
    • 4.2. Thiết kế hệ thống robot cho ứng dụng pick-and-place (47)
      • 4.2.1. Thiết kế cơ khí hệ thống robot (47)
      • 4.2.2. Thiết kế khay chứa bảng mạch cho ứng dụng pick-and -place (49)
    • 4.3. Xây dựng giải thuật điều khiển chính (51)
      • 4.3.1. Giải thuật điều khiển phần thân robot tự hành sử dụng phương pháp Marker-Vision Tracking (51)
    • 4.4. Xây dựng phần mềm điều khiển (56)
      • 4.4.1. Lập trình giao diện điều khiển của phần mềm (56)
      • 4.4.2. Lập trình giao tiếp giữa phần mềm với khối Main Control (59)
  • CHƯƠNG 5. THỰC NGHIỆM VÀ KẾT QUẢ (63)
    • 5.1. Thực nghiệm xác định sai số lặp lại của camera RGB-D (63)
    • 5.2. Thực nghiệm xác định sai số lặp lại của cánh tay robot và camera RGB-D. 51 5.3. Thực nghiệm xác định sai số chính xác của robot tự hành khi không sử dụng phương pháp Marker-Vision Tracking (65)
    • 5.4. Thực nghiệm xác định sai số chính xác của robot tự hành khi sử dụng phương pháp Marker-Vision Tracking (75)
  • CHƯƠNG 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (78)
    • 6.1. Những kết quả đạt được (78)
    • 6.2. Những hạn chế còn tồn tại (78)
    • 6.3. Hướng phát triển (79)
  • TÀI LIỆU THAM KHẢO (80)

Nội dung

Trong nhiệm vụ vận chuyển đồ vật ở những khoảng cách xa sử dụng cánh tay robot di động, phần thân robot tự hành đòi hỏi phải đạt được độ chính xác cao thì cánh tay robot phía trên mới có

GIỚI THIỆU

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

Ngày nay, robot được sử dụng rộng rãi trong các ngành công nghiệp để thực hiện các nhiệm vụ đơn giản, tuần tự hoặc nguy hiểm thay cho con người Việc tích hợp robot vào dây chuyền sản xuất không chỉ nâng cao chất lượng sản phẩm mà còn cải thiện điều kiện làm việc cho công nhân và tối ưu hóa việc sử dụng tài nguyên cho doanh nghiệp Tuy nhiên, nhược điểm lớn của robot công nghiệp hiện tại là sự kém linh hoạt, khi chúng thường phải cố định trên mặt phẳng hoặc di chuyển trên trục trượt, hạn chế không gian làm việc và tiềm năng hoạt động Một giải pháp khả thi là kết hợp tay máy với khung robot di động, hệ thống camera và cơ cấu gắp vật.

Hình 1.1 Hệ thống cánh tay robot di động [1]

Thị trường Mobile Manipulator toàn cầu ước tính đạt 470,2 triệu USD vào năm 2021 và dự kiến sẽ tăng trưởng với tốc độ CAGR 11,1% trong giai đoạn 2022-2027 Sự gia tăng chi phí lao động ở các nước phát triển và sự phức tạp trong quy trình sản xuất đang thúc đẩy nhu cầu về giải pháp tự động hóa Những yếu tố này đang làm tăng đáng kể việc tích hợp cánh tay robot vào robot di động, góp phần vào sự phát triển của thị trường.

Hệ thống cánh tay robot di động của KUKA hoạt động trong phòng sạch đã thu hút sự quan tâm tại Việt Nam, với nhiều công ty công nghệ và trường đại học kỹ thuật thực hiện các luận văn và đề tài nghiên cứu khoa học liên quan trong những năm gần đây.

Hình 1.3 Hệ thống cánh tay robot di động do công ty VNATECH phối hợp với Khoa cơ khí Trường Đại học Công nghiệp Hà Nội thực hiện [4]

Các hệ thống cánh tay robot di động hiện nay chủ yếu sử dụng cảm biến từ để di chuyển chính xác Tuy nhiên, việc lắp đặt line từ trong sàn nhà máy hoặc kho bãi gặp khó khăn do nhiễu từ trường và cần can thiệp vào cấu trúc sàn Do đó, phương pháp marker-vision tracking trở thành giải pháp thay thế hiệu quả, không ảnh hưởng đến từ trường và hệ thống sàn nơi robot hoạt động.

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

Trong luận văn thạc sĩ này, học viên phát triển một hệ thống cánh tay robot di động, kết hợp giữa robot tự hành và cánh tay robot 5 bậc Hệ thống áp dụng công nghệ theo dõi marker-vision và camera độ sâu để thực hiện nhiệm vụ gắp thả vật chính xác ở khoảng cách xa.

Phương pháp marker-vision tracking cho phép robot tự hành di chuyển đến vị trí gắp với sai số tối thiểu mà không cần sử dụng line từ Tuy nhiên, sai số này vẫn tồn tại và có thể ảnh hưởng đến khả năng gắp vật chính xác của cánh tay robot.

Camera độ sâu được gắn trực tiếp trên cánh tay robot giúp khắc phục sai số bằng cách xác định chính xác vị trí của vật thể trên mặt phẳng Nhờ đó, cánh tay robot có khả năng di chuyển đến vị trí đó và gắp vật một cách chính xác.

Luận văn thiết kế một ứng dụng điều khiển và giám sát hệ thống, nhằm nâng cao tính an toàn và khả năng bảo trì của hệ thống Nó áp dụng kiến thức về lập trình điều khiển cho robot di động, xử lý ảnh, giao tiếp qua Robot Operating System (ROS) và USB Serial, cũng như lập trình Matlab và thiết kế ứng dụng trên Qt, sẽ được trình bày chi tiết trong các phần tiếp theo của đề tài.

Bố cục của luận văn

Lý do hình thành đề tài, tình hình nghiên cứu liên quan đến cánh tay robot di động và mục tiêu cần đạt được khi thực hiện đề tài.

CƠ SỞ LÝ THUYẾT

Xây dựng hệ thống robot tự hành sử dụng SLAM

2.1.1 Tính toán Odometry của robot từ dữ liệu encoder

Robot tự hành trong luận văn được thiết kế theo mô hình robot dẫn động hai bánh (differential drive robot) Giả sử robot chuyển động không trượt, tọa độ của robot sẽ được ước lượng dựa vào giá trị hồi tiếp từ encoder Trong hệ tọa độ, robot di chuyển với vận tốc tịnh tiến 𝑣 và vận tốc xoay 𝜔 trong khoảng thời gian rất bé.

𝜔 không đổi, chuyển động của robot là chuyển động tròn quanh tâm quay tức thời với bán kính 𝑟

Tại đầu khoảng thời gian 𝑑𝑡, tọa độ tâm 𝑂 𝑚 của robot trong hệ tọa độ gồm bộ ba [

], tại điểm này ta có tọa độ của tâm 𝐶:

Hình 2.1 Mô hình robot dẫn động hai bánh

Sau khoảng thời gian 𝑑𝑡 góc 𝜃 thay đổi một lượng 𝑑𝜃 = 𝜔 ∗ 𝑑𝑡, tọa độ mới của 𝑂 𝑚 sau 𝑑𝑡 là [

], sử dụng lại phương trình (2.1) và (2.2) để tìm quan hệ giữa

𝐶 và điểm này, ta có quan hệ giữa tọa độ mới và tọa độ cũ:

Chúng ta sẽ xác định mối quan hệ giữa các đại lượng 𝑣, 𝜔, 𝑟 dựa trên giá trị thu được từ encoder và áp dụng vào phương trình đã cho Bằng cách sử dụng mối quan hệ giữa vận tốc dài và vận tốc góc của một vật thể trong chuyển động tròn, ta có thể thiết lập các phương trình tương ứng.

𝑣 𝑅 vận tốc dài quanh trục bánh phải

𝑣 𝐿 vận tốc dài quanh trục bánh trái

𝐿 khoảng cách giữa 2 bánh xe

𝑟 bán kính quay tức thời

𝜔 vận tốc quay của robot

Lấy phương trình (2.4) trừ phương trình (2.5) ta được quan hệ giữa vận tốc của hai bánh và vận tốc góc:

Lấy phương trình (2.4) cộng phương trình (2.5), ta có:

2∗ (𝑣 𝑅 + 𝑣 𝐿 ) = 𝜔 ∗ 𝑟 (2.8) Thay 𝑣 = 𝜔 ∗ 𝑟 từ (2.6) vào phương trình trên ta có quan hệ giữa vận tốc tịnh tiến và vận tốc hai bánh:

Ta suy ra được bán kính quay tức thời 𝑟 của robot từ các phương trình (2.8) và (2.9)

Thay thế \( dt \) vào phương trình (2.7) và (2.10) với \( ds_R \) và \( ds_L \) là độ dài mà mỗi bánh xe dịch chuyển trong thời gian \( dt \) Sau đó, thay \( r \) và \( \omega \) trong các biểu thức này vào phương trình (2.3).

Phương trình này mô tả mối quan hệ giữa chuyển động của hai bánh xe và tọa độ của robot Chúng ta có thể phát triển một thuật toán để xấp xỉ phương trình này, nhằm cập nhật tọa độ của robot dựa trên đầu vào từ số đếm tăng thêm của encoder cho mỗi bánh, ký hiệu là 𝑛 𝑅 và 𝑛 𝐿, cùng với tọa độ 𝑥, 𝑦, 𝜃 từ chu kỳ trước Trong quá trình này, giá trị 𝑛 𝑅 𝐷𝜋 và 𝑛 𝐿 𝐷𝜋 sẽ được gán vào các vị trí tương ứng của 𝑑𝑠 𝑅 và 𝑑𝑠 𝐿 trong phương trình (2.11).

Nếu như chuyển động xoay của robot rất nhỏ, ta có thể xấp xỉ các phương trình trên trở thành dạng đơn giản

Phương trình xấp xỉ được đưa ra là giới hạn của phương trình gốc khi 𝑑𝑠 𝑅 − 𝑑𝑠 𝐿 tiến gần về 0, tương ứng với việc robot chỉ di chuyển tịnh tiến theo phương có hệ số góc 𝜃 Để điều khiển robot, ta có mối quan hệ giữa 𝑣 𝑅, 𝑣 𝐿 với 𝑣 và 𝜔 như sau:

2.1.2 Ứng dụng SLAM cho robot tự hành trên nền tảng ROS

Hình 2.2 Nền tảng ROS

Robot Operating System (ROS) là nền tảng mã nguồn mở chuyên dụng cho robot, cung cấp các dịch vụ như một hệ điều hành Nó hỗ trợ giao tiếp phần cứng, điều khiển thiết bị cấp thấp, thực hiện các chức năng thông dụng, truyền thông giữa các tiến trình và quản lý gói tin.

ROS có một số đặc điểm cơ bản như sau:

- Gọn nhẹ: ROS được thiết kế nhỏ gọn, vì vậy có thể tích hợp ROS vào các phần mềm robot

Ngôn ngữ lập trình ROS được phát triển bằng nhiều ngôn ngữ hiện đại, bao gồm Python, C++, Lisp, cùng với các thư viện thực nghiệm trong Java và Lua.

- Dễ dàng kiểm tra: ROS hỗ trợ các bộ công cụ hỗ trợ việc kiểm tra và giám sát quá trình truyền nhận thông tin

ROS hiện chỉ hoạt động trên nền tảng Unix, với phần mềm chủ yếu được thử nghiệm trên hệ thống Ubuntu và Mac OS X Cộng đồng ROS cũng đã hỗ trợ cho các hệ điều hành khác như Fedora, Gentoo, Arch Linux và nhiều nền tảng Linux khác.

2.1.2.2 Một số khái niệm trong ROS

Các gói trong ROS chứa thư viện phụ thuộc, tập hợp dữ liệu và các file cấu hình Chúng là thành phần nguyên tử cơ bản để tạo ra các phần tử thực thi khác trong hệ thống ROS.

Node là thành phần thực hiện quá trình tính toán trong hệ thống điều khiển robot sử dụng ROS Một hệ thống thường bao gồm nhiều node, chẳng hạn như node đọc tín hiệu đầu vào và trạng thái robot, node điều khiển động cơ bánh xe, node thực hiện hoạch định đường đi, và node cung cấp đồ họa cho hệ thống.

ROS Master đóng vai trò quan trọng trong việc điều khiển giao tiếp và truyền nhận thông tin giữa các Node Nếu không có ROS Master, các Node sẽ không thể tìm thấy và trao đổi các tin nhắn khác nhau.

Các node trong mạng giao tiếp thông qua việc truyền tải gói tin Gói tin là một cấu trúc dữ liệu, bao gồm các kiểu dữ liệu và mảng dữ liệu được định nghĩa bởi lập trình viên.

Topic: Message được định tuyến thông qua một hệ thống publish/subscribe

Một node tạo ra message bằng cách publish vào một Topic, là tên dùng để xác định nội dung của message Nhiều Publisher có thể hoạt động đồng thời, nhưng mỗi Publisher chỉ publish cho một Topic duy nhất Một Node có khả năng publish và subscribe với nhiều topic khác nhau.

The 2D Navigation stack is utilized to gather information and data from odometry, sensors, and the goal pose, subsequently outputting velocity signals to the robot.

Việc sử dụng Navigation stack trên robot yêu cầu robot phải chạy trên ROS, có tf transform tree và xuất dữ liệu cảm biến theo đúng kiểu Message trong ROS Ngoài ra, Navigation stack cần được cấu hình với hình dạng và đặc tính của robot để hoạt động hiệu quả hơn.

Thuật toán nhận dạng Aruco marker

Để xác định chính xác vị trí một điểm so với camera, ta sẽ sử dụng một loại marker khác là Aruco marker

ArUco marker là hình vuông với viền đen rộng và ma trận nhị phân bên trong, xác định số (id) của nó Hình dạng này có nền và ranh giới màu đen, cùng với mô hình trắng bên trong, giúp nhận diện một cách độc nhất Viền đen không chỉ tạo nên sự nổi bật mà còn giúp việc phát hiện các marker này trở nên dễ dàng hơn.

Quá trình nhận dạng Aruco marker bao gồm 2 bước chính:

Bước 1: Phát hiện các đối tượng chứa aruco marker

Thuật toán sẽ phân tích hình ảnh để xác định hình vuông chứa đối tượng được đánh dấu, bắt đầu bằng việc áp dụng một ngưỡng thích nghi nhằm phân đoạn ảnh đầu vào thành các miền phân biệt.

Hình 2.12 Hình ảnh trước và sau khi phân đoạn [8]

Sau khi lấy các đường viền từ hình ảnh ngưỡng, những đường không lồi hoặc không giống hình vuông sẽ bị loại bỏ Thêm vào đó, một số thành phần lọc bổ sung được áp dụng để loại trừ các đường viền quá nhỏ, quá lớn hoặc quá gần nhau.

Bước 2: Phân tích mã hóa

Sau khi phát hiện đối tượng, cần xác định xem chúng có phải là aruco marker thực sự hay không bằng cách phân tích mã hoá bên trong Bước đầu tiên là lấy ra các dấu hiệu của mỗi aruco marker Để thực hiện điều này, phép biến đổi bối cảnh được áp dụng để chuẩn hóa marker Tiếp theo, hình ảnh tiêu chuẩn được tạo ra bằng cách sử dụng phương pháp Otsu để phân tách các bit trắng và đen.

Hình 2.13 Hình ảnh marker trước và sau khi khử méo dạng [8]

Hình ảnh được chia thành các ô khác nhau theo kích thước điểm đánh dấu và kích thước đường viền

Hình 2.14 Hình ảnh marker sau khi được chia thành các ô đánh dấu [8]

Cuối cùng số lượng điểm ảnh màu đen hoặc trắng trên mỗi ô được đếm để xác định xem nó có màu trắng hay đen

Hình 2.15 Hình ảnh marker thu được sau khi phân tích mã hóa [8]

Cuối cùng, các bit được phân tích để xác định xem các điểm đánh dấu có thuộc về từ điển cụ thể hay không, và kỹ thuật sửa lỗi sẽ được áp dụng khi cần thiết.

Hình 2.16 Sử dụng thuật toán nhận dạng Aruco marker [8]

PHƯƠNG PHÁP MARKER-VISION TRACKING

Passive marker

Marker thụ động là loại marker không có hình dạng cụ thể, bao gồm phần thân cố định với các chi tiết được phủ lớp phản quang để phản chiếu ánh sáng từ nguồn sáng thứ ba Loại marker này được sử dụng phổ biến trong điện ảnh để thu chuyển động cơ thể người nhờ kích thước nhỏ, cấu tạo đơn giản và hiệu quả vượt trội so với các loại marker khác.

Marker sử dụng trong đề tài được thiết kế bao gồm 5 mặt, mỗi mặt sẽ có 3 điểm phản quang nhằm tăng khả năng nhận diện trong cả 360 0

Hình 3.1 Passive marker sử dụng trong đề tài

Trong nghiên cứu này, passive marker sẽ được gắn cố định vào chân bàn để camera có thể phát hiện tất cả các điểm phản quang Kích thước của passive marker được sử dụng trong nghiên cứu là

Optical Tracking Camera

Camera stereo được sử dụng trong đề tài [9] là một module chuyên dụng để phát hiện các marker thụ động Nó tích hợp bộ phát tia hồng ngoại xung quanh hai ống kính camera, với một lớp kính lọc phía trước cho phép chỉ ánh sáng hồng ngoại đi qua Tia hồng ngoại từ bộ phát sẽ phản xạ từ các chấm phản quang trên marker thụ động về camera, tạo ra hình ảnh trắng đen với các điểm phản quang nổi bật so với môi trường xung quanh.

Sau khi thu được 4 điểm phản quang rõ nét, một thuật toán xử lý ảnh sẽ được áp dụng để xác định hệ tọa độ của marker so với camera Kết quả trả về là ma trận biến đổi thuần nhất giữa hai hệ tọa độ này Từ ma trận này, vị trí và góc xoay của marker sẽ được trích xuất để điều khiển mobile robot di chuyển đến vị trí của marker.

Sai số hiện tại của hệ thống camera detect marker này sẽ nhỏ hơn 0.2mm

Trích xuất dữ liệu khoảng cách từ camera đến marker

Khi camera phát hiện passive marker, giá trị trả về sẽ là ma trận biến đổi thuần nhất giữa hệ tọa độ marker và hệ tọa độ camera

Các thuật toán tính toán vị trí và góc xoay của TableMarker được sử dụng trong đề tài này như sau:

- Ma trận tịnh tiến trích xuất từ ma trận biến đổi thuần nhất 𝑐𝑎𝑚𝑒𝑟𝑎 𝑡𝑎𝑏𝑙𝑒 𝑇 𝑋𝑌𝑍 từ TableMarker đến camera có dạng

- Khoảng cách theo các trục x, y, z giữa marker và camera tương ứng sẽ là p 1 ,p 2 ,p 3

- Ma trận xoay trích xuất từ ma trận biến đổi thuần nhất 𝑐𝑎𝑚𝑒𝑟𝑎 𝑡𝑎𝑏𝑙𝑒 𝑇 𝑋𝑌𝑍 từ TableMarker đến camera có dạng:

- Vậy góc giữa marker và camera thu được sẽ là:

THIẾT KẾ HỆ THỐNG CÁNH TAY ROBOT DI ĐỘNG

Kiến trúc hệ thống điều khiển cho cánh tay robot di động

Trong quá trình phát triển sản phẩm cho thị trường robot và robot tự hành, cần tuân thủ một quy trình nghiêm ngặt trước khi ra mắt Bắt đầu, toàn bộ kiến trúc hệ thống phải được ước lượng và định hình, bao gồm ba phần chính: thiết kế cơ khí, thiết kế phần cứng và thiết kế phần mềm.

Hình 4.1 Sơ đồ tổng quan các khối và nhiệm vụ của từng khối

Kiến trúc tổng thể của hệ thống cánh tay robot di động được chia làm 3 khối chính:

- Khối Main Control sẽ bao gồm các thành phần để điều khiển mobile robot như máy tính nhúng, BLDC Motor driver, stereo camera, LiDAR,…

Khối này có chức năng điều khiển phần khung robot di chuyển giữa hai hoặc nhiều điểm Nhiệm vụ chính của khối là hoạch định quỹ đạo di chuyển một cách chính xác.

Việc di chuyển chính xác của robot di động là rất quan trọng, vì nếu robot di chuyển sai hoặc lệch quá nhiều khỏi vị trí chỉ định, tay máy gắn trên sẽ không thể thực hiện nhiệm vụ gắp thả vật Bên cạnh đó, khối này còn có nhiệm vụ xử lý dữ liệu từ camera chiều sâu để xác định tọa độ điểm cần gắp/thả trên mặt phẳng, sau đó gửi vị trí và tín hiệu điều khiển cho khối điều khiển tay máy.

Khối điều khiển Manipulator bao gồm một vi xử lý để điều khiển tay máy, năm motor driver cho năm trục của tay máy, và một camera độ sâu gắn trên trục cuối Khối này sẽ được kết nối với bộ điều khiển chính của robot di động qua cổng USB Serial.

Khối Manipulator Control nhận dữ liệu vị trí và lệnh điều khiển từ Mobile Robot, từ đó tính toán động học để điều khiển cánh tay robot đến điểm chỉ định và thực hiện gắp/thả vật một cách chính xác.

Khối Giao Diện Người Dùng (User Interface) cho phép người dùng tương tác với hệ thống, bao gồm màn hình cảm ứng hiển thị giao diện điều khiển, giúp người dùng cập nhật trạng thái và ra lệnh cho robot.

Cánh tay robot di động có khả năng tổng hợp và xử lý dữ liệu từ nhiều thành phần để thực hiện các tác vụ, như gắp thả vật ở hai vị trí cách xa nhau Do đó, việc kết nối và trao đổi dữ liệu giữa các khối thành phần một cách ổn định là rất quan trọng.

Hình 4.2 Sơ đồ tổng quan kết nối phần cứng của hệ thống cánh tay robot di động

Thiết kế hệ thống robot cho ứng dụng pick-and-place

4.2.1 Thiết kế cơ khí hệ thống robot

Khung của hệ thống sẽ được thiết kế bằng phần mềm Solidworks, bao gồm các thanh nhôm định hình kích thước 40 x 40 (mm) lắp ghép tạo thành khung xương sống cho robot Bệ đỡ khối pin và các thành phần điều khiển như máy tính nhúng, motor driver, và stereo camera sẽ được làm từ mica dày 5 (mm) Lớp vỏ bên ngoài sẽ sử dụng các tấm nhôm dày 2 (mm).

Hình 4.3 Hệ thống cánh tay robot di động thiết kế bằng phần mềm Solidworks

Hình 4.4 Hệ thống cánh tay robot di động sau khi hoàn thiện

Hình 4.5 Chi tiết tay xúc sử dụng nam châm điện cho robot di động sau khi hoàn thiện

4.2.2 Thiết kế khay chứa bảng mạch cho ứng dụng pick-and -place

Trong luận văn này, chúng tôi thiết kế một khay chứa bảng mạch nhằm hỗ trợ robot thực hiện ứng dụng pick-and-place, đảm bảo khay phù hợp với chi tiết tay gắp phía trên.

Hình 4.6 Mặt trên khay xếp bảng mạch với aruco marker sau khi hoàn thiện

Trước khay bảng mạch, có một marker Aruco kích thước 60x60 mm để xác định vị trí gắp cho robot Marker Aruco này giúp cánh tay robot xác định chính xác vị trí của khay bảng mạch trên mặt bàn.

Dưới khay bảng mạch, một tấm sắt dày 2 mm được cố định để đảm bảo tay gắp giữ chắc khay bảng mạch trong suốt quá trình di chuyển của robot, ngăn chặn việc rơi hoặc đổ khay bảng mạch.

Tấm sắt được thiết kế với chiều dài cạnh lớn là 173 (mm), chiều dài cạnh bé là

Kích thước của tấm sắt được chọn là 133 mm chiều dài, 53 mm chiều rộng và 2 mm độ dày nhằm giảm thiểu khối lượng, đảm bảo tấm sắt không quá nặng nhưng vẫn có đủ diện tích tiếp xúc với nam châm điện trên tay gắp.

Hình 4.7 Tấm sắt được thiết kế riêng cho khay xếp bảng mạch

Hình 4.8 Mặt dưới khay xếp mạch với tấm sắt sau khi hoàn thiện

Xây dựng giải thuật điều khiển chính

4.3.1 Giải thuật điều khiển phần thân robot tự hành sử dụng phương pháp Marker-Vision Tracking Đối với hệ thống cánh tay robot di động trình bày trong luận văn này, một Optical Tracking camera đã được trang bị ở phía trước xe Camera này sẽ làm nhiệm vụ nhận diện passive marker nếu nó nằm trong khung hình, đồng thời trả về giá trị khoảng cách từ camera đến marker đó Từ dữ liệu trên, tọa độ của marker so với camera được tính và gửi đến robot để thực hiện việc di chuyển

Để bắt đầu, cần xác định một điểm quan sát cho robot, nơi mà marker thụ động nằm trong vùng quan sát của camera Điểm này được xác định bằng cách di chuyển robot đến vị trí mong muốn trên bản đồ và thu thập giá trị vị trí cùng hướng của robot tại điểm đó.

Sau khi robot di chuyển đến điểm quan sát, khoảng cách giữa camera và marker sẽ được trích xuất, bao gồm ba thông số theo các trục x, y, z Tuy nhiên, trong ứng dụng này, robot tự hành hoạt động trên bản đồ 2D, do đó giá trị khoảng cách theo trục z sẽ không được sử dụng trong tính toán.

Bước 3: Đọc vị trí hiện tại của robot trên bản đồ 2D Giá trị vị trí này sẽ được cộng với khoảng cách từ camera đến marker đã xác định ở Bước 2, tạo ra một điểm mới cho robot di chuyển trong bản đồ 2D.

Bước 4: Gửi dữ liệu điểm mới vừa được cập nhật này cho hệ thống để robot định vị và di chuyển đến

Robot move to defined position in map

Detect passive marker and calculate distance to marker

Collect current position in map

Create new moving position by adding current position and distance to marker

Robot move to new position

Hình 4.9 Lưu đồ giải thuật điều khiển robot sử dụng phương pháp marker-vision tracking

4.3.2 Giải thuật xác định và gắp vật thể sử dụng cánh tay robot 5 bậc và camera RGB-D Đối với hệ thống cánh tay robot di động, vị trí của cánh tay không được cố định ở một vị trí cụ thể Vì vậy để có thể thực hiện được ứng dụng pick-and-place, một camera RGB-D được cố định trên cánh tay robot nhằm xác định chính xác vị trí cần gắp cho robot [14]

Sau khi robot tự hành di chuyển đến vị trí cần gắp vật, camera RGB-D trên cánh tay sẽ nhận dạng aruco marker trong khung hình Nếu không phát hiện aruco marker, robot sẽ bỏ qua vị trí gắp vật Ngược lại, nếu có aruco marker, robot sẽ tiến hành tính toán vị trí giữa marker và camera.

Sau khi phát hiện aruco marker, bước tiếp theo là xác định tâm của marker trong hệ tọa độ ảnh (hệ tọa độ pixel) bằng cách sử dụng dữ liệu từ bốn góc của marker.

Bước 3: Sau khi thu thập dữ liệu tâm của aruco marker trong hệ tọa độ ảnh, chúng ta sẽ chuyển đổi sang hệ tọa độ thực bằng cách sử dụng dữ liệu chiều sâu từ camera đến tâm marker.

Sau khi thu thập dữ liệu khoảng cách từ marker đến camera, cánh tay robot sẽ di chuyển đến vị trí của marker Trong ứng dụng pick-and-place được trình bày trong luận văn, robot sẽ thực hiện việc xúc khay xếp mạch Để hoàn thành quá trình này, cánh tay robot cần thực hiện 4 chuyển động.

- Di chuyển tay xúc đến phía trước và bên dưới khay mạch

- Đưa tay xúc vào bên dưới của khay mạch

- Nâng tay xúc và khay mạch lên trên khỏi mặt phẳng

- Di chuyển về vị trí ban đầu

Hệ thống sẽ di chuyển đến vị trí thả khay mạch, nơi cánh tay robot thực hiện các động tác tương tự như khi xúc khay, nhưng theo thứ tự ngược lại.

- Đưa tay xúc đang giữ khay mạch đến phía trên mặt phẳng cần đặt xuống

- Hạ tay xúc theo chiều thẳng đứng sao cho khay mạch tiếp xúc với mặt phẳng và không còn tiếp xúc với tay xúc

- Di chuyển tay xúc ra khỏi vị trí bên dưới khay mạch

- Di chuyển về vị trí ban đầu

Mobile Robot moved to Picking

Manipulator pick the tray successfully and return to Home position

Camera RGB-D detect Aruco marker and picking position Manipulator start picking

Wait for Picking Position from mobile robot

Mobile Robot start moving to

Wait for DONE Message from mobile robot

Mobile Robot moved to Dropping

Camera RGB-D detect Aruco marker and dropping position Manipulator start dropping

Wait for Dropping Position from mobile robot

Hình 4.10 Lưu đồ giải thuật xác định và gắp vật thể sử dụng cánh tay robot 5 bậc và camera RGB-D

Xây dựng phần mềm điều khiển

Để hỗ trợ người dùng trong việc điều khiển hệ thống, một phần mềm đã được phát triển để quản lý các hoạt động của robot di động Phần mềm này được xây dựng trên nền tảng Qt và giao tiếp qua ROS với khối điều khiển chính, cho phép tính toán và phát tín hiệu điều khiển cho robot tự hành.

4.4.1 Lập trình giao diện điều khiển của phần mềm

Phần mềm được thiết kế cho 2 chế độ hoạt động của mobile robot: Di chuyển một lần (Delivery mode) và Di chuyển liên tục (Cruise mode)

4.4.1.1 Chế độ di chuyển một lần

Giao diện chính của robot di động trong chế độ di chuyển một lần bao gồm ba phần quan trọng: các điểm lập trình để robot di chuyển đến, dữ liệu điểm có sẵn và nút nhấn khởi động.

Sau khi chọn xong các điểm cho robot và nhấn khởi động, robot sẽ di chuyển đến từng điểm trong danh sách theo thứ tự Khi hoàn thành việc di chuyển đến tất cả các điểm, robot sẽ trở về vị trí ban đầu để chờ lệnh tiếp theo.

Người dùng có thể dễ dàng điều khiển robot di chuyển qua các điểm 4 – 2 – 3 – 1 bằng cách nhấn nút trên cùng bên trái để chọn số 4, sau đó nhấn nút thứ 2 bên trái để chọn số 2, và tiếp tục tương tự cho hai vị trí còn lại.

Danh sách điểm chọn cho robot đi đến

Danh sách dữ liệu điểm

Nút nhấn robot bắt đầu di chuyển

Khi robot đang di chuyển, người dùng có thể dừng robot bằng cách ấn vào màn hình, và robot sẽ tạm dừng trong 10 giây trước khi tiếp tục di chuyển.

Hình 4.12 Giao diện hiển thị khi robot đang di chuyển đến một vị trí

Hình 4.13 Giao diện hiển thị khi người dùng bấm dừng

Hình 4.14 Giao diện hiển thị khi robot đã hoàn thành việc di chuyển đến một vị trí

4.4.1.2 Chế độ di chuyển liên tục

Robot sẽ di chuyển đến một vị trí cố định theo cách lặp lại cho đến khi người dùng ra lệnh dừng Giao diện hiển thị trong quá trình di chuyển được thể hiện trong Hình 4.15.

Nếu muốn dừng robot, người dùng chỉ cần ấn vào màn hình lúc đang di chuyển và ấn Cancel Return, robot sẽ quay trở về điểm Home ban đầu

Hình 4.16 Giao diện hiển thị khi robot đang di chuyển không ngừng giữa các điểm

Hình 4.17 Giao diện hiển thị khi robot đang dừng

4.4.2 Lập trình giao tiếp giữa phần mềm với khối Main Control

Giao tiếp giữa phần mềm điều khiển và khối Main Control sẽ được thực hiện thông qua ROS Sơ đồ dưới đây thể hiện giao thức giao tiếp giữa Mobile Robot và khối giao diện người dùng.

Hình 4.18 Giao thức giao tiếp giữa Mobile Robot và Khối giao diện người dùng

Cấu trúc dữ liệu giao tiếp được thể hiện trong bảng sau:

Execute the task with assigned position number

“%cTRUN,%d,%d;%d%c”, STX, nMode, nPosNo, nCRC, ETX

“%cALRM,%d;%d%c”, STX, nAlarmCode, nCRC, ETX

STX, nMode, dSpeed, nCRC, ETX

Bảng 4.1 Bảng quy định giao thức giao tiếp Phần mềm và Khối Main Control dùng

Bảng 4.2 Bảng quy định giá trị Speed Mode

0x1001 Unstable network Check the network and reconnect Obstacle Detected 0x2001 Obstacle ahead Move the obstacle

Could not find any valid trajectory (stuck)

0x2002 Robot stuck in restricted area

Unstuck the robot by driving with joystick

Bảng 4.3 Bảng quy định giá trị Error Code

THỰC NGHIỆM VÀ KẾT QUẢ

Thực nghiệm xác định sai số lặp lại của camera RGB-D

❖ Môi trường thực nghiệm thực tế

Hình 5.1 Môi trường thực nghiệm xác định sai số lặp lại của camera RGB-D

Môi trường thực nghiệm bao gồm một camera RGB-D gắn trực tiếp trên cánh tay robot và một Aruco marker được đặt trong vùng quan sát của camera

Thực nghiệm này nhằm xác định sai số lặp lại của chương trình tính toán vị trí của Aruco marker trong không gian bằng camera RGB-D Giá trị sai số thu được sẽ phản ánh độ chính xác của camera RGB-D trong quá trình đo lường.

Sử dụng marker thụ động ở vị trí cố định và không di chuyển trong suốt quá trình thí nghiệm là rất quan trọng Vị trí này cần nằm trong phạm vi nhận diện của camera để đảm bảo hiệu quả.

• Camera được gắn cố định trên cánh tay robot

• Cánh tay robot không di chuyển trong suốt quá trình Thực nghiệm

• Thu thập dữ liệu vị trí của aruco marker từ chương trình

• Tính toán khoảng cách từ aruco marker đến camera theo công thức:

• Lặp lại các bước trên 32 lần, ta sẽ thu được 32 mẫu số liệu

*Đơn vị tính millimeters (mm)

Bảng 5.1 Kết quả Thực nghiệm xác định sai số lặp lại của camera RGB-D

Sai số giữa khoảng cách lớn nhất (424.122 mm) và khoảng cách nhỏ nhất (419.875 mm) khi xác định vị trí Aruco marker bằng camera RGB-D là 4.247 mm Sai số này đủ nhỏ để cánh tay robot có thể gắp vật một cách chính xác.

Thực nghiệm xác định sai số lặp lại của cánh tay robot và camera RGB-D 51 5.3 Thực nghiệm xác định sai số chính xác của robot tự hành khi không sử dụng phương pháp Marker-Vision Tracking

Thực nghiệm này nhằm xác định sai số lặp lại của hệ camera RGB-D gắn trên cánh tay robot sau khi robot di chuyển, bao gồm cả sai số của camera và sai số của cánh tay robot.

Sử dụng dấu hiệu thụ động ở một vị trí cố định và không di chuyển trong suốt quá trình thí nghiệm là rất quan trọng Vị trí này cần phải nằm trong phạm vi nhận diện của camera.

• Camera được gắn cố định trên cánh tay robot

• Cánh tay robot sẽ di chuyển lần lượt qua 3 điểm trước khi trở về vị trí ban đầu

• Thu thập dữ liệu vị trí của aruco marker từ chương trình

• Tính toán khoảng cách từ aruco marker đến camera theo công thức:

• Lặp lại các bước trên 32 lần, ta sẽ thu được 32 mẫu số liệu

*Đơn vị tính millimeters (mm)

Bảng 5.2 Kết quả Thực nghiệm xác định sai số lặp lại của hệ cánh tay robot và camera RGB-D

Sai số giữa khoảng cách lớn nhất (492.710 mm) và khoảng cách nhỏ nhất (483.959 mm) khi xác định vị trí Aruco marker bằng camera RGB-D là 8.751 mm Giá trị sai số này xuất phát từ sai số cơ khí của robot và sai số của camera.

5.3 Thực nghiệm xác định sai số chính xác của robot tự hành khi không sử dụng phương pháp Marker-Vision Tracking

❖ Môi trường thực nghiệm thực tế

Hình 5.2 Môi trường thực nghiệm xác định sai số chính xác của hệ thống robot

Môi trường thực nghiệm thực tế bao gồm một passive marker được gắn trực tiếp bên dưới chân bàn và hệ thống robot sử dụng optical camera

Xác định độ chênh lệch về vị trí và hướng của robot khi di chuyển đến một vị trí và hướng đã được chỉ định mà không cần sử dụng phương pháp Marker-Vision Tracking.

• Khai báo ba điểm bao gồm ba giá trị vị trí và hướng cố định trong không gian để robot di chuyển đến

• Robot được lập trình di chuyển liên tục qua ba điểm đã được đặt trước

• Sau khi robot di chuyển đến từng vị trí, đọc lại thống số vị trí và hướng của robot tại từng điểm

• Tính toán sai số về vị trí và hướng của robot so với giá trị đặt

Ar(xrA, yrA) (m) là vị trí của robot đọc về

Br(xrB, yrB) (m) là vị trí đặt cố định ban đầu

A (rad) là góc  mà robot đọc về

B (rad) là góc  đặt cố định ban đầu dr = √(𝒙 𝒓𝑩 − 𝒙 𝒓𝑨 ) 𝟐 + (𝒚 𝒓𝑩 − 𝒚 𝒓𝑨 ) 𝟐 (m) là sai số về vị trí từ Ar đến Br d = |𝐴  − 𝐵  | (rad) là sai số về góc từ A đến B

Với giá trị đặt tại điểm đầu tiên:

Sai số vị trí trung bình 0.083610 Sai số góc trung bình 0.013774 0.789216

Bảng 5.3 Kết quả thực nghiệm sai số chính xác so với giá trị đặt tại điểm đầu tiên

Với giá trị đặt tại điểm thứ hai:

Sai số vị trí trung bình 0.082637 Sai số góc trung bình 0.014089 0.807238

Bảng 5.4 Kết quả thực nghiệm sai số chính xác so với giá trị đặt tại điểm thứ hai

Với giá trị đặt tại điểm thứ ba:

Sai số vị trí trung bình 0.088418 Sai số góc trung bình 0.017226 0.986977

Bảng 5.5 Kết quả thực nghiệm sai số chính xác so với giá trị đặt tại điểm thứ ba

Kết quả cho thấy rằng sai số vị trí trung bình của robot khi không áp dụng phương pháp Marker-Vision Tracking là khoảng 9 cm, trong khi sai số góc trung bình là dưới 10 độ.

Mặc dù giá trị sai số cho phép cánh tay robot gắp được vật khi di chuyển đến vị trí gắp, nhưng vẫn còn cao so với các sản phẩm công nghiệp khác trên thị trường.

Thực nghiệm xác định sai số chính xác của robot tự hành khi sử dụng phương pháp Marker-Vision Tracking

Xác định độ chênh lệch về vị trí của robot khi di chuyển vị trí marker thay đổi có sử dụng phương pháp Marker-Vision Tracking

• Đặt passive marker tại một vị trí trong vùng quan sát của robot

• Lấy tọa độ vị trí của marker và tính toán vị trí gửi cho robot cách marker một khoảng không đổi

• Cho robot di chuyển đến vị trí vừa được tính

• Sau khi robot di chuyển xong, đọc lại thống số vị trí của robot tại điểm đó

• Tính toán sai số về vị trí và hướng của robot so với giá trị cập nhật từ marker

Ar(xrA, yrA) là vị trí của robot đọc về

Br(xrB, yrB) là vị trí đặt cố định ban đầu dr = √(𝒙 𝒓𝑩 − 𝒙 𝒓𝑨 ) 𝟐 + (𝒚 𝒓𝑩 − 𝒚 𝒓𝑨 ) 𝟐 là sai số về vị trí từ Ar đến Br

Sai số vị trí trung bình 0.027463

Bảng 5.6 Kết quả thực nghiệm sai số chính xác của robot khi sử dụng phương pháp

Kết quả cho thấy rằng sai số vị trí trung bình của robot khi áp dụng phương pháp Marker-Vision Tracking giảm xuống còn khoảng 3 cm, cải thiện đáng kể so với sai số 9 cm khi không sử dụng phương pháp này.

Ngày đăng: 10/04/2023, 22:18

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] M. Hvilshứj and S. Bứgh. “Little Helper — An Autonomous Industrial Mobile Manipulator Concept,” International Journal of Advanced Robotic Systems, vol. 8, pp. 80-90, 2011 Sách, tạp chí
Tiêu đề: Little Helper — An Autonomous Industrial Mobile Manipulator Concept,” "International Journal of Advanced Robotic Systems
[2] IndustryARC™. "Mobile Manipulator Market - Forecast(2022 – 2027)." Internet: www.industryarc.com/Report/19832/mobile-manipulator-market.html, Jun. 18, 2022 Sách, tạp chí
Tiêu đề: Mobile Manipulator Market - Forecast(2022 – 2027)
[3] T. R. R. Staff. "KUKA develops mobile manipulator robot for cleanroom chip handling." Internet: www.therobotreport.com/kuka-develops-mobile-robot-manipulator-chip-handling/, Aug. 23, 2019 Sách, tạp chí
Tiêu đề: KUKA develops mobile manipulator robot for cleanroom chip handling
[4] V. Staff. "Robot AGV - AMR kết hợp cánh tay Cobot," Internet: www.vnatech.com.vn/he-thong-robot-van-chuyen-hang-agv/, Jun. 25, 2022 Sách, tạp chí
Tiêu đề: Robot AGV - AMR kết hợp cánh tay Cobot
[5] A. Candra et al. "Dijkstra's and A-Star in Finding the Shortest Path: a Tutorial," presented at the 2020 International Conference on Data Science, Artificial Intelligence, and Business Analytics (DATABIA), Medan, Indonesia, 2020 Sách, tạp chí
Tiêu đề: Dijkstra's and A-Star in Finding the Shortest Path: a Tutorial
[6] P. Saranrittichai et al. "Robust local obstacle avoidance for mobile robot based on Dynamic Window approach," presented at the 10th International Conference on Electrical Engineering/Electronics, Computer,Telecommunications and Information Technology, Krabi, Thailand, 2013 Sách, tạp chí
Tiêu đề: Robust local obstacle avoidance for mobile robot based on Dynamic Window approach
[7] D.Fox et al. "The Dynamic Window Approach to Collision Avoidance," IEEE Robotics & Automation Magazine, vol. 4, pp. 23-33, Mar 1997 Sách, tạp chí
Tiêu đề: The Dynamic Window Approach to Collision Avoidance
[8] N. Tam. "Các vấn đề hiện đại trong công nghệ thông tin," Internet: www.github.com/minhth1905/Nhom-11, Jun. 18, 2022 Sách, tạp chí
Tiêu đề: Các vấn đề hiện đại trong công nghệ thông tin
[9] Digitrack. "SKADI Digitrack Optical Tracking System," Internet: www.digitrack.co.kr/skadi Sách, tạp chí
Tiêu đề: SKADI Digitrack Optical Tracking System
[10] H. Choi, "High Accuracy Visualization Methods for Augmented Reality based Surgical Navigation," Ph.D. dessertation, Daegu Gyeongbuk Institute of Science & Technology, Daegu, 2020 Sách, tạp chí
Tiêu đề: High Accuracy Visualization Methods for Augmented Reality based Surgical Navigation
[11] H. Lee et al. "Three-dimensional sensing methodology combining stereo vision and phase-measuring profilometry based on dynamic programming,"Optical Engineering, vol. 56, Dec.15, 2017 Sách, tạp chí
Tiêu đề: Three-dimensional sensing methodology combining stereo vision and phase-measuring profilometry based on dynamic programming
[12] H. Choi et al. "Robust control point estimation with an out-of-focus camera calibration pattern," Pattern Recognition Letters, vol. 143, pp. 1-7, Mar.2021 Sách, tạp chí
Tiêu đề: Robust control point estimation with an out-of-focus camera calibration pattern
[13] K. Filus et al. "Real-time testing of vision-based systems for AGVs with ArUco markers," presented at the 2022 IEEE International Conference on Big Data (Big Data), Osaka, Japan, Dec.17, 2022 Sách, tạp chí
Tiêu đề: Real-time testing of vision-based systems for AGVs with ArUco markers
[14] J. Jiao et al. "Autonomous grasp of the embedded mobile manipulator with an eye-in-hand camera," presented at the 11th IEEE International Conference on Networking, Sensing and Control, Miami, FL, USA, Apr. 2014 Sách, tạp chí
Tiêu đề: Autonomous grasp of the embedded mobile manipulator with an eye-in-hand camera

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm