Lê Hùng Linh và cs<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
73(11): 71 - 77<br />
<br />
MÔ HÌNH ROBOT ĐIỀU KHIỂN TỪ XA BẰNG MÁY TÍNH<br />
THÔNG QUA SÓNG RADIO<br />
Lê Hùng Linh*, Dương Chính Cương, Ngô Hữu Huy<br />
Khoa Công nghệ thông tin - ĐH Thái Nguyên<br />
<br />
TÓM TẮT<br />
Hiện nay, các robot ngày càng đóng vai trò quan trọng trong các quá trình công nghiệp cũng như<br />
trong đời sống hàng ngày. Việc ứng dụng các loại robot vào trong công nghiệp sẽ giúp cho quá<br />
trình sản xuất được nhanh chóng và đảm bảo độ chính xác cao. Nhưng hiện nay ở Việt Nam, robot<br />
hầu như chưa được sử dụng rộng rãi, khái niệm robot đang được phổ biến trong mấy năm gần đây.<br />
Do vậy, lĩnh vực nghiên cứu và chế tạo robot phục vụ cho sản xuất cũng như các mục đích dân<br />
dụng vẫn còn khá mới mẻ. Robot có rất nhiều loại như là robot sử dụng trong các dây chuyền sản<br />
xuất, robot dò đường, robot lau chùi cửa kính cho các toà nhà cao tầng, robot chống khủng bố.<br />
Trong bài báo này, chúng tôi nghiên cứu tổng quan về các kiến thức liên quan đến nguyên lý hoạt<br />
động và cách thức điều khiển Robot và các mô hình robot; Tìm hiểu các tài liệu và thiết bị liên<br />
quan; Phân tích và thiết kế mô hình robot điều khiển từ xa bằng sóng điện từ. Xây dựng mạch điều<br />
khiển robot, thiết kế cơ khí cho robot và thực hiện điều khiển robot thông qua mô đun truyền thông<br />
bằng sóng điện từ. Xây dựng chương trình điều khiển robot trên máy tính và lưu lại quá trình hoạt<br />
động của robot, mô phỏng trạng thái hoạt động của robot trên máy tính.<br />
Từ khóa: Mô phỏng, trạng thái, sóng điện từ, mô hình, chương trình điều khiển.<br />
<br />
TỔNG QUAN CÁC MÔ HÌNH ROBOT<br />
Định nghĩa[4]: “Một kiểu mô hình là một<br />
triết lý hoặc một tập hợp những công nhận và<br />
kỹ thuật, mô tả đặc điểm cách tiếp cận một<br />
lớp các vấn đề. Nó vừa là cách xem xét thế<br />
giới, vừa là một tập hợp các công cụ giải<br />
quyết vấn đề.” Lịch sử phát triển robot đã trải<br />
qua 3 kiểu mô hình, đó là kiểu thứ bậc, kiểu<br />
phản hồi và kiểu tổng hợp. Trong một hệ<br />
thống robot, luôn luôn tồn tại ba nhóm chức<br />
năng cơ bản đó là Cảm nhận, Hành động và<br />
Lập kế hoạch. Các kiểu mô hình robot được<br />
xác định dựa trên mối quan hệ của 3 nhóm<br />
chức năng cơ bản đó.<br />
Kiểu mô hình thứ bậc:<br />
Đây là kiểu mô hình xuất hiện đầu tiên, trong<br />
đó robot cố bắt chước cách con người suy<br />
nghĩ: sau khi cảm nhận được về thế giới xung<br />
quanh, người ta sẽ suy nghĩ để lập kế hoạch,<br />
và hành động đáp ứng.<br />
Với cách này, dữ liệu cảm nhận thường phải<br />
đầy đủ để có một đánh giá bao quát về môi<br />
trường xung quanh, sau đó luôn qua xử lý ở<br />
bước lập kế hoạch.<br />
<br />
<br />
<br />
Tel: 0929077888<br />
<br />
Hình 1. Kiểu mô hình thứ bậc<br />
<br />
Như vậy, kiểu này không cho phép dữ liệu<br />
truyền thẳng đến hành động như kiểu một<br />
phản xạ vô điều kiện, điều này làm cho robot<br />
trở nên thiếu nhanh nhẹn. Kiểu mô hình này<br />
đã không còn được sử dụng từ hơn 20 năm<br />
qua.<br />
Kiểu mô hình phản hồi:<br />
Kiểu phản xạ gần như ngược lại với kiểu thứ<br />
bậc, kiểu này không giữ lại phần lập kế<br />
hoạch, các cảm nhận của robot sẽ được<br />
truyền trực tiếp sang hành động.<br />
<br />
Hình 2. Kiểu mô hình phản hồi<br />
<br />
Theo kiểu này, robot chứa sẵn nhiều cặp<br />
tương ứng Cảm nhận – Hành động, được gọi<br />
là các bộ hành vi. Các hành vi xảy ra có tính<br />
đồng thời, do được xử lý riêng rẽ. Và vì robot<br />
có thể thực hiện nhiều hành vi một lúc, không<br />
lập kế hoạch nên nó tiết kiệm được rất nhiều<br />
thời gian. Kiểu mô hình này đã mang đến<br />
nhiều thành tựu to lớn, nhưng rõ ràng nó<br />
không thích hợp với các loại robot nhiều<br />
chức năng. Kiểu này giống như kiểu người ta<br />
dạy các con vật mà không làm cho con vật đó<br />
<br />
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên<br />
<br />
http://www.lrc-tnu.edu.vn<br />
<br />
| 71<br />
<br />
Lê Hùng Linh và cs<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
suy nghĩ thông minh hơn. Kiểu mô hình này<br />
đòi hỏi sự hiểu biết về không gian hoạt động<br />
toàn cục trước khi lập trình để tìm ra tất cả<br />
các hành vi có thể có của robot. Các nhà<br />
nghiên cứu thực hiện mô hình này để giảm<br />
thiểu giá thành phần cứng của sản phẩm bằng<br />
cách tăng mức độ tính toán ban đầu khi tạo ra<br />
các hành vi của robot.<br />
Kiểu mô hình tổng hợp:<br />
<br />
Kiểu tổng hợp là sự kết hợp 2 kiểu mô hình<br />
trên, làm cho robot suy nghĩ uyển chuyển<br />
giống người hơn, và hiện nay hầu hết các<br />
nghiên cứu đi theo hướng này. Kiểu này tách<br />
việc lập kế hoạch ra khỏi các hành vi của<br />
robot.<br />
<br />
73(11): 71 - 77<br />
<br />
công trong việc thiết kế cho mỗi ứng dụng.<br />
<br />
Mô hình điều khiển robot từ xa bằng<br />
máy tính thông qua sóng điện từ được<br />
xây dựng theo kiểu mô hình tổng hợp<br />
<br />
(Hình 3). Điều khiển robot từ xa cần có tín<br />
hiệu trạng thái phản hồi từ robot để biết được<br />
trạng thái của robot tại từng thời điểm, giúp<br />
cho việc điều khiển dễ dàng và chính xác.<br />
Robot được điều khiển từ xa bằng máy tính,<br />
việc lập kế hoạch, lưu trữ thông tin do máy<br />
tính thực hiện rồi gửi yêu cầu cần thực hiện<br />
cho robot. Robot trong hệ thống tiếp nhận<br />
thông in chủ yếu từ máy tính truyền qua bộ<br />
thu/phát sóng RF. Do đó việc lựa chọn mô<br />
hình theo mô hình tổng hợp đã đáp ứng đủ<br />
theo yêu cầu của hệ thống.<br />
<br />
Robo<br />
t<br />
<br />
Hình 3. Kiểu mô hình tổng hợp<br />
<br />
Lập kế hoạch tương tác với các bộ hành vi<br />
bằng một phương thức mà người ta gọi là<br />
“nghe lén”. “Nghe lén” là một phương thức<br />
lấy thông tin từ bộ phận Cảm nhận để điều<br />
chỉnh lại các thông tin toàn cục, tác động trở<br />
lại các hành vi của robot.<br />
Với kiểu mô hình này, các robot thông minh<br />
hơn và cũng không tốn nhiều thời gian cho<br />
việc lập kế hoạch như ở mô hình thứ bậc, và<br />
lại cho phép robot thực hiện nhiều chức năng<br />
hơn so với mô hình phản hồi.<br />
Kiểu mô hình xác suất:<br />
Kiểu mô hình này là một kiểu mô hình mới<br />
sử dụng tất cả các kiểu mô hình trên, nhưng<br />
thay vì tính toán với các thông số cụ thể, tất<br />
cả các dữ liệu và trạng thái của robot đều ở<br />
dưới dạng xác suất và thống kê. Kiểu mô<br />
hình này cho phép robot giảm thiểu các tính<br />
toán, tăng khả năng hoạt động trong các môi<br />
trường thiếu thông tin, với các cảm biến có<br />
sai số lớn, và khả năng điều khiển bền vững.<br />
ĐỀ<br />
XUẤT<br />
MÔ<br />
HÌNH<br />
ROBOT<br />
ĐIỀU KHIỂN TỪ XA<br />
Lựa chọn được mô hình phù hợp nhất sẽ giúp<br />
cho việc giải quyết vấn đề dễ dàng hơn. Vì<br />
vậy, việc biết các kiểu mô hình của công<br />
nghệ robot là một chìa khoá để có thể thành<br />
<br />
Hình 4. Mô hình tổng quan hệ thống<br />
<br />
Xây dựng mô hình<br />
Hệ thống Robot điều khiển từ xa bằng máy<br />
tính bao gồm hai chương trình trên máy tính<br />
và trên Robot. Máy tính và Robot liên lạc với<br />
nhau bằng sóng điện từ. Hệ thống được mô tả<br />
như trong hình vẽ.<br />
Trong hệ thống, Máy tính và Robot có thể<br />
liên lạc với nhau với một khoảng cách xa<br />
bằng sóng điện từ. Khoảng cách giữa Máy<br />
tính và Robot có khoảng cách tối đa là 900<br />
m (không dùng ăng ten) và 63 km (khi dùng<br />
ăng ten).<br />
Trong đó Máy tính sẽ thực hiện điều khiển<br />
Robot, đồng thời nó cũng lưu lại lịch trình<br />
hoạt động cũng như trạng thái của Robot.<br />
Robot sẽ thực hiện việc di chuyển và làm việc<br />
theo sự điều khiển của máy tính.<br />
Mô hình robot được tiến hành xây dựng gồm<br />
các thành phần sau:<br />
1. Hệ thống phát động và chấp hành.<br />
2. Hệ thống cảm biến.<br />
3. Bộ điều khiển, gồm cả phần mềm và phần<br />
cứng hệ thống.<br />
4. Chương trình điều khiển.<br />
<br />
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên<br />
<br />
http://www.lrc-tnu.edu.vn<br />
<br />
| 72<br />
<br />
Lê Hùng Linh và cs<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
Hệ thống phát động và chấp hành:<br />
Chuyển động của robot được thực hiện bởi hệ<br />
thống này. Hệ thống bao gồm:<br />
<br />
– Nguồn cung cấp điện<br />
– Khuyếch đại công suất<br />
– Động cơ<br />
– Truyền động cơ khí<br />
Hình 5 là sơ đồ ghép nối hệ thống phát động<br />
và chấp hành, trong đó thể hiện sự chuyển<br />
đổi năng lượng.<br />
<br />
Hình 5. Sơ đồ hệ thống phát động và chấp hành<br />
<br />
Để thể hiện quan hệ chung, Pc thể hiện tín<br />
hiệu điều khiển, Pu là công suất cơ học cần<br />
thiết để làm robot chuyển động. Các đại<br />
lượng trung gian, công suất điện cung cấp<br />
cho động cơ Pa, công suất nguồn Pp, công<br />
suất cơ học do động cơ phát ra Pm. Ngoài ra<br />
còn có các loại công suất tổn hao trong các<br />
khâu trung gian: khuyếch đại công suất Pda,<br />
động cơ Pds, truyền dẫn Pdt.<br />
Hệ thống cảm biến:<br />
<br />
Hệ thống nhận ngõ vào là các dữ liệu cảm<br />
biến, dựa vào các thuật toán biến đổi và các<br />
phương pháp điều khiển để biến đổi nó thành<br />
thông tin cảm biến, kèm theo tất cả các phần<br />
cứng liên quan.<br />
Bộ điều khiển:<br />
<br />
Sử dụng chip Atmega16 làm bộ điều khiển<br />
cho robot. Bộ điều khiển sẽ nhận tín hiệu<br />
điều khiển từ máy tính, xử lý rồi điều khiển<br />
hoạt động của robot và gửi tín hiệu trạng thái<br />
tới máy tính.<br />
Chương trình điều khiển:<br />
<br />
Chương trình điều khiển trên máy tính được<br />
viết bằng ngôn ngữ Microsoft Visual Basic<br />
6.0; Chương trình sẽ cung cấp một giao diện<br />
đơn giản, dễ sử dụng cho việc điều khiển<br />
như: điều khiển robot tiến, lùi, quay trái,<br />
quay phải, nâng/hạ cánh tay, gắp/nhả vật,<br />
quay trục, hiển thị những thông tin hiện thời<br />
<br />
73(11): 71 - 77<br />
<br />
của robot, lưu lại lịch trình hoạt động cũng<br />
như trạng thái của Robot.<br />
Chương trình điều khiển trên chip Atmega16<br />
được viết bằng ngôn ngữ C. Sau khi nhận<br />
được tín hiệu điều khiển từ máy tính, chương<br />
trình điều khiển sẽ xác định công việc phải<br />
làm và khối lượng công việc cần làm cho<br />
robot một cách chính xác như xác định tiến,<br />
lùi bao nhiêu; quay trái, quay phải bao nhiêu<br />
độ, quay trục hay quay xe, gắp hay nhả vật,<br />
nâng hay hạ cánh tay... và gửi tín hiệu phản<br />
hồi cho máy tính.<br />
Phương trình toán học sử dụng trong robot<br />
Robot có thể thao tác các công việc theo<br />
đúng yêu cầu, với chương trình điều khiển<br />
trên CPU của robot được lập trình chính xác.<br />
Một số phương trình, công thức sử dụng<br />
trong chương trình như: phương trình tính<br />
quãng đường di chuyển, tính góc quay xe,<br />
tính góc quay trục. Sau khi nhận được quãng<br />
đường cần di chuyển, góc cần quay gửi từ<br />
máy tính, robot dựa vào phương trình để tính<br />
ra số xung điều khiển.<br />
Phương trình quy đổi quãng đường di chuyển<br />
của robot sang xung điều khiển của CPU sử<br />
dụng trong robot:<br />
<br />
Do việc lựa chọn động cơ và bánh xe nên ta<br />
có:<br />
Cứ chip xuất 1T (1 xung ) thì động cơ bước<br />
quay 1 bước = 7.2o. Vây số xung để động cơ<br />
bước quay 1 vòng = 360o là:<br />
<br />
x<br />
<br />
360<br />
50T<br />
7.2<br />
<br />
Số xung để động cơ bước quay 14 vòng<br />
y 14*50 700 T; (1)<br />
Một vòng bánh xe có độ dài là 310 mm (chu<br />
vi bánh xe). Vậy: 3 vòng bánh xe nên độ dài<br />
là d = 3*310 = 930 mm (2)<br />
Do thiết kế cơ khí của hệ thống nên ta có:<br />
Cứ động cơ bước quay 14 vòng thì bánh xe<br />
quay 3 vòng; Hay chip xuất 700T xe đi được<br />
quãng đường là 930mm (theo 1 và 2). Vậy số<br />
xung để đi được quãng đường d (mm) là T<br />
<br />
x<br />
<br />
d * 700 d * 70<br />
<br />
(3)<br />
930<br />
93<br />
<br />
Phương trình quy đổi góc quay robot sang<br />
Xung điều khiển của CPU trong robot<br />
<br />
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên<br />
<br />
http://www.lrc-tnu.edu.vn<br />
<br />
| 73<br />
<br />
Lê Hùng Linh và cs<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
Theo công thức tính độ dài của cung tròn:<br />
l=R*. Với tính bằng radian, mà chip nhận<br />
được giá trị góc từ máy tính gửi là tính bằng<br />
độ, nên chuyển đơn vị góc từ độ sang radian.<br />
Cứ 180o tương ứng với radian<br />
Hay 45o tương ứng với arctan(1) radian<br />
Vậy để quay Ao thì ta có<br />
<br />
73(11): 71 - 77<br />
<br />
Modul về cơ khí<br />
<br />
A * arctan(1)<br />
radian<br />
45<br />
A *<br />
(không tính <br />
vì số không được<br />
180<br />
<br />
<br />
<br />
chương trình máy tính định nghĩa sẵn, còn<br />
hàm arctan(1) có sẵn trong chương trình máy<br />
tính).<br />
<br />
Theo thiết kế robot, hai bánh trước là bánh đa<br />
hướng giúp cho robot di chuyển dễ dàng, hai<br />
bánh sau là phát động, khoảng cách giữa hai<br />
bánh là 380 mm và có thể chuyển động độc<br />
lập nhau. Vậy khi quay robot, hai bánh sẽ<br />
quay ngược chiều nhau và tâm quay nằm ở<br />
giữa trục hai bánh, nên bán kính của cung<br />
tròn là R=380/2=190 mm.<br />
Do đó, độ dài cung tròn hay chính là quãng<br />
đường cần di chuyển ứng với góc quay Ao là:<br />
<br />
A * arctan(1)<br />
)<br />
45<br />
190<br />
A * arctan(1) * s<br />
45<br />
<br />
l R * 190 * (<br />
<br />
Hình 6. Thiết kế hệ thống cơ khí<br />
Modul về mạch<br />
<br />
Modul về mạch gồm 2 modul nhỏ là:<br />
modul mạch điều khiển và modul mạch công<br />
suất.<br />
- Sơ đồ khối hệ thống robot:<br />
<br />
Theo phương trình 2.3: số xung để quay được<br />
A0 là<br />
<br />
x<br />
<br />
Mô<br />
đun<br />
truyền<br />
thông<br />
<br />
l * 70<br />
190* 70<br />
A * arctan(1) *<br />
T<br />
93<br />
45 * 93<br />
<br />
hay<br />
<br />
CPU<br />
<br />
Phối<br />
hợp<br />
công<br />
suất<br />
<br />
Khối<br />
chấp<br />
hành<br />
<br />
Hình 7. Sơ đồ khối hệ thống robot<br />
<br />
l * 70<br />
2660<br />
A * arctan(1) *<br />
T (4)<br />
93<br />
837<br />
Phương trình quy đổi góc quay robot sang<br />
x<br />
<br />
- Modul điều khiển:<br />
<br />
xung điều khiển của CPU trong robot<br />
<br />
Do thiết kế cơ khí của hệ thống nên ta có: Cứ<br />
động cơ bước quay 14 vòng thì trục cánh tay<br />
quay 5 vòng; Hay chip xuất 700T trục cánh<br />
tay quay 5*360o = 1800o (theo 1).<br />
Vậy số xung để trục cánh tay quay góc Go là:<br />
x<br />
<br />
G * 700 G * 7<br />
<br />
T (5)<br />
1800<br />
18<br />
<br />
PHẦN CỨNG<br />
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên<br />
<br />
http://www.lrc-tnu.edu.vn<br />
<br />
| 74<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
Lê Hùng Linh và cs<br />
<br />
Hình 8. Sơ đồ mạch nguyên lý của mạch chip<br />
<br />
- Modul công suất:<br />
<br />
73(11): 71 - 77<br />
<br />
3: Obj = bàn tay<br />
Khung truyền điều khiển thân robot:<br />
1<br />
1(Trái)<br />
<br />
1<br />
* *<br />
(Thân)<br />
<br />
2<br />
<br />
G G G<br />
<br />
(Tiến)<br />
<br />
D D D<br />
<br />
1 2 3<br />
<br />
2<br />
<br />
1 2 3<br />
<br />
(Phải)<br />
0<br />
(Không<br />
<br />
0<br />
0 0 0<br />
<br />
THUẬT TOÁN ĐIỀU KHIỂN TRÊN PC<br />
Khung truyền dữ liệu từ máy tính tới CPU của<br />
robot<br />
<br />
- Khung truyền dữ liệu dạng tổng quát:<br />
Để các modul trong hệ thống có thể giao tiếp<br />
với nhau, hiểu nhau và làm việc được với<br />
nhau thì cần quy định khung truyền dữ liệu,<br />
cụ thể khung truyền gồm 3 phần như: Start,<br />
Data, Stop.<br />
Key word<br />
<br />
Key word<br />
<br />
Para 1<br />
<br />
Start<br />
<br />
…<br />
<br />
Para n<br />
<br />
Data<br />
<br />
0 0 0<br />
<br />
(Không<br />
<br />
làm)<br />
<br />
Hình 9. Sơ đồ mạch nguyên lý<br />
của mạch công suất<br />
<br />
#<br />
<br />
(Lùi)<br />
<br />
làm)<br />
<br />
G1, G2, G3: Giá trị góc (đơn vị: độ)<br />
D1, D2, D3: Quãng đương (đơn vị: cm)<br />
Các hoạt động của phần thân robot sẽ ảnh<br />
hưởng đến toàn bộ robot như: tiến, lùi sẽ làm<br />
thay đổi tọa độ robot; quay trái, quay phải sẽ<br />
làm thay đổi hướng của robot (hướng robot là<br />
so với trục OX của sân).<br />
Khung truyền điều khiển phần trục:<br />
Các hoạt động của phần trục như: nâng, hạ,<br />
quay trục trái, quay trục phải (hướng của<br />
cánh tay robot là so với thân robot). Các hoạt<br />
động này không ảnh hưởng đến tọa độ và<br />
hướng của robot.<br />
<br />
Key word<br />
<br />
Stop<br />
<br />
- Khung truyền dữ liệu dạng chi tiết:<br />
Khung truyền có 12 byte:<br />
Start: Đây là phần đầu của khung truyền tin,<br />
sử dụng 2 byte start với key word là: **. Nếu<br />
sai giá trị thì sẽ gây ra lỗi khung truyền.<br />
Data: Sau 2 byte start là 9 byte data.<br />
Stop: Đây là byte kết thúc quá trình truyền 1<br />
gói tin, sử dụng 1 byte stop với key word là:<br />
#. Nếu sai giá trị thì sẽ gây ra lỗi khung<br />
truyền.<br />
<br />
G1, G2, G3: Giá trị góc (đơn vị: độ)<br />
Khung truyền điều khiển bàn tay :<br />
Các hoạt động của bàn tay như: gắp, nhả. Các<br />
hoạt động này không ảnh hưởng đến tọa độ,<br />
hướng của robot và hướng của cánh tay.<br />
1(Gắp)<br />
<br />
*<br />
<br />
Trong đó:<br />
Obj: chỉ đối tượng được điều khiển<br />
1: Obj = thân robot<br />
P3 =<br />
2: Obj = phần trục<br />
<br />
3<br />
<br />
2(Nhả)<br />
<br />
(Tay)<br />
<br />
0<br />
<br />
*<br />
<br />
0<br />
<br />
0<br />
<br />
0<br />
<br />
0<br />
<br />
0<br />
<br />
0<br />
<br />
0<br />
<br />
(Không<br />
làm)<br />
<br />
Thuật toán điều khiển trên máy tính<br />
<br />
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên<br />
<br />
http://www.lrc-tnu.edu.vn<br />
<br />
| 75<br />
<br />
#<br />
<br />