Robot 6 bậc

Một phần của tài liệu Điều khiển ổn định robot gắp sản phẩm trong môi trường có dao động (bến cảng) (Trang 30)

3.3.1. Thông số Robot.

Trong đề tài này, tôi sử dụng robot 6 bậc của hãng TrossenRobotics. Ở đây, tôi đã nghiên cứu về cách test chất lượng của robot, thiết lập các thông số ban đầu cho robot như : set ID, tốc độ cho động cơ… Tôi có thể thiết kế một cánh tay robot 6 bậc cho riêng mình, hoàn toàn có thể làm chủ công nghệ về phần mềm và thiết kế cơ khí phần cứng cho robot.

Hình 3. 6 Cánh tay robot 6 bậc

Điểm sơ qua về thông số của robot như sau :

 Khối lượng Robot : 1360G

 Vùng hoạt động chiều cao tối đa đạt được : 51cm

 Vùng hoạt động theo chiều ngang tối đa đạt được : 40cm

 Trong vùng hoạt động theo chiều ngang 30cm gắp được vật : 200G  Trong vùng hoạt động theo chiều ngang 20cm gắp được vật : 400G  Trong vùng hoạt động theo chiều ngang 10cm gắp được vật : 600G  Kit điều khiển là : kit Artbotix microcontroller

 ATMEL ATMEGA 644P

 DIGITAL & ANALOG I/O

 ROS REDEAY

 XBEE WIRELESS

 ARDUINO IDE

 CUSTOM FIRMWARE

 Robot hỗ trợ kết nối với camera

 Robot sử dụng động cơ AX SERVO 12A  Có hỗ trợ chuẩn giao tiếp I2C

 Sử dụng nguồn 12V, 9A  Cáp nạp FTDI, hoặc ISP

Dưới đây là hình ảnh minh họa cho thông số của robot :

Hình ảnh minh họa cho vùng làm việc của robot theo chiều ngang :

Hình ảnh minh họa cho vùng làm việc của robot theo khả năng xoay :

Hình 3. 9 Khả năng xoay của robot

Hình ảnh minh họa cho vùng làm việc của gripper Robot :

3.3.2. Thông số động cơ servo 12X

Yêu cầu động cơ phải đáp ứng được tốc độ trong quá trình điều khiển real time cho robot bằng cảm biến leap motion. Động cơ có hồi tiếp tốc độ và góc quay.

AX-12A Stats

Operating Voltage 12V

Stall Torque* 15.3 kg·cm ( 212 oz·in )

No-load Speed 59 RPM ( 0.169sec/60°)

Weight 55g

Size 32 x 50 x 40 mm

Resolution 0.29°

Reduction Ratio 1/254

Operating Angle 300° or Continuous Turn

Operating Voltage 9-12V (Recommended Voltage 11.1V)

Max Current 900 mA

Standby Current 50 mA

Internal Operating Temp -5°C ~ 70°C

Module Limit 254 valid addresses

Protocol TTL Half Duplex Async Serial

Com Speed 7343bps ~ 1Mbps

Position Feedback Yes

Temp Feedback Yes

Load Voltage Feedback Yes

Input Voltage Feedback Yes

Compliance/PID Yes

Material Plastic Gears and Body

Motor Cored Motor

3.3.3. Kit điều khiển ArbotiX robocontroller

Kit ArbotiX robocontroller :là bộ điều khiển trung tâm cho hệ thống

Thông số kit ArbotiX robot controller:

Nguồn cung cấp cho kit arbotiX :

Nguồn cấp cho arbotiX robocontroller yêu cầu từ 6-16V, tùy theo từng trường hợp sử dụng nguồn cấp có nhiều yêu cầu rõ ràng hơn. Điện cung cấp cho các khối thiết bị đầu cuối được ký hiệu là số VIN:

 Nếu sử dụng động cơ Bioloid servos, VIN bắt buộc phải từ 7-12V, khuyên dùng

Hình 3. 11 Thông số kit arbotix

1 - Analog port headers

2 - Left motor/encoder headers

3 - Dual motor driver, max current 1A 4 - Right motor/encoder headers 5 - I2C header

6 - ATMEGA644P

7 - Power selection header 8 - FTDI serial0/programming

9 - Digital port headers 10 - Reset Switch

11 - Serial1 header (also J1)

12 - Prototyping headers and user led 13 - XBEE socket

14 - In-system programming (ISP) 15 - 3 Bioloid headers

16 - Power terminals

điện áp cung cấp 11.1V (LiPO batteries) nếu sử dụng Bioloid servos khi điều khiển bằng kit arbotiX.

 Điện áp cung cấp trực tiếp cho động cơ Servo từ VIN sao cho VIN > VSERVO.  Điện áp cung cấp cho động cơ nên kết hợp giữa VIN và xung PWM để tránh quá

áp động cơ.

Hình 3. 12 Nguồn cấp cho kit điều khiển

Cáp nạp chương trình

Kit arbotiX có hai loại cáp chương trình.

 Sử dụng cáp FTDI.

 Sử dụng cáp ISP.

Hình 3. 13 Cáp FTDI 3.4. Thiết kế giao diện giám sát và điều khiển Robot

Mục đích của phần này là thiết kế một giao diện giám sát và điều khiển cho robot, sao cho từ màn hình máy tính, chúng ta có thể quan sát vị trí, tốc độ, ID từng động cơ, tình trạng hoạt động của robot như thế nào. Không những thế chúng ta có thể điều khiển trực tiếp trên màn hình : điều khiển Start hoặc ngừng khẩn cấp, điều khiển tốc độ truyền, huấn luyện robot…

Phần mềm sử dụng để thiết kế giao diện là phần mềm JAVA PROCESSING hoặc PYTHON… Trong đề tài này tôi sử dụng phần mềm processing.

Hình 3. 14 Phần mềm Java Processing

Giới thiệu về phần mềm :

Processing là một ngôn ngữ lập trình mã mở, thiết kế với mục đích lập trình đồ họa trên nhiều môi trường khác nhau: Linux, Window, Mac, Android, và cả Web. Ngôn ngữ được Casey Reas và Benjamin Fry (thành viên nghiên cứu về ngôn ngữ lập trình tại đại học MIT) sáng tạo. Ngôn ngữ processing thích hợp cho học tập, nghiên cứu những khái niệm cơ sở của đồ họa máy tính. Dự án processing bắt đầu năm 2001, xây dựng dựa trên ngôn ngữ Java, nhưng sử dụng cú pháp đơn giản hơn. Gói processing có kèm theo sketchbook, một IDE nhỏ phụ trợ lập trình. Mỗi sketch trong Processing là một lớp con của lớp Java PApplet. Khi lập trình Processing, tất cả các lớp định nghĩa sẽ được xếp vào lớp bên trong (inner class) khi mã Processing dịch sang Java trước khi biên dịch. Do vậy nếu không viết mã trong chế độ thuần Java, mã Processing không thể dùng các biến/ hàm tĩnh.

Giao diện biểu diễn các thông số : vị trí các khớp của robot, vị trí của robot trong không gian, tốc độ động cơ của mỗi khớp… Giao diện này cũng có thể điều khiển cập nhật giá trị của cảm biến cho robot, có thể khởi động hoặc ngừng khẩn cấp cho robot, có thể thực hiện huấn luyện robot…

3.5. Thuật toán điều khiển cho robot ngoài khơi 3.5.1. Thuật toán tổng quát cho robot ngoài khơi 3.5.1. Thuật toán tổng quát cho robot ngoài khơi

Sơ đồ khối thuật toán tổng quát cho robot ngoài khơi :

Hình 3. 16 Sơ đồ thuật toán tổng quát cho robot

Giải thích sơ đồ khối thuật toán hình 3.16:

Xác định thông số ban đầu robot : xác định chiều dài từng khâu của robot, giới hạn góc quay từng khớp robot, xác định không gian làm việc của robot.

Thiết lập bảng DH : Cả 4 thông số xác định ở trên chính là bộ thông số DH : αn, an, dn, θn.Với 4 thông số trên , ta có thể xác định vị trí và hướng của mỗi khâu so với nhau và so với toạ độ gốc.

Phương pháp DLS, LMA để tìm động học nghịch (Inverse Kinematic) cho robot với khả năng hội tụ cao với số vòng lập ít hơn và đáp ứng nhanh hơn.

Sau khi xác định được phương trình toán điều khiển cho robot, chúng ta sẽ thu thập giá trị từ cảm biến leap motion (giá trị vị trí 3D X, Y, Z). Sau đó, công việc tiếp theo là đồng nhất hệ tọa tộ trong không gian của robot và cảm biến.

Đối với một số cảm biến có tích hợp thu thập giá trị vận tốc và gia tốc, chúng ta có thể sử dụng công thức [2.5], [2.7] để đoán được vị trí của vật trong tương lai gần.

Đầu tiên, thiết lập phương trình toán điều khiển cho robot : phương trình động học robot ngoài khơi [2.1], [2.2], [2.4]. Sau đó truyền tín hiệu (position 3D : X, Y, Z) thu được từ cảm biến leap motion cho hệ phương trình robot. Lập trình Robot sẽ “tracking” theo chuyển động của tay để bắt được vật trong dao động.

Dựa vào các phương pháp này, bù dao động và điều khiển chống dao động có thể được thực hiện. Kết hợp giữa phương pháp điều khiển robot cổ điển với cảm biến leap motion, robot có thể “tracking” theo chuyển động của vật trong không gian 3 chiều. Tóm lại, để bù chuyển động của con tàu, crane tip (khớp cuối của cần cẩu) sẽ luôn cố gắng làm theo các dao động tải để gắp vật trong môi trường có dao động sóng biển và chuyển động của tàu.

3.5.2. Thuật toán thu thập dữ liệu cho leap motion

Thuật toán thu thập dữ liệu cho leap motion kết hợp hai phương pháp : Phân lớp listener và phương pháp template matching. Để đảm bảo đáp ứng truyền dữ liệu real time cho robot

3.5.2.1. Phân lớp Listener (Classification)

Mục đích của thuật toán phân lớp Listener nhằm phân chia dữ liệu thu được thành nhiều lớp, để dễ kiểm soát và phân loại dữ liệu. Vì dữ liệu thu được từ cảm biến leap motion là một khối dữ liệu lớn. ( Tham khảo bài báo [1], [18] ).

Hình 3. 17 Sơ đồ khối thuật toán phân lớp listener

Nếu không kiểm soát, quản lý dữ liệu tốt thì việc điều chế dữ liệu sẽ khó khăn, tốn nhiều thời gian. Khi dùng thuật toán phân lớp Listener, sẽ giúp cho chúng ta giải quyết được vấn đề đáp ứng điều khiển real time cho robot.

Khi sự kiện xảy ra, bộ điều khiển sẽ hoạt động và gọi hàm đối tượng tương thích đã thiết lập từ trước. Tuy nhiên, nếu cánh tay robot thì cần phải đáp ứng nhiều hơn về real time, bằng cách tối ưu hóa đáp ứng bằng thuật toán sử dụng Listener phân lớp.

Nằm trong khu vực theo dõi các cảm biến Leap Motion, các mô hình bên trong phát hiện cánh tay của con người, thu về mẫu ảnh bàn tay, ngón tay, và các công cụ, ghi hình và báo cáo thông tin hướng, vị trí, thông tin cử chỉ của họ và chuyển động trong khung hình.

Tỉ lệ khung hình mặc định là 300 khung hình mỗi giây. Lớp Pointable cung cấp các đặc tính vật lý của một ngón tay hoặc phát hiện bàn tay. Đối tượng Pointable bao gồm các ngón tay và các công cụ khác. Pointable.isFinger () chức năng xác định liệu một

đối tượng Pointable đại diện cho một ngón tay. Pointable.isTool () chức năng xác định liệu một Pointable đối tượng đại diện cho một bàn tay.

3.5.2.2. Thuật toán template matching

Sau khi nhận dữ liệu từ thuật toán phân lớp, công việc tiếp theo là sử dụng thuật toán template matching để lọc khối dữ liệu thành những yếu tố đặ trưng nhất. Để giảm bớt thời gian xử lý, thỏa mãn điều khiển real time cho robot. (Tham khảo bài báo [1], [18]).

Phần thứ hai của thu thập dữ liệu là phân tích sâu hơn về việc xác định tỷ lệ lỗi bình đẳng EER (Equal Error Rate). EER là giá trị mà tại đó sai số FAR và FRR bằng nhau.

Trong đó : FAR : False Acceptance Rate (tỉ lệ sai số có thể chấp nhận được). FRR : False Reject Rate (tỉ lệ sai số do dữ liệu bị từ chối).

Lần đầu tiên, khi thu thập dữ liệu từ thuật toán phân lớp, thì tất cả những dữ liệu thu được sẽ được giảm kích thước xuống 4500 mẫu. Sau đó, 4500 mẫu này được chia thành hai phần :

2250 mẫu được dùng cho huấn luyện số liệu cho bàn tay ( hướng, vị trí, vận tốc, gia tốc…). Việc huấn luyện có thể được mô tả bằng phương trình sau :

Ti = Profile (useri) = average (𝒗𝒊𝟏... 𝒗𝒊𝒃...) [2.8]

Trong đó : i là số thứ tự đối tượng.

b là vector thuộc tính được sử dụng.

2250 mẫu còn lại dùng để kiểm tra độ chính xác của kết quả huấn luyện. Sau khi huấn luyện thì thuật toán template matching sẽ lọc ra những dữ liệu đặc trưng, quan trọng nhất của bàn tay.

Làm sao để biết được dữ liệu nào là đặc trưng, quan trọng nhất của bàn tay (thuyết đặc trưng). Đầu tiên, ta sẽ chọn lần lượt một ngưỡng giá trị từ 0% đến 100%, gọi  là giá trị ngưỡng. Sau đó đem từng giá trị của dữ liệu trong bộ kiểm tra (2250 mẫu kiểm tra) so sánh với giá trị trong bộ huấn luyện (giá trị tham chiếu). Khoảng sai số chênh lệch của từng giá trị trong quá trình so sánh này gọi là di.

Nếu di <  thì giá trị đó được chấp nhận (đảm bảo tính chính xác). Nếu di >  thì giá trị đó bị từ chối (không đảm bảo tính chính xác). Quá trình này được mô tả bởi công thức toán :

Auth (Ti,vi) = 1 if |Ti − vi| > τ, 0 otherwise [2.9]

3.5.3. Thuật toán điều khiển cho robot ngoài khơi

Từ các nghiên cứu về các thuật toán thu thập dữ liệu real time cảm biến leap motion : thuật toán phân lớp listener và thuật toán template matching; thuật toán thiết lập phương trình động học (IK) cho robot hoạt động ngoài khơi. Có thể tóm tắt thuật toán điều khiển cho hệ thống như sau :

CHƯƠNG 4 : KẾT LUẬN 4.1. Kết luận

Tìm hiểu 4 chương về điều khiển robot, chúng ta có kiến thức nền tảng nhất để học tập, nghiên cứu về điều khiển robot ngoài khơi.

Từ chương 1 đến chương 2, đó là kiến thức về phương pháp bù dao động cho tàu thuyền hiện nay ( phương pháp bù dao động AHC & PHC ); kiến thức về điều khiển real time robot bằng leap motion. Cách thu thập dữ liệu từ cảm biến leap motion thỏa mãn đáp ứng điều khiển thời gian thực cho robot hoạt động ngoài khơi.

Chương 3: Thi công, thiết kế hệ thống, lựa chọn thông số thiết bị hệ thống. Thi công mô hình tàu tạo dao động sóng biển giống như thực tế. Thuật toán điều khiển ổn định robot gắp vật trong môi trương có dao động (bến cảng). Sử dụng real time leap motion để điều khiển robot ngoài khơi.

Chương 4 : Đánh giá, kết luận kết quả, hướng phát triển đề tài.

Trong quá trình nghiên cứu đã đạt được những yêu cầu đề ra : hiểu được phương pháp lập trình cho robot, phương pháp chống bù dao động và điều khiển chống dao động hiện đại, mô phỏng robot 6 bậc bằng matlab đã thực hiện ở chuyền đề và tiếp tục lập trình điều khiển robot trên mô hình thật.

Kết quả đạt được của đề tài rất khả quan, Robot có thể gắp được vật chính xác và rút ngắn thời gian điều khiển. Có thể áp dụng thuật toán cho nhiều mô hình robot khác. Kết quả đạt như sau: độ chính xác gần 100% khi thu thập dữ liệu cảm biến leap motion, điều khiển real time robot đạt gần 100%. Luận văn của tôi cải tiến và kết hợp từ các bài báo [1], [2], [14]. Độ chính xác thu được từ cảm biến tăng từ 90% lên 100%; đáp ứng real time đạt hiệu suất tối đa, cánh tay robot và cánh tay của người điều khiển gần như đồng bộ với nhau.

Trong quá trình nghiên cứu, bản thân gặt hái được nhiều kiến thức để làm nền tảng nghiên cứu cho robot ngoài khơi sau này. Như thiết kế robot, lập trình cho robot thực tế, thu thập dữ liệu các loại cảm biến, truyền nhận dữ liệu giữa máy tính và các chip vi điều khiển…

Vì năng lực và thời gian có hạn nên chắc chắn sẽ có những khiếm khuyết, sai sót. Mong quý thầy cô và các bạn đóng góp để đề tài hoàn chỉnh hơn.

Tôi xin chân thành cảm ơn quý thầy cô và các bạn đã hỗ trợ và giúp đỡ tận tình, giúp tôi hoàn thành chuyên đề đúng thời hạn.

Hình 4. 1 Mô hình thi công

4.2. Kết quả và đánh giá

Độ chính xác của cảm biến leap motion ( cảm biến hồi tiếp vị trí X, Y, Z trong không gian ba chiều ) là 0.01mm. Độ chính xác khi thu thập dữ liệu real time cho cảm biến leap motion bằng thuật toán phân lớp listener và template matching gần đạt đến hiệu suất 100%. Điều này được minh chứng trong bài báo “Leap Motion Controller for Authentication via Hand Geometry and Gestures” [2015], Hunter College High School, New York, NY, USA.

Đáp ứng truyền dữ liệu từ cảm biến (đọc cảm biến bằng phần mềm processing

java) cho kit Arbotix là 100 Khz.

Trong quá trình truyền dữ liệu, việc truyền và nhận dữ liệu là liên tục với tần số 100 Khz, như vậy tần số truyền nhận dữ liệu khá cao, nhưng cấu tạo cơ khí của động cơ (về tốc độ của động cơ) không đáp ứng kịp. Điều chỉnh tốc độ động cơ sử dụng thuật toán PID để động cơ hoạt động ổn định và đạt tốc độ mong muốn.

Chính vì vậy, tôi đã dùng phần mềm processing java và kết hợp với kit Arbotix cải thiện tốc độ động cơ, mục tiêu là hướng đến băm xung động cơ gần đến giá trị tốc độ không tải. Thỏa mãn điều khiển real time cho robot hoạt động ngoài khơi.

Hiện tại hướng nghiên cứu này mới nên chưa có nhiều thành tựu nghiên cứu khác

Một phần của tài liệu Điều khiển ổn định robot gắp sản phẩm trong môi trường có dao động (bến cảng) (Trang 30)

Tải bản đầy đủ (PDF)

(49 trang)