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

báo cáo giữa kỳ robot dạng người me5620 tìm hiểu về robot nao v6

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

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 1,64 MB

Nội dung

Một đơn vị đo lường quán tính, giúp giữ thăngbằng và nhận biết nên đứng thẳng hay ngồi xuống.- Cảm giác: Với các cảm biến ở đầu, thân, tay, chân cho phép NAO nhận thức đượcmôi trường của

Trang 1

TRƯỜNG CƠ KHÍ NCM CƠ ĐIỆN TỬ THÔNG MINH

BÁO CÁO GIỮA KỲ

Học phần: Robot dạng người – ME5620

Mã lớp: 145890

GVHD: PGS TS Bùi Hải Lê

Nhóm 25 MSSV

Dương Mạnh Hùng 20195033

Lê Tuấn Anh 20194892

Nguyễn Mạnh Kiên 20195061

HÀ NỘI, 5/2023

1

Trang 2

MỤC LỤC

I TÌM HIỂU VỀ ROBOT NAO V6 3

1 Giới thiệu về Robot Nao V6 3

2 Các thông số kỹ thuật 3

3 Tính năng và hạn chế 4

II MÔ PHỎNG DỰA TRÊN ROBOT DẠNG NGƯỜI 5

1 Động học thuận: 5

2 Động học ngược 9

Trang 3

I TÌM HIỂU VỀ ROBOT NAO V6

1 Giới thiệu về Robot Nao V6

NAO (phát âm là Nao) là một robot hình người tự động và có thể lập trình NAO được phát triển bởi Aldebaran Robotics, một công ty robot của Pháp có trụ sở tại Paris, được SoftBank Group mua lại vào năm 2015 và đổi tên thành SoftBank Robotics Sự kiện ra mắt của Dự án Nao vào năm 2004 đánh dấu sự phát triển của robot NAO Vào ngày 15 tháng 8 năm 2007, Nao đã thay thế chú chó robot Aibo của Sony làm robot sử dụng trong RoboCup Standard Platform League (SPL), một cuộc thi quốc tế về bóng đá dành robot [1] Nao đã được sử dụng trong RoboCup 2008 và 2009, và NaoV3R được chọn làm nền tảng cho SPL tại RoboCup 2010

2 Các thông số kỹ thuật

Thông số vật lý của NAO V6:

• Chiều cao: 574 mm

• Bề dài: 311 mm

• Bề ngang: 275 mm

• Cân nặng: 5,48 kg

• Nguồn: Pin lithium cung cấp 62,5 Wh ở 21,6V

• Thời gian hoạt động: 90 phút (hoạt động ở mức tích cực)

3

Trang 4

• Số bậc tự do (DoF): 25

Sử dụng hệ điều hành NAOqi 2.8 (Dựa trên OpenEmbedded với RAM 4GB DDR3 cùng )

bộ nhớ 32GB SSD, được trang bị 2 camera HD OV5640 67.4°DFOV và rất nhiều các cảm biến

3 Tính năng và hạn chế

Tính năng

- Di chuyển: NAO có 25 bậc tự do và hình dáng giống người cho phép di chuyển và thích nghi với địa hình xung quanh Một đơn vị đo lường quán tính, giúp giữ thăng bằng và nhận biết nên đứng thẳng hay ngồi xuống

- Cảm giác: Với các cảm biến ở đầu, thân, tay, chân cho phép NAO nhận thức được môi trường của mình và xác định phương hướng

- Nghe và nói: Với 4 microphone định hướng và loa

- Thị giác: NAO được trang bị 2 camera để quay không gian xung quanh với độ phân giải cao, giúp nhận biết các hình dạng, đồ vật,…

- Kết nối: NAO có thể sử dụng nhiều chế độ kết nối khác nhau như WiFi, Ethernet, Bluetooth

Hạn chế

- Hạn chế về cảm biến: Robot Nao có một số cảm biến nhưng không đủ để thu thập

dữ liệu về môi trường xung quanh và tương tác với nó một cách hoàn hảo

- Hạn chế về khả năng di chuyển: Do Robot Nao có 25 bậc tự do nên khả năng di chuyển khá hạn chế và chậm chạp

- Hạn chế về tính tương tác: Mặc dù Robot Nao có khả năng tương tác với con người, nhưng nó không thể tương tác một cách chính xác như con người

- Hạn chế về giá cả: Robot Nao là một thiết bị đắt tiền và không phải ai cũng có thể mua được

Trang 5

II MÔ PHỎNG DỰA TRÊN MÔ HÌNH ROBOT DẠNG NGƯỜI

1 Động học thuận:

Tính toán vị trí, tư thế khâu khi biết các góc khớp

*Loại bỏ khớp 2:

5

Trang 6

B$ng 1 B$ng tham số

Sơ đồ cây

H nh 2 Sơ đồ cây khi bỏ khâu 2

Qua đó chúng em là lập trình các liên kết để mô phỏng trên Matlab bừng việc tạo một trường dữ liệu có các thông tin như tên, khối lượng, chị em, con, tọa độ và trục quay :

Trang 7

%%% Set biped robot structure of Figure 2.19, 2.20

%%% Field definition: Table 2.1 Link Parameters

global uLINK

ToDeg = 180/pi;

ToRad = pi/180;

UX = [1 0 0]';

UZ = [0 0 1]';

uLINK = struct( 'name' 'BODY' , , 'm' , 10, 'sister' , 0, 'child' , 2, 'b' ,[0

0 0.7]', 'a' ,UZ, ,0); 'q'

%uLINK(2) = struct('name','RLEG_J0' , 'm', 5, 'sister', 8, 'child', 3, 'b',[0

-0.1 0]' ,'a',UZ,'q',0);

uLINK(2) = struct( 'name' , 'RLEG_J1' 'm' , , 1, 'sister' , 7, 'child' , 3, 'b' ,[0

-0.1 0]' , 'a' ,UX, ,0); 'q'

uLINK(3) = struct( 'name' , 'RLEG_J2' 'm' , , 5, 'sister' , 0, 'child' , 4, 'b' ,[0

0 0]' , 'a' ,UY, ,0); 'q'

uLINK(4) = struct( 'name' , 'RLEG_J3' 'm' , , 1, 'sister' , 0, 'child' , 5, 'b' ,[0

0 -0.3]' , 'a' ,UY, ,0); 'q'

uLINK(5) = struct( 'name' , 'RLEG_J4' 'm' , , 6, 'sister' , 0, 'child' , 6, 'b' ,[0

0 -0.3]' , 'a' ,UY, ,0); 'q'

uLINK(6) = struct( 'name' , 'RLEG_J5' 'm' , , 2, 'sister' , 0, 'child' , 0, 'b' ,[0

0 0 ]' , 'a' ,UX, ,0); 'q'

uLINK(7) = struct( 'name' , 'LLEG_J0' 'm' , , 5, 'sister' , 0, 'child' , 8, 'b' ,[0

0.1 0]' , 'a' ,UZ, ,0); 'q'

uLINK(8) = struct( 'name' , 'LLEG_J1' 'm' , , 1, 'sister' , 0, 'child' ,9, 'b' ,[0

0 0]' , 'a' ,UX, ,0); 'q'

uLINK(9)= struct( 'name' , 'LLEG_J2' 'm' , , 5, 'sister' , 0, 'child' ,10, 'b' ,[0

0 0]' , 'a' ,UY, ,0); 'q'

uLINK(10)= struct( 'name' , 'LLEG_J3' 'm' , , 1, 'sister' , 0, 'child' ,11, 'b' ,[0

0 -0.3]' , 'a' ,UY, ,0); 'q'

uLINK(11)= struct( 'name' , 'LLEG_J4' 'm' , , 6, 'sister' , 0, 'child' ,12, 'b' ,[0

0 -0.3]' , 'a' ,UY, ,0); 'q'

uLINK(12)= struct( 'name' , 'LLEG_J5' 'm' , , 2, 'sister' , 0, 'child' , 0, 'b' ,[0

0 0 ]' , 'a' ,UX, ,0); 'q'

[uLINK(1).vertex,uLINK(1).face] = MakeBox([0.1 0.3 0.5] ,[0.05 0.15

-0.05] ); % BODY

[uLINK(6).vertex,uLINK(6).face] = MakeBox([0.2 0.1 0.02] ,[0.05 0.05

0.05]); % Foot

[uLINK(12).vertex,uLINK(12).face] = MakeBox([0.2 0.1 0.02] ,[0.05 0.05

0.05]); % Foot

FindMother(1); % Find mother link from sister and child data

%%% Substitute the ID to the link name variables For example, BODY=1.

for n=1:length(uLINK)

eval([uLINK(n).name, '=' ,num2str(n), ]); ';'

end

uLINK(BODY).p = [0.0, 0.0, 0.65]';

uLINK(BODY).R = eye(3);

7

Trang 8

uLINK(BODY).v = [0 0 0]';

uLINK(BODY).w = [0 0 0]';

for n=1:length(uLINK)

uLINK(n).dq = 0; % joitn speed [rad/s]

end

H nh 3 Lập tr nh liên kết các khâu

Mô phỏng theo các tham số tiền định cho một số tư thế hợp lý

Một số tư thế hợp lý khi:

Các khớp đầu gối giới hạn từ 0 đến π: 0 ≤q5,11≤π

Các khớp còn lại giới hạn từ −π

3 đến

π

3

Kết quả thu được

Trang 9

H nh 4 Tư thế tương ứng với bộ tham số tiền định hợp lý

9

Trang 10

2 Động học ngược

a Phương pháp h nh học

Tiếp theo chúng ta sẽ thảo luận về cách tính các góc khớp khi chúng ta có vị trí của

cơ thể và bàn chân của robot Điều chúng ta cần làm trong trường hợp này là động học ngược

H nh 5 Tính toán động học ngược của chân

Xét chân phải của HR - Hình 1 Vị trí và tư thế của cơ thể và chân phải lần lượt là (p1, R1) và (p7, R7) Để đơn giản, định nghĩa D là khoảng cách giữa gốc cơ thể và khớp hông

Chiều dài chân trên và dưới là A và B

Ta sẽ tính vị trí khâu tiếp theo theo vị trí khâu thứ nhất theo công thức sau:

p 2 = p 1 +R[0

D

0]

Sau đó, tính vecto vị trí của hông so với mắt cá chân theo công thức:

p2=R7T

( p 2 − p 7 )≡[r x

ry

rz]

Từ đó, chúng ta có thể tính toán khoảng cách giữa mắt cá chân và hông:

Trang 11

C=√rx+ry+rz Như trong hình 4 (b), nếu chúng ta xem xét tam giác ABC, chúng ta nhận được góc của đầu gối q Từ quy tắc cos ta tính được:5

q 5 =−cos −1 (A 2

+B 2

−C 2

2 AB )+π Tiếp tục xét tam giác ABC ta có: α=sin −1(A sin (π−q 5 )

C )+π Tiếp theo chúng ta sẽ tập trung vào tọa độ địa phương của mắt cá chân Như trong Hình 4 (c), từ vectơ r, có thể tính toán góc quay mắt cá chân và cao độ, do đó:

q 7 =atan2(r y ,r z )

q 6 =−atan 2 (r x ,sign(r z)√r y +r z)− ¿ α

Từ các phương trình xác định khớp:

R 7 =R R 1 z (q 2 ) R x (q 3 )R y (q 4 ) R y (q 5 + q 6 )R x (q 7 ) Chuyển về đổi dấu ta có:

[c 2 c 4 −s 2 s 3 s 4 − s 2 c 3 c 2 s 4 +s 2 s 3 c 4

s 2 c c 4 + 2 s s 3 4 c 2 c 3 s 2 s 4 −c 2 s 3 c 4

−c3s4 s3 c3c4 ]=[R 11 R 12 R 13

R 21 R 22 R 23

R31 R32 R33]

Từ đó tính được các giá trị biến khớp còn lại:

q 2 =atan2(−R 12 ,R 22 )

q 3 =atan2(R 32 ,−R 12 s 2 +R 22 c 2 )

q 7 =atan2(− R 31 ,R 33 )

Khi sử dụng chương trình sau trên robot thực, cần liên tục kiểm tra xem các góc khớp có vượt quá giới hạn của chúng hay không Trong trường hợp xấu nhất, có thể dẫn đến việc robot bị hỏng hóc

11

Trang 12

Nói chung nó đòi hỏi một lượng lớn các phép tính nặng, vì vậy phổ biến hơn là sử dụng giải pháp số mà chúng ta sẽ xem xét trong phần tiếp theo

b Phương pháp số

Đây là một phương pháp thử và thuyết sai số, để giải quyết đô |ng học ngược bằng cách sử dụng đô |ng học thuâ |n và điều chỉnh các góc khớp để thu hẹp sự khác biệt

H nh 6 Phương pháp thử và sai số Bước 1 Chuẩn bị tư thế (pref, Rref) của liên kết cơ sở

Bước 2 Chuẩn bị vị trí (pref, Rref) của liên kết mục tiêu

Trang 13

Bước 3 Xác định vectơ q giữ các góc chung từ liên kết cơ sở đến liên kết mục tiêu Bước 4 Sử dụng động học thuận về phía trước để tính toán vị trí (p, R) của liên kết

Bước 5 Tính toán sai số về vị trí và góc khớp

Bước 6 Nếu (Δp, ΔR) đủ nhỏ để dừng phép tính

Bước 7 Nếu (Δp, ΔR) tính toán không đủ nhỏ Δq điều đó sẽ làm gi$m lỗi

Bước 8 Cập nhật các góc khớp bằng q: = q +Δq và trở lại Bước 4

c Sử dụng tham số tiền định

Do bỏ đi khớp bàn chân 6 nên robot có tu thế đặc thù là bàn chân phải luôn vuông góc với chân phải Xét tư thế đặc thù ta có hình vẽ sau:

H nh 7 H nh minh họa cho tư thế đặc thù của Robot Trong đó α là góc quay của chân phải

Ta có công thức:

x=−0,3 sinα

z=0,3.(1−cosα)

Tư thế mong muốn khi góc α=60°

13

Trang 14

d Tính vận tốc khớp theo vận tốc bàn chân

Quan hệ giữa vận tốc khớp và vận tốc của tác động cuối nhận được bằng cách chia cho khoảng thời gian nhỏ δt:

1

δt[δp

δθ]=J.δq δt

Xét trường hợp khâu body cố định trong không gian ta có tốc độ khớp ˙q và tốc độ tác động cuối (v, ω)như sau:

(v

ω)=J ˙q

Từ đó có thể tính toán tốc độ khớp theo công thức sau:

˙q=J −1

(v

ω)

Trang 15

VD: Tính tốc độ khớp cho tư thế trong hình 19 Đầu tiên, thiết lập tất cả thông tin hình học của robot trên dòng lệnh Matlab, sau đó sử dụng FindRoute() để tìm đường đi từ thân đến chân phải

Sau đó, các góc của khớp được thiết lập sử dụng SetJointAngles() sao cho các góc pitch hông phải, pitch đầu gối và pitch bàn chân và 0 deg cho các khớp khác Tính toán Jacobian bằng các đầu vào sau

H nh 8 Tư thế ứng với vecto góc khớp

[0,0,-1.05816891316477, 1.62638050007581, -0.568211586911043,0]

15

Trang 16

Giả sử muốn bàn chân nâng thẳng đứng với tốc độ 0.1m/s thì vận tốc khớp thu được bằng công thức:

>> dq = J \ [0 0 0.1 0 0 0]'

dq = [ 0

0

−0.2814

0.4451

−0.1637

0 ]

=> Tốc độ khớp của pitch hông, pitch đầu gối và pitch mắt cá chân là

(-0.2814, 0.4451, -0.1637) rad/s

e Tư thế kỳ dị

H nh 9 Tư thế k dị của Robot

Trang 17

- Robot có đầu gối chân phải được duỗi thẳng hoàn toàn, vì thế robot không bao giờ có thể di chuyển chân của nó theo phương thẳng đứng bằng cách áp dụng bất kì tọa độ khớp nào ở cấu hình này

=> Vì thế tốc độ khớp sẽ không xác định được hoặc bằng vô cùng

Khi đó ma trận nghịch đảo của Jacobi sẽ như sau:

17

Ngày đăng: 17/06/2024, 17:26

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

TÀI LIỆU LIÊN QUAN

w