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

Tìm hiểu xe đa hướng sử dụng bánh omni

20 1,6K 13

Đ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 20
Dung lượng 1,02 MB

Nội dung

Tìm hiểu xe đa hướng sử dụng bánh omni

Trang 1

Bài tiểu luận

chủ đề : tìm hiểu xe đa hướng sử dụng bánh omni

I - ứng dụng và giới thiệu về robot sử dụng bánh omni

Trên con đường tiến tới công nghiệp hóa, hiện đại hóa đất nước thì vấn đề phát triển khoa học kỹ thuật cao là mấu chốt hàng đầu, Với xu hướng giảm tối thiểu sức người

và tăng năng suất lao động đòi hỏi phải có nhiều trang thiết bị, nhiều dây chuyền tự động hóa, lấy sức máy móc thay thế sức người….

Để đáp ứng nhu cầu này, chắc chắn cần phải nghiên cứu phát triển các thiết bị tự động để phục vụ cho các nhà máy, xí nghiệp hay sản xuất nông nghiệp… Trong đó Robot là một lĩnh vực mới mà ở nước ta đang nghiên cứu và từng bước chế tạo để ứng dụng vào quá trình sản xuất góp phần nâng cao năng suất lao động Việc nghiên cứu và chế tạo robot nhằm đáp ứng vào nhu cầu thực tế của các dây chuyền sản xuất là rất cần thiết

Việc xây dựng các chương trình hoạt động cho các robot là điều thiết yếu đặc biệt đối với các robot di động Bài toán robot di động bằng bánh xe (Ominidirectional mobile robot – OMR)

được sự quan tâm lớn của nhiều người trong những năm gần đây, vì chúng được ứng dụng rộng rãi trong các ngành khác nhau như công nghiệp, nông lâm nghiệp, y

tế, dịch vụ … do khả năng di chuyển linh hoạt.

Khác với loại robot di động sử dụng bánh truyền thống, robot di động sử dụng bánh

đa hướng (gọi tắt là robot di động đa hướng) có những ưu điểm vượt trội như: khả năng thay đổi vị trí và định hướng linh hoạt, độ chính xác cao , bởi vì chúng có khả năng dịch chuyển và quay đồng thời hoặc độc lập, vì vậy robot di động đa

hướng đã thu hút được nhiều sự chú ý hơn Trong kỹ thuật điều khiển chuyển động của OMR, vấn đề bám quỹ đạo và tác động nhanh là rất cần thiết Có nhiều phương pháp điều khiển rô bốt nhưng có rất ít công trình nghiên cứu dùng điều khiển trượt cho rô bốt đa hướng.

Robot sử dụng bánh omni có thể di chuyển theo bất kỳ hướng nào,ở bất kỳ góc nào

Trang 2

Vì có khả năng như vậy nên robot omni có khả năng tiết kiệm năng lượng so với robot sử dụng bánh xe thông thường

Để thực hiện khả năng di chuyển đó,robot omni phải có 3 bậc tự do trong mặt phẳng di chuyển (mp xoy),gồm: di chuyển độc lập theo các trục x,y và xoay theo trục z.

Do đó cần tối thiểu 3 bánh omni với các động cơ điều khiển độc lập,vì mỗi động cơ cho khả năng điều khiển một bậc tự do.

Hình 1: Khả năng di chuyển của robot omni.

Để robot di chuyển đa hướng, cần sử dụng một loại bánh đặc biệt Gồm một bánh lớn và các bánh con có trục theo phương tiếp tuyến với bánh lớn và vuông góc với trục bánh lớn Nhờ đó bánh omni có thể di chuyển theo phương song song với trục.

Trang 3

Hình 2:Một số loại bánh omni

Hình 3:Robot sử dụng bánh omni

II- mô hình hóa robot

Trang 4

Hình 4: Mô hình robot omni

1.mô hình động học

Robot gồm có ba bánh xe đa hướng cách đều góc 120° Ba bánh xe đa hướng có cùng bán kính r và được đều động bởi các động cơ DC Tâm dịch chuyển của

OMR đặt tại C và giả định trùng với tâm hình học. L là khoảng cách từ tâm bánh xe đến điểm C OXY là hệ tọa độ tham chiếu toàn cục, CX 0Y0 là hệ tọa độ tham chiếu cục bộ, gắn liền với OMR Vị trí của OMR trong hệ tọa độ tham chiếu toàn cục

được xác định bởi tọa độ X , Y và góc lệch Φc giữa hai hệ tọa độ toàn cục và cục bộ, nghĩa là vị trí của OMR trong hệ tọa độ tham chiếu toàn cục được xác định bởi véc

tơ q = [ x, y,φ]T ∈ ℜ3×1,véctơ = x y ∈ ℜ2×1 được xác định là véc tơ

vị trí của điểm C với gốc tọa độ

M a trận quay R(ΦC ) chuyển từ hệ tọa độ dịch chuyển gắn với rô bốt sang

hệ tọa độ toàn cục được biểu thị như sau:

Trang 5

Phương trình động học của robot di động đa hướng có thể được viết như sau:

z = (1/r).H -1 (2)

theo đó z = [ω 1 ω 2 ω 3 ]T là vector vận tốc góc của bánh xe, và ma trận

được biểu thị như sau

từ (2)=> =rHz (4);

2.Mô hình hóa động lực học robot omni

Hình 5 Sắp xếp n bánh omni và phân bố lực

Trang 6

Tất cả các góc của trục động cơ được đo theo hướng x trong hệ tọa độ của robot

Gọi góc của trục động cơ của n bánh xe lần lượt là θ1,θ2 ,…, θn.

Hướng dẫn động cho bánh xe thứ i là θi + π/2

Khi n động cơ hoạt động ta nhận được n lực F1,F2,…,Fn từ các động cơ.

Ta có:

Trong đó M là khối lượng robot,R là bán kính ro bot,fi là giá trị của lực

Fi (Fi là một vecto)

Chiếu lên các trục tọa độ

Max=-f1sin θ1-f2sin θ2-…-fn θn

May=f1cos θ1+f2 θ2+…+fn θn

Với khối trụ đồng nhất ta có I=MR2/2,với một vòng I=MR2

Ta có biểu diễn ma trận sau:

Nếu đặt I=αMR2,ta có

Trang 7

Gọi vi là vận tốc quay bánh chính của bánh xe omni thứ i (vận tốc quay của động cơ thứ i)

vx,vy là vận tốc tịnh tiến theo phương x và y của robot,ω là vận tốc xoay của robot

Ta có mối liên hệ dưới dạng ma trận sau:

Hình 6:Minh họa vận tốc bánh thứ i của robot trong trường hợp robot đi sang ngang với vận tốc là 1.Vận tốc bánh lớn là -sin θ i ,vận tốc bánh nhỏ là cos θ i

Trang 8

III-Giới thiệu sơ đồ điều khiển robot omni

Trang 9

với 3 bánh ta co sơ đồ tương tự)

Master chip: thực hiện đọc cảm biến,xử lý ,tính toán hướng và vận tốc di chuyển,tính vận tốc của mỗi bánh,truyền vận tốc về cho mỗi Driver slave

Driver slave:nhận giá trị vận tốc yêu cầu từ vi điều khiển master,thực hiện PID vận tốc để điều khiển vận tốc động cơ cho phù hợp

a.Giới thiệu giao tiếp SPI

SPI (Serial Peripheral Bus) là một chuẩn truyền thông nối tiếp tốc độ cao

do hang Motorola đề xuất Đây là kiểu truyền thông Master-Slave, trong

đó có 1 chip Master điều phối quá trình tuyền thông và các chip Slaves được điều khiển bởi Master vì thế truyền thông chỉ xảy ra giữa Master và Slave SPI là một cách truyền song công (full duplex) nghĩa là tại cùng một thời điểm quá trình truyền và nhận có thể xảy ra đồng thời SPI đôi khi được gọi là chuẩn truyền thông “4 dây” vì có 4 đường giao tiếp trong chuẩn này đó là SCK (Serial Clock), MISO (Master Input Slave Output),

MOSI (Master Ouput Slave Input) và SS (Slave Select) Hình 8 thể hiện

một kết SPI giữa một chip Master và 3 chip Slave thông qua 4 đường

Trang 10

Hình 8: Giao diện SPI

SCK: Xung giữ nhịp cho giao tiếp SPI, vì SPI là chuẩn truyền đồng bộ

nên cần 1 đường giữ nhịp, mỗi nhịp trên chân SCK báo 1 bit dữ liệu đến hoặc đi Đây là điểm khác biệt với truyền thông không đồng bộ mà chúng

ta đã biết trong chuẩn UART Sự tồn tại của chân SCK giúp quá trình tuyền ít bị lỗi và vì thế tốc độ truyền của SPI có thể đạt rất cao Xung nhịp chỉ được tạo ra bởi chip Master

MISO– Master Input / Slave Output: nếu là chip Master thì đây là

đường Input còn nếu là chip Slave thì MISO lại là Output MISO của

Trang 11

MOSI – Master Output / Slave Input: nếu là chip Master thì đây là

đường Output còn nếu là chip Slave thì MOSI là Input MOSI của Master

và các Slaves được nối trực tiếp với nhau

SS – Slave Select: SS là đường chọn Slave cần giao tiếp, trên các

chip Slave đường SS sẽ ở mức cao khi không làm việc Nếu chip Master kéo đường SS của một Slave nào đó xuống mức thấp thì việc giao tiếp sẽ xảy ra giữa Master và Slave đó Chỉ có 1 đường SS trên mỗi Slave nhưng

có thể có nhiều đường điều khiển SS trên Master, tùy thuộc vào thiết kế của người dùng

Hoạt động: mỗi chip Master hay Slave có một thanh ghi dữ liệu 8

bits Cứ mỗi xung nhịp do Master tạo ra trên đường giữ nhịp SCK, một bit trong thanh ghi dữ liệu của Master được truyền qua Slave trên đường MOSI, đồng thời một bit trong thanh ghi dữ liệu của chip Slave cũng được truyền qua Master trên đường MISO Do 2 gói dữ liệu trên 2 chip được gởi qua lại đồng thời nên quá trình truyền dữ liệu này được gọi là

“song công” Hình 6 mô tả quá trình truyền 1 gói dữ liệu thực hiện bởi module SPI trong AVR, bên trái là chip Master và bên phải là Slave

Hình 9:Truyền dữ liệu SPI

Trang 12

Cực của xung giữ nhịp, phase và các chế độ hoạt động: cực của xung giữ nhịp (Clock Polarity) được gọi tắt là CPOL là khái niệm dùng chỉ trạng thái của chân SCK ở trạng thái nghỉ Ở trạng thái nghỉ (Idle), chân SCK

có thể được giữ ở mức cao (CPOL=1) hoặc thấp (CPOL=0) Phase (CPHA) dùng để chỉ cách mà dữ liệu được lấy mẫu (sample) theo xung giữ nhịp Dữ liệu có thể được lấy mẫu ở cạnh lên của SCK (CPHA=0) hoặc cạnh xuống (CPHA=1) Sự kết hợp của SPOL và CPHA làm nên 4 chế độ hoạt động của SPI Nhìn chung việc chọn 1 trong 4 chế độ này không ảnh hưởng đến chất lượng truyền thông mà chỉ cốt sao cho có sự tương thích giữa Master và Slave

b.Điều khiển động cơ DC Servo bằng giải thuật PIC

Kỹ thuật điều khiển PID tuy không phải là một kỹ thuật điều khiển mới, nhưng lại là kỹ thuật phổ biến nhất chuyên dùng để điều khiển các hệ thống trong công nghiệp như hệ thống lò nhiệt, điều khiển tốc độ, vị trí, moment động cơ AC và DC Một trong những lý do bộ điều khiển PID trở nên phổ biến như vậy là vì tính đơn giản, dễ triển khai trên những vi

xử lý nhỏ với hiệu năng tính toán hạn chế

Cấu trúc chung của hệ thống vòng kín như sau:

Hình 10: Cấu trúc chung của hệ thống vòng kín

Trong hình vẽ trên:

- Plant: là hệ thống cần được điều khiển

- Controller: Cung cấp tín hiệu điều khiển cho Plant, được thiết kế

để điều khiển toàn bộ đáp ứng của hệ thống

Hàm truyền của bộ điều khiển PID có dạng như sau:

Trang 13

Trong đó:

- KP: Độ lợi khâu tỷ lệ

- KI: Độ lợi khâu tích phân

Biến số (e) đại diện cho sai số giữa giá trị mong muốn (R) và giá trị ngõ

ra (Y) Sai số này (e) sẽ được đưa đến bộ điều khiển PID, và bộ điều khiển này sẽ tính toán cả vi phân và tích phân của tín hiệu sai số này Tín hiệu (u) sẽ có giá trị như sau:

Tín hiệu (u) sẽ được đưa đến đối tượng điều khiển và ta sẽ thu được một tín hiệu (Y) mới Tín hiệu này sẽ lại được đưa đến cảm biến để tính toán

ra sai số mới (e) Bộ điều khiển lại tính toán các giá trị vi phân, tích phân của sai số này Quá trình cứ thế lặp đi lặp lại

Đặc tính của bộ điều khiển P, I và D: Bộ điều khiển tỷ lệ (KP) có tác dụng làm giảm thời gian lên và sẽ làm giảm, nhưng không triệt tiêu, sai số ở trạng thái xác lập (steady- state error)

Bộ điều khiển tích phân (KI) sẽ triệt tiêu sai số ở trạng thái xác lập, nhưng lại có thể làm giảm chất lượng của đáp ứng quá độ

Bộ điều khiển vi phân (KD) sẽ làm tăng độ ổn định của hệ thống, giảm độ vọt lố và tăng chất lượng đáp ứng quá độ

Tác động của mỗi bộ điều khiển KP, KI, KD được trình bày trong bảng sau:

Trang 14

Thời gian lên Độ vọt lố

Thời gian quá độ

Sai số xác lập

KP Giảm Tăng Thay đổi nhỏTăng

KI Giảm Tăng Tăng Triệt tiêu

KD Thay đổi nhỏGiảm Giảm Thay đổi nhỏ

Cần lưu ý rằng trong bộ điều khiển PID, sự các tác động này có thể không chính xác, vì KP, KI và KD phụ thuộc lẫn nhau Thực ra, thay đổi một trong các thông số này có thể làm thay đổi tác động của hai thông số còn lại

Chỉnh định bộ điều khiển PID bằng phương pháp Zeigler – Nichols: Ban đầu, đặt tất cả các độ lợi KP, KI, KDbằng 0 Sau đó tăng KP lên cho đến khi đạt được giá trị độ lợi Ku, là độ lợi mà ở đó ngõ ra của hệ thống bắt đầu dao động với biên độ không đổi Ku và chu kỳ dao động Tu được dùng để tính toán các độ lợi KP, KI, KD dựa vào công thức sau

Bộ điều

Driver PID cho động cơ DC:

Trang 15

Hình 11: Sơ đồ khối phần cứng

Trong mạch điều khiển này, vi điều khiển đóng vai trò quan trọng nhất

Nó nhận tín hiệu điều khiển từ main board, tín hiệu hồi tiếp từ động cơ thông qua incremental encoder để tính toán ra giá trị PWM cần thiết xuất

ra cho bộ khuếch đại công suất điều khiển động cơ đạt tốc độ/vị trí mong muốn Như đã nói ở trên, PID là thuật toán điều khiển khá đơn giản, do

đó, ta có thể sử dụng các vi điều khiển từ dòng 8bit (8051, AVR, PIC16, PIC18) đến những dòng cao cấp hơn như dòng 16bit (dsPIC, PIC24) hoặc 32bit (ARM, PIC 32bit, AVR 32bit)

Incremental encoder cũng là bộ phận không thể thiếu trong hệ thống, nó cung cấp thông tin về trạng thái hiện thời của hệ thống cho vi điều khiển Encoder có độ phân giải càng cao thì cho chất lượng điều khiển càng tốt Tuy nhiên, encoder có độ phân giải cao thì cũng yêu cầu khả năng xử lý của vi điều khiển cao hơn

Khối công suất nhằm cung cấp điện áp chính xác điều khiển động cơ hoạt động dựa trên việc xử lý, tính toán của vi điều khiển Tùy theo công suất của động cơ cần điều khiển mà ta phải thiết khối này cho phù hợp

IV-nguyên lý hoạt động(điều khiển robot)

Trang 16

Sắp xếp các bánh omni với θ1= π/2, θ2= π/2+ 2π/3= 7π/6, θ3= π/2-2π/3=- π/6

(các bánh xe tạo thành tam giác có đáy nằm ngang)

Từ ma trận liên hệ vận tốc ở phần mô hình động lực học ta có

V1=-sin(π/2).Vx+cos(π/2).Vy+ Rω = -Vx+Rω

=-V.cos θd +Rω

V2=-sin(7π/6).Vx+cos(7π/6).Vy+ Rω

= -sin(7π/6).cos θd.V+ cos(7π/6).sin θd.V+Rω

= sin(π/6).cos θd.V - cos(π/6).sin θd.V+Rω

=V.sin(π/6- θd)+Rω

V3=-sin(-π/6).Vx+cos(-π/6).Vy+ Rω

= sin(π/6).Vx+cos(π/6).Vy+ Rω

=V.sin(π/6+θd)+Rω

* Điều khiển robot

1.Đầu vào

- Góc yêu cầu θd :góc của chuyển động tịnh tiến của robot so với hệ tọa

độ gắn với thân

Trang 17

- Vận tốc xoay Vθ (=Rω)

2.Đầu ra

Đầu ra:là vận tốc cho mỗi bánh của robot để có thể đáp ứng yêu cầu của đầu vào,xác định theo các công thức ở trên

Những giá trị kể trên có thể được hiệu chỉnh bằng một hệ số cho phù hợp với yêu cầu điều khiển hoặc dễ hình dung Ở đây sử dụng khoảng giá trị cho các vận tốc là [-10000;10000];

Dưới đây trình bày chương trình con thực hiện việc điều khiển robot omni

Chú ý là hàm SPI_SendVelocity(1,(int16_t)V1) thực hiện việc truyền yêu cầu cho động cơ số 1 giá trị vận tốc là V1, slave điều khiển động cơ số 1 nhận dữ liệu này qua giao tiếp SPI và thực hiện việc điều khiển vận tốc động cơ cho đúng Ở đây chúng ta có thể thấy ưu điểm của hệ thống master- multi slaves: chip vi điều khiển master chỉ việc tính toán, xử lí, truyền yêu cầu về slave, slave sẽ tự thực thi yêu cầu

/

***********************************************************

************

Trang 18

Decription: Control the movement of robot by giving velocity to each motor slave

Input: V: Transition velocity

Theta: angle of velocity

Vtheta: Orientation velocity

Output: None

***********************************************************

************/

void Robot_Move_PID (float V, float Theta, float Vtheta)

{

float V1, V2, V3; // Velocity given to motor slave

float V1_abs, V2_abs, V3_abs, Vmax;

float Temp;

//Calculate Velocity

V1 = -V*cos(theta*3.1416/180)+Vtheta;

V2 = V*sin( (30-theta)* 3.1416/180 )+Vtheta;

V3 = V*sin( (30+theta)* 3.1416/180 )+Vtheta;

//Calculate the ratio

V1_abs=abs(V1);

V2_abs=abs(V2);

Trang 19

//Calculate max value of V i

Vmax=V1_abs;

if (V2_abs>Vmax) Vmax=V2_abs;

if (V3_abs>Vmax) Vmax=V3_abs;

if (V4_abs>Vmax) Vmax=V3_abs;

//////////////////////////////////////////////

//reduce V to reach the required range

if (Vmax>10000)

{

Temp=10000/Vmax;

V1= V1*Temp;

V2= V2*Temp;

V3= V3*Temp;

V4= V4*Temp;

}

}

// Put the velocity value into the funtion controlling the speed of

Trang 20

SPI_SendVelocity(2,(int16_t)V2);

SPI_SendVelocity(3,(int16_t)V3);

}

3 Hiệu chỉnh chiều quay động cơ

Chiều quay mỗi động cơ có thể bị sai trong quá trình lắp ráp phần cứng,

đi dây điện nên cần hiệu chỉnh chiều quay động cơ cho đúng Để thực hiện việc hiệu chỉnh, gọi hàm Robot_Move_PID(3000, 0, 0) để robot đi thẳng và kiểm tra xem các bánh có quay đúng chiều chưa, nếu sai cần đổi lại dây động cơ và encoder

Ngày đăng: 12/06/2016, 12:14

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

TÀI LIỆU LIÊN QUAN

w