PDA

View Full Version : Cơ bản về bài toán động học cho robot di động 2D


falleaf
29-11-2005, 11:56 AM
Bài toán của bạn là bài toán dead-reckoning, bạn có thể tìm hiểu một số vấn đề về dead-reckoning.

Không biết bác falleaf có thể giải thích chút ít về giải thuật này không, mình có tìm trên mạng nhưng nhiều quá, mà tiếng anh của tui quá tệ nên không hiểu nổi.
Mong bác giúp dùm

Thuật toán tính toán rất đơn giản như sau:

Gọi vị trí đầu là X(0) = 0, Y(0) = 0, góc ban đầu của robot là theta(0) = 0.

Tại bước thứ k+1 sẽ được tính theo vị trí của bước thứ k như sau:

X(k+1) = X(k) + sin[theta(k)].U(k)

Y(k+1) = Y(k) + cos[theta(k)].U(k)

theta(k+1) = theta(k) + {U_R(k) - U_L(k)}/{b}

U(k) = [U_R(k) + U_L(k)]/2

Trong đó,

U_R(k) là quãng đường di chuyển của bánh xe bên phải (encoder đếm nhân với đường kính bánh xe nhân với PI ra quãng đường dịch chuyển của bánh phải). Tương tự U_L(k) của bánh trái.

b = khoảng cách 2 bánh xe.

X là toạ độ X của xe
Y là toạ độ Y của xe
theta là hướng của xe

Đây là bài toán động học thuận và ngược của robot di động 2 chiều, 2 bậc tự do mô hình NEWT. Hầu hết các bạn sinh viên đều làm robot theo mô hình này, nhưng không biết tên của nó.

falleaf
07-12-2005, 11:16 PM
www.picvietnam.com/download/Robot/ROB01.01.PVN.DH.061205.pdf

Các bạn có thể download tài liệu theo link trên.

Bài toán này xử lý hơi rắc rối tí, nhưng khi hiểu được nó rồi, thì với công cụ tính toán tôi cung cấp, các bạn có thể sử dụng một cách vô cùng dễ dàng.

Borenstein trình bày 81 trang về thuật toán này và chứng minh nó, tôi đọc và viết lại còn 13 trang, và nếu các bạn đọc để dùng, sau khi tôi gửi chương trình lên, các bạn chỉ việc bấm 1 nút là bài toán coi như giải quyết xong.

Tạm thời dành cho các bạn sinh viên học và nghiên cứu về robot di động. Nếu ai có hứng thú với bài giới thiệu này, muốn làm thực hành, các bạn cứ thảo luận trên diễn đàn, tôi sẽ giúp đỡ.

Chúc vui.

MC12
23-07-2006, 08:02 AM
Tại sao ta không gắn 2 encoder độc lập 2 bên thành xe chứ không phụ thuộc vào động cơ nữa . Như vậy sai số do trượt tương đối giữa bánh xe với mặt đường bị loại bỏ . Nếu ta tỳ 2 bánh của encoder xuống đất bằng lò xo thì hầu như không bị trượt , như vậy sẽ chính xác hơn. lúc này khoảng cách 2 bánh xe thay bằng khoảng cách 2 bánh encoder . Như vậy có ảnh hưởng đến bài toán này không anh F ?
anh có đoạn code asm nào cho vấn đề này không post lên em tham khảo với ?
Khi trước làm Robot thi Robocon em đã có ý tưởng không sử dụng các sensor quang nên cũng đã thử cách này tuy nhiên em chỉ làm kiểu nghĩ gì làm nấy thôi chứ không có đúng bài bản như thế này : em làm kiểu cho 1 timer chạy và khi tràn nó gây ngắt , trong CT ngắt em đọc số xung 2 encoder(cũng đọc từ 2 timer đếm sự kiện ) và so sánh với nhau rồi tăng giảm vận tốc 2 động cơ bằng cách thay đổi thông số khi băm xung nhưng em chỉ làm mò mẫm thôi vì chưa xác định quan hệ giữa thông số điều chỉnh và sai lệch ...và em thất bại , hì hì , ở sân chơi Robocon ko cho phép em mạo hiểm, vì lợi ích của cả tập thể chứ không phải chỗ để cá nhân mình khám phá và em không có điều kiện theo đuổi cái này , nên vẫn còn ấm ức lắm ,đó cũng là hạn chế của robocon, nhiều khi vì tính hiệu quả mà dù không muốn ta cũng phải (bị)làm mặc dù không có gì hay về công nghệ .
À, mà bài toán có phụ thuộc hướng đặt robot ban đầu không ? ví dụ em kẻ 1 hình vuông , và Robot phải chạy theo hình vuông đó thì khi đặt Robot vào em nghĩ chưa thể xác định góc ban đầu được vì Robot chưa di chuyển . Vậy phải làm thế nào ?có thể Robot sẽ chạy đúng quỹ đạo hình vuông nhưng để theo hình vuông kẻ sẵn thì liệu có đúng không ?
Sorry anh vì có dính đến Robocon ở đây !!!

falleaf
23-07-2006, 10:51 AM
Em hiểu sai bài toán rồi, bài toán này là dùng 2 encoder. Mặc dù có encoder, nhưng nếu bánh xe không quay, mà trượt trên sàn, như vậy, encoder không đọc được. Ngoài ra, việc điều khiển không đơn giản như em nghĩ.

Robocon không phải là cái mà anh gọi là robot.

Chúc vui

friends
25-07-2006, 10:45 PM
cac anh, anh nao co so do mach cho pic16f876a (so do mach bat buoc cho con nay de no hoat dong), vi du nhu thach anh bao nhieu meg va mac nhu the nao...co the link cho em duoc khong?

ntc
26-07-2006, 02:43 PM
Bạn post bài không đúng luồng rồi. Lần sau rút kinh nghiệm nhé. :)

Bạn qua luồng "Cơ bản về vi điều khiển và PIC". Trong đó có đó.

Có thể download cái tutorial trong luồng này để tham khảo thêm.

http://picvietnam.com/forum/showthread.php?t=238

Mặc dù đây là bài hướng dẫn cho PIC6F877A, nhưng PIC16F876A cũng có thể áp dụng tương tự.

tienminh
12-10-2006, 09:58 PM
Bác F up lên chương trình "UMBmark Calculator" cho em tham khảo được không?cảm ơn bác nhiều.

falleaf
12-10-2006, 11:13 PM
http://kho.tailieuvietnam.net/index.php?option=com_docman&task=cat_view&gid=46&Itemid=2

Nó đã nằm trong kho Tài Liệu Việt Nam, keyword: UMBMark. thằng này hình như hồi đó F viết bằng .NET, chưa viết xong nhưng lười vứt đó, còn một đống nút niếc vẫn để đó.

tienminh
18-10-2006, 11:50 PM
cảm ơn pác,nếu có thời gian pác đưa ra 1 giải pháp tổng thể cho mobile robot được thì tốt quá

falleaf
19-10-2006, 12:11 AM
Đang tiến hành mua đồ chuẩn bị cho dự án Mobile Robot Base, có nghĩa là trang bị một số bánh xe, động cơ, các linh kiện và nguyên vật liệu cần thiết để chuẩn bị cho việc làm ra một cái khung robot nền.

Bao gồm:
- Khung để có thể chồng lên cao (giống như trong luận văn của F làm)
- Bánh xe được điều khiển bằng PID, mỗi bánh có một bộ điều khiển riêng, chạy riêng. Việc còn lại là nhận giá trị đặt qua giao tiếp I2C hoặc RS485, hoặc CAN (đang lựa chọn).
- Phần điện tử sẽ bao gồm một con dsp để thu thập dữ liệu cảm biến, và tất cả đều quy về chuẩn giao tiếp nhấn định, có thể làm dạng CAN là chuẩn nhất.
- Còn tất cả các cảm biến thì sẽ mỗi dạng sẽ có một module riêng.

tóm lại, mô hình chủ yếu sẽ là kiểu mô hình reactive ở mức độ sơ cấp.

Còn sau này khi kết hợp lại xử lý, thì tuỳ mỗi đề tài, mỗi dự án, sẽ tiến hành theo cách riêng.

Khi tiến hành dự án, sẽ cung cấp các thông tin chi tiết.

Chúc vui

tienminh
19-10-2006, 12:17 AM
Em giúp dc bác cái gì không,đang rảnh

tienminh
19-10-2006, 12:25 AM
Đang tiến hành mua đồ chuẩn bị cho dự án Mobile Robot Base, có nghĩa là trang bị một số bánh xe, động cơ, các linh kiện và nguyên vật liệu cần thiết để chuẩn bị cho việc làm ra một cái khung robot nền.

Bao gồm:
- Khung để có thể chồng lên cao (giống như trong luận văn của F làm)
- Bánh xe được điều khiển bằng PID, mỗi bánh có một bộ điều khiển riêng, chạy riêng. Việc còn lại là nhận giá trị đặt qua giao tiếp I2C hoặc RS485, hoặc CAN (đang lựa chọn).
- Phần điện tử sẽ bao gồm một con dsp để thu thập dữ liệu cảm biến, và tất cả đều quy về chuẩn giao tiếp nhấn định, có thể làm dạng CAN là chuẩn nhất.
- Còn tất cả các cảm biến thì sẽ mỗi dạng sẽ có một module riêng.

tóm lại, mô hình chủ yếu sẽ là kiểu mô hình reactive ở mức độ sơ cấp.

Còn sau này khi kết hợp lại xử lý, thì tuỳ mỗi đề tài, mỗi dự án, sẽ tiến hành theo cách riêng.

Khi tiến hành dự án, sẽ cung cấp các thông tin chi tiết.

Chúc vui

-Về chuẩn giao tiếp bác nên chọn CAN
-Về thu thập dữ liệu CB thì dùng DSP là vung tay quá trán(không đến mức phải như thế) ,nếu CB là tương tự thì dùng ADC 12 bit là ổn,nếu CB là số thì dùng 1 con CPLD cỡ nhỏ (XC9536)cho nó linh động trong việc thay đổi giao tiếp .
-Về MCU thì dùng 1 con tầm tầm là đủ VD: PIC18,ATMEGA128,...

falleaf
19-10-2006, 12:38 AM
Dự tính làm dsp vì còn phải làm các bộ lọc. Vì có một số cảm biến không phải là ADC thông thường lấy được.

Vẫn tiếp tục nghe ý kiến.

Chúc vui

odense
13-11-2006, 03:54 AM
Thuật toán tính toán rất đơn giản như sau:

Gọi vị trí đầu là X(0) = 0, Y(0) = 0, góc ban đầu của robot là theta(0) = 0.

Tại bước thứ k+1 sẽ được tính theo vị trí của bước thứ k như sau:

X(k+1) = X(k) + sin[theta(k)].U(k)

Y(k+1) = Y(k) + cos[theta(k)].U(k)

theta(k+1) = theta(k) + {U_R(k) - U_L(k)}/{b}

U(k) = [U_R(k) + U_L(k)]/2

Trong đó,

U_R(k) là quãng đường di chuyển của bánh xe bên phải (encoder đếm nhân với đường kính bánh xe nhân với PI ra quãng đường dịch chuyển của bánh phải). Tương tự U_L(k) của bánh trái.

b = khoảng cách 2 bánh xe.

X là toạ độ X của xe
Y là toạ độ Y của xe
theta là hướng của xe

Đây là bài toán động học thuận và ngược của robot di động 2 chiều, 2 bậc tự do mô hình NEWT. Hầu hết các bạn sinh viên đều làm robot theo mô hình này, nhưng không biết tên của nó.

Hi,
Dung day la ly thuyet co ban cua dead-reckoning nhung gio thi no da duoc nang cap rat nhieu cho mobile robots roi. Don gian vi interior sensors thi khong cho ket qua chinh xac vi vay can rat nhieu giai thuat va phuong phap khac nhau de lam dieu do.
SLAM la mot mang co rat nhieu kien thuc lien quan den van de nay. Hi vong Falleaf co nhung bai viet lien quan giup cac ban nang cap kien thuc de lam robots thong minh hon chu khong don thuan la line following nhu Robocon :))
Kalman or Particle fillers co the giup nang cap dead-reckoning cac ban a.

scentoflove
06-10-2007, 01:09 PM
Hiện em đang làm mobile robot, 2 bánh xe đk riêng (pic18, giao tiếp i2c), 1 dspic trung tâm sử dụng RTOS, sensor sonar (giao tiếp i2c) và cam (nếu có thể). Nhiệm vụ là phát hiện được mục tiêu (xác định được khoảng cách, góc lệch) thì sẽ chạy tới và trên đường đi có thể tránh vật cản (tự chạy) hoặc chạy chính xác theo 1 lộ trình vẽ trước.
Em đang có 1 số thắc mắc:
_Encoder trên 2 bánh nên gắn sau động cơ (sai số trượt bánh) hay gắn ngoài sát bánh (sai số xe trượt) hay là tì trực tiếp lên bánh.
Em định xài đcơ ko hộp số, truyền động bằng đai. Em nghĩ chọn loại động phụ thuộc vào cách gắn encoder
_Nếu xe chạy theo lộ trình cố đình có thể sử dụng UMBmark như a nói, nhưng khi xe tự chạy sử dụng giải thuật gì để tránh vật cản (ngẫu nhiên). Các giải thuật pathfinding đa số là dựa vào 1 searh space có sẵn, trong khi bài toán của em ko xác định được (nếu ko có vật thì đi thẳng nhưng có vật cản ngẫu nhiên thì sẽ tránh và tiếp tục như vậy). Em xem trong phim một số dề tài làm rất hay mà ko biết kiếm như thế nào

nod32
12-03-2008, 08:42 PM
Các Bác chỉ giúp cách tính động học và dộng lực học cho máy bay gồm 4 cánh quạt đặt trên một mặt phẳng.
Xin cam ơn nhiều.

ngohaibac
06-09-2008, 12:08 AM
Anh Hiệp upload lại cái chương trình UMBmark Calculator đi nhé. Link ở tailieuvietnam die rùi, có thể là do tailieuvietnam.net vẫn chưa ok để hoạt động mà.

Thank anh.

ngohaibac
06-09-2008, 12:15 AM
Cài bài báo mà anh Hiệp nói đây nè:

UMBmark — A Method for Measuring, Comparing, and Correcting
Dead-reckoning Errors in Mobile Robots (http://www-personal.umich.edu/~johannb/Papers/umbmark.pdf)

Link này từ trang web con của Johann Borenstein tại website của trường umich đó.

pavo_lusa
04-10-2008, 02:21 AM
Hiện em đang làm mobile robot, 2 bánh xe đk riêng (pic18, giao tiếp i2c), 1 dspic trung tâm sử dụng RTOS, sensor sonar (giao tiếp i2c) và cam (nếu có thể). Nhiệm vụ là phát hiện được mục tiêu (xác định được khoảng cách, góc lệch) thì sẽ chạy tới và trên đường đi có thể tránh vật cản (tự chạy) hoặc chạy chính xác theo 1 lộ trình vẽ trước.
Em đang có 1 số thắc mắc:
_Encoder trên 2 bánh nên gắn sau động cơ (sai số trượt bánh) hay gắn ngoài sát bánh (sai số xe trượt) hay là tì trực tiếp lên bánh.
Em định xài đcơ ko hộp số, truyền động bằng đai. Em nghĩ chọn loại động phụ thuộc vào cách gắn encoder
_Nếu xe chạy theo lộ trình cố đình có thể sử dụng UMBmark như a nói, nhưng khi xe tự chạy sử dụng giải thuật gì để tránh vật cản (ngẫu nhiên). Các giải thuật pathfinding đa số là dựa vào 1 searh space có sẵn, trong khi bài toán của em ko xác định được (nếu ko có vật thì đi thẳng nhưng có vật cản ngẫu nhiên thì sẽ tránh và tiếp tục như vậy). Em xem trong phim một số dề tài làm rất hay mà ko biết kiếm như thế nào

chào bạn scentoflove!
bạn làm con robot này chưa ? chia sẻ cho mình 1 ít kinh nghiệm nhé.
chi phí tối thiểu cho thiết bị để làm con robot này khoảng bao nhiêu vậy ?
Thanks !

belun2101
23-12-2008, 02:10 PM
anh fa . anh giúp em một lúc được ko?
em đang lam thử robot cỡ vừa nhưng trong cơ cấu em có sử dụng một động cơ servo
nhưng theo lý thuyết để động cơ servo đạt được công suất lớn cần cấp xung từ 1-2s,
nhưng em làm mạch điện tử chỉ có thể làm được độ rộng xung đến 200us thôi.vậy để tạo được độ rộng xung từ 1-2s em cần phải thiết kế mạch điều khiển cua nó như thế nào?
trong khi đó động cơ servo có tín hiệu phản hồi em cung còn lúng túng vì tín hiệu trở lại của động cơ em chưa hiểu????????
anh bớt chút thời gian giúp em với nhé.cảm ơn trước""

hangocminh1989
19-05-2010, 11:21 PM
các anh à,muốn làm con robot biết khi nào có vật thì chạy tới gắp vật mang về đích rùi quay về chờ thì làm thế nào????đặc biệt không cho dò line nha và biết trước quãng đường di chuyển, biết trước đích chỗ nào????mở rộng lên là đặt nhiều vật...hic...giúp đệ với...đệ đang khó khan lắm đây...chưa biết làm sao hết
thank nha

hangocminh1989
29-05-2010, 10:18 PM
chán.....không ai nói gì hết...hic

trinhduchanh
30-05-2010, 01:27 PM
Anh Hiệp có thề upload lại chương trình UMBmark Calculator lên diễn đàn được kô? em đang cần tham khảo

doanvanlap
13-01-2011, 09:33 PM
Hiện em đang làm mobile robot, 2 bánh xe đk riêng (pic18, giao tiếp i2c), 1 dspic trung tâm sử dụng RTOS, sensor sonar (giao tiếp i2c) và cam (nếu có thể). Nhiệm vụ là phát hiện được mục tiêu (xác định được khoảng cách, góc lệch) thì sẽ chạy tới và trên đường đi có thể tránh vật cản (tự chạy) hoặc chạy chính xác theo 1 lộ trình vẽ trước.
Em đang có 1 số thắc mắc:
_Encoder trên 2 bánh nên gắn sau động cơ (sai số trượt bánh) hay gắn ngoài sát bánh (sai số xe trượt) hay là tì trực tiếp lên bánh.
Em định xài đcơ ko hộp số, truyền động bằng đai. Em nghĩ chọn loại động phụ thuộc vào cách gắn encoder
_Nếu xe chạy theo lộ trình cố đình có thể sử dụng UMBmark như a nói, nhưng khi xe tự chạy sử dụng giải thuật gì để tránh vật cản (ngẫu nhiên). Các giải thuật pathfinding đa số là dựa vào 1 searh space có sẵn, trong khi bài toán của em ko xác định được (nếu ko có vật thì đi thẳng nhưng có vật cản ngẫu nhiên thì sẽ tránh và tiếp tục như vậy). Em xem trong phim một số dề tài làm rất hay mà ko biết kiếm như thế nào
mình cũng đang muốn làm con như bạn nhưng ý tưởng của mình có sử dụng kĩ thuật xử lí ảnh .nhưng chưa biết bắt đầu từ đâu.chúng ta chia sẻ kinh nghiệm nha.email của mình(doanvan_lap1990@yhoo.com)

quyenne007
18-09-2012, 09:06 AM
như con robot của tui làm ne...dùng thuật toán di động 2D..có cảm biến siêu âm để tránh vật cản...robot có thể đi đến điểm đích được ng sử dụng đặt trước
http://www.picvietnam.com/forum/showthread.php?t=30502

van.hung
10-02-2015, 12:44 PM
như con robot của tui làm ne...dùng thuật toán di động 2D..có cảm biến siêu âm để tránh vật cản...robot có thể đi đến điểm đích được ng sử dụng đặt trước
http://www.picvietnam.com/forum/showthread.php?t=30502
,,,,,,,,,,,,,,,,,,,,,,