Hội nghị toàn quốc lần thứ 2 về Điều khiển và Tự động hoá - VCCA-2013
389
VCCA-2013
Omni mobile robot tránh vật cản sử dụng cảm biến camera Kinect
Motion Control of Four Wheeled Omni-directional Mobile Robots to Avoid
the Obstacles Using Kinect Camera
Ngô Mạnh Tiến1)
, Phan Xuân Minh2)
, Lê Trung Kiên3)
, Trần Đức Hiếu4)
Phạm Văn
Quyết5)
Nguyễn Ngọc Anh6)
, Hà Thị Kim Duyên 7)
Nguyễn Phương Nam8)
1)
Viện Vật Lý, 8)
Viện Công nghệ vũ trụ - Viện Hàn lâm KH&CN Việt Nam; 2)
,3)
,4)
,5)
Đại
học Bách khoa Hà Nội; 6) 7)
Đại học Công nghiệp Hà Nội;
e-mail: 1)
nmtien@iop.vast.ac.vn, 2)
minhxp-ac@mail.hut.edu.vn, 3)
letrungkien.k53.hut@gmail.com,
4)
hieutd123z.ac@gmail.com
Tóm tắt: Các nghiên cứu tập trung vào cải thiện
và tăng tính linh hoạt và khả năng thích ứng khi làm
việc ở những vị trí và các ứng dụng khác nhau cho
robot tự hành đang thu hút các nhà nghiên cứu. Bên
cạnh ứng dụng các cải tiến các thiết kế cơ khí, cơ
cấu chấp hành chuyển động linh hoạt thì việc ứng
dụng “mắt máy” và phần mềm xử lý, điều khiển sẽ
đem lại cho robot tính linh hoạt và thông minh. Bài
báo trình bày các nghiên cứu về mô hình hóa, mô
phỏng thuật toán điều khiển robot tự hành sử dụng
cơ cấu di chuyển bốn bánh Omni và thuật toán tránh
vật cản trong quá trình di chuyển sử dụng camera
Kinect của Microsoft. Các kết quả mô phỏng và
chạy thử nghiệm cho thấy tính linh hoạt và cơ động
của robot.
Abstract: In recent years, researchers have
concentrated on improving and increasing the
flexibility and adaptation for Mobile Robots when
work at the different positions and applications.
Besides the application of getting better the
designing of mechanics and the flexible motion of
actuators, the using computer vision and processing
software, the controlling will bring for Mobile
Robots the more flexibility and intelligence. This
paper presents the researches about modeling,
simulation the control algorithm for four wheeled
omni-directional Mobile Robots, and the algorithm
for avoiding the obstacles using Kinect Camera of
Microsoft. The results of simulation and
experimental tests prove the good flexibilty and
intelligence.
Keywords: Mobile Robot, Kinect Camera,
OpenNI, OpenCV, Nonlinear Control, Adaptive
Control.
Ký hiệu
Ký hiệu Đơn vị Ý nghĩa
I 2
.g cm mô men quán tính xe Robot
m g khối lượng xe Robot
1t 2t Nm mô men động cơ trái, phải
2L cm chiều ngang của xe Robot
R cm bán kính của bánh xe Robot
Chữ viết tắt
PCL Point Cloud Library
MR Mobile Robot
1. Đặt vấn đề
Khả năng di động trên các địa hình khác nhau làm
robot có nhiều ứng dụng hơn và cũng đòi hỏi phải
giải quyết nhiều vấn đề mới phức tạp hơn. Các
nghiên cứu trong thời gian gần đây tập trung hơn và
phát triển theo hướng cải tiến các phương pháp điều
khiển nhằm tăng cường khả năng thích nghi và
thông minh cho robot. Ngoài vấn đề điều khiển
robot bám theo quỹ đạo nhanh và trơn chu, thì bài
toán tìm đường navigation (vẽ quỹ đạo) là trọng tâm
của các nghiên cứu gần đây.
Trong vấn đề tìm đường, bài toán được quan tâm
nhiều nhất là bài toán tìm đường về đích mà không
chạm vào vật cản trên đường đi. Có 2 loại bài toán
tìm đường cho robot [6,7]: Bài toán cục bộ (local):
môi trường làm việc của robot hoàn toàn không biết
trước hoặc chỉ biết một phần, robot hoàn toàn nhờ
vào sự cảm nhận môi trường trong quá trình di
chuyển thông qua cảm biến gắn trên nó để dò đường.
Bài toán toàn cục (Global): bản đồ môi trường làm
việc của robot hoàn toàn được biết trước, vấn đề
chính phải giải quyết là tìm đường đi cho robot trước
khi nó xuất phát.
Bài toán cục bộ tỏ ra có ưu thế, nó có tính linh hoạt
cao như có thể tránh vật cản khi vật đó di chuyển.
Nhược điểm của bài toán này là robot chỉ cảm nhận
môi trường qua cảm biến gắn cùng, vì thế có thể
không hoàn thành việc tới đích mặc dù có đường đi,
hơn nữa không thể chọn ra được đường đi tối ưu, và
nhược điểm này gần đây được khống chế bằng cách
thay các cảm biến bằng các camera tương tự như
trang bị các “mắt thần” cho robot.
Trong bài báo này, chúng tôi trình bày về mô hình
hóa và mô phỏng đối tượng Omni mobile robot sử
dụng 4 bánh di chuyển đa hướng, các thuật toán điều
khiển bám quỹ đạo cho robot, các nghiên cứu sử
dụng camera Kinect để phát hiện và tìm thông số vật
cản ứng dụng thư viện mã nguồn mở OpenNI và
PCL, và thuật toán tránh vật cản ứng dụng hệ sự
kiện rời rạc để phân tích và lập trình cho Robot.
Bài báo bao gồm 7 phần, sau phần giới thiệu, trong
phần thứ 2, mô hình hóa và phép chuyển đổi nó sang
cấu trúc mong muốn được đưa ra. Phần 3 mô tả một
Hội nghị toàn quốc lần thứ 2 về Điều khiển và Tự động hoá - VCCA-2013
390
VCCA-2013
giải pháp điều khiển phi tuyến dựa trên Hàm
Lyapunov để ổn định tiệm cận hệ kín. Trong phần 4
giới thiệu cảm biến Kinect và ứng dụng trong bài
toán mobile robot tránh vật cản. Phần 5 có đề xuất
một thuật toán để tránh vật cản. Các kết quả thử
nghiệm thực tế được trình bày trong phần 6 và phần
kết luận là các nhận xét tóm tắt.
2. Mô hình hóa Omni mobile robot
Omni mobile robot gồm 4 bánh omni được truyền
động độc lập và được đặt vuông góc với nhau như
hình H. 1:
H. 1 Phối cảnh và hệ trục tọa độ Omni mobile robot
Hình vẽ H.1 thể hiện toàn bộ hệ thống mô hình thực
tế, cấu trúc và kích thước, được gắn với hệ tọa độ cố
định w w wO x y và hệ tọa độ động m m mO x y có gốc
được đặt vào trọng tâm xe robot. Góc đại diện cho
góc quay của xe có chiều dương ngược hướng kim
đồng hồ, và  cũng là góc giữa hệ tọa độ chuyển
động và hệ tọa độ cố định. L là khoảng cách giữ
trọng tâm xe và tâm bánh xe. 1T , 2T , 3T , và 4T là
các lực được sinh ra bởi các bánh xe, r chỉ bán kính
mỗi bánh xe. Dựa vào phương pháp được đề xuất
bởi, ta có mô hình động học ngược của đối tượng
Omni mobile robot được xây dựng trên hệ tọa độ cố
định như sau [3,4,5]:
1 1
2 2
3 3
4 4
( ) ( )
( )
( ) ( )
( ) ( ( )). ( )
( ) ( )
( )
( ) ( )
v t r t
x t
v t r t
v t P t y t
v t r t
t
v t r t
w
w
q
w
q
w
é ù é ù
ê ú ê ú é ù
ê ú ê ú ê ú
ê ú ê ú ê ú= = =ê ú ê ú ê ú
ê ú ê ú ê ú
ê ú ê ú ë û
ê ú ê úë û ë û



(1)
Trong đó:
sin( ) cos( )
cos( ) sin( )
( ( ))
sin( ) cos( )
cos( ) sin( )
L
L
P t
L
L
q q
q q
q
q q
q q
é ù-
ê ú
ê ú- -ê ú= ê ú-ê ú
ê ú
ê úë û
(2)
Để ý rằng, mặc dù ma trận ( ( ))P t là suy biến với
bất kỳ góc  , nhưng ma trận đảo trái của nó có thể
tìm thấy, với #
( ( )). ( ( ))P t P t Iq q = :
#
sin( ) cos( ) sin( ) cos( )
2 2 2 2
cos( ) sin( ) cos( ) sin( )
( ( ))
2 2 2 2
1 1 1 1
4 4 4 4
P t
L L L L
q q q q
q q q q
q
é ù- -
ê ú
ê ú
ê ú
ê ú- -
= ê ú
ê ú
ê ú
ê ú
ê ú
ê úë û
(3)
Điều khiển bám quỹ đạo với mô hình động học (1),
phần này được dành để thiết kế bộ điều khiển động
học để đạt được bám quỹ đạo cho đối tượng Omni
mobile robot. Không giống như loại non-holonomic
mobile robot [2, 6] truyền thống, quỹ đạo của Omni
mobile robot có thể không được suy ra từ mô hình
động học. Mục tiêu điều khiển là tìm được véc-tơ
vận tốc góc 1 2 3 4( ) ( ) ( ) ( )
T
t t t t      để lái xe
bám theo quỹ đạo đặt mong muốn
( ) ( ) ( )
T
d d dx t y t t   . Định nghĩa véc tơ sai lệch
giữa giá trị hiện tại và mong muốn:
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
e d
e d
e d
x t x t x t
y t y t y t
t t tq q q
é ù é ùé ù
ê ú ê úê ú
ê ú ê úê ú= -ê ú ê úê ú
ê ú ê úê ú
ë ûë û ë û
(4)
Do đó,
1
2#
3
4
( )
( ) ( ) ( ) ( )
( )
( ) ( ) ( ) ( ( )). ( )
( )
( ) ( ) ( ) ( )
( )
e d d
e d d
e d d
r t
x t x t x t x t
r t
y t y t y t P t y t
r t
t t t t
r t
w
w
q
w
q q q q
w
é ù
ê úé ù é ù é ùé ù
ê úê ú ê ú ê úê ú
ê úê ú ê ú ê úê ú= - = -ê úê ú ê ú ê úê ú
ê úê ú ê ú ê úê ú
ê úë ûë û ë û ë û
ê úë û
   
   
   
(5)
Mục tiêu điều khiển là tìm được vec-tơ vận tốc góc
của các động cơ, tương ứng với hệ sai lệch vòng kín
ổn định tiệm cận toàn cục. Từ đó, luật bám quỹ đạo
được như sau [3]:
01
2
3 0
4
0
( )
( )
( ) ( )
( ) 1
( ( )) . ( ) . ( ) ( )
( )
( ) ( )
( )
( )
t
e
e dt
P e I e d
e d
t
e
x d
t
x t x t
t
P t K y t K y d y t
t r
t t
t
d
t t
w
w
q t t
w
q q
w
q t t
æ öé ù ÷ç ê ú ÷çç ê úççé ù ê úçê ú ê úé ù é ùççê ú ê úê ú ê úççê ú ê úê ú ê ú= - - +çê ú ç ê úê ú ê úçê ú ê úê ú ê úççê ú ë û ë ûê úçê ú ç ê úë û çç ê úç ê úççè øë û
ò
ò
ò



÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷
(6)
Trong đó, các ma trận PK , IK đối xứng và xác định
dương, 1 2 3{ , , } 0T
P P P P PK diag K K K K= = > ,
1 2 3{ , , } 0T
I I I I IK diag K K K K= = > . Thay (6) vào
(5) dẫn đến hệ sai lệch vòng kín:
0
0
0
( )
( ) ( )
( ) . ( ) . ( )
( ) ( )
( )
t
e
e e t
e P e I e
e e
t
e
x d
x t x t
y t K y t K y d
t t
d
t t
t t
q q
q t t
é ù
ê ú
ê ú
ê ú
ê úé ù é ù
ê úê ú ê ú
ê úê ú ê ú= - - ê úê ú ê ú
ê úê ú ê ú
ë û ë û ê ú
ê ú
ê ú
ê ú
ë û
ò
ò
ò



(7)
Các bộ điều khiển phi tuyến thiết kế bởi hàm
Lyapunov là những giải pháp đơn giản nhất nhưng
cũng thành công nhất trong việc ổn định động học
[1,8]. Để ổn định tiệm cận cho hệ sai lệch vòng kín,
hàm Lyapunov được chọn như sau:
Hội nghị toàn quốc lần thứ 2 về Điều khiển và Tự động hoá - VCCA-2013
391
VCCA-2013
[ ]1
0
0 0 0 0
0
( )
1
( ) ( ) ( ) ( ) ( )
2
( )
( )
1
( ) ( ) ( ) . . ( )
2
( )
e
e e e e
e
t
e
t t t t
e e e I e
t
e
x t
V t x t y t t y t
t
x d
x d y d d K y d
d
q
q
t t
t t t t q t t t t
q t t
é ù
ê ú
ê ú= +ê ú
ê ú
ë û
é ù
ê ú
ê ú
ê ú
ê ú
é ù ê ú
ê ú ê ú
ê ú ê ú
ê ú ê úë û
ê ú
ê ú
ê ú
ê ú
ë û
ò
ò ò ò ò
ò
(8)
Lấy đạo hàm theo thời gian hàm 1( )V t , đạt được:
1
0 0 0
( )
( ) ( ) ( ) ( ) . ( )
( )
( )
( ) ( ) ( ) . . ( )
( )
( )
( ) ( ) ( ) . . ( ) 0
( )
e
e e e e
e
t t t e
e e e I e
e
e
e e e P e
e
x t
V t x t y t t y t
t
x t
x d y d d K y t
t
x t
x t y t t K y t
t


      



 
      
  
  
     
    
 
       
  
  

 

(9)
Hàm 1( )V t là bán xác định âm, theo bổ đề Barbalat
[1] suy ra: [ ] [ ]( ) ( ) ( ) 0 0 0
T T
e e ex t y t tq  , khi
t  ¥
Điều này chứng tỏ, hệ sai lệch vòng kín điều khiển
bám quỹ đạo là ổn định tiệm cận. Và luật điều khiển
(6) được thỏa mãn.
Tiến hành mô phỏng với quỹ đạo hình elip cho
trước, nhằm kiểm chứng bộ điều khiển được đề xuất
(6) lái xe robot bám chính xác quỹ đạo đến mức độ
nào. Kết quả đạt được như sau:
H. 2 Mô phỏng bám quỹ đạo là đường elip
3. Sử dụng Kinect và OpenNI, PCL mô
hình tọa độ vật cản 3D
3.1 Giới thiệu camera Kinect
Camera Kinect là sản phẩm của Microsoft dựa trên
công nghệ camera được phát triển bởi PrimeSense.
Mục đích của việc sử dụng cảm biến camera Kinect
là thu về bản đồ độ sâu (Depth map) từ đó khôi phục
môi trường trước mobile robot dưới dạng 3D nhằm
phát hiện, đồng thời tính toán các tham số của vật
cản. Bản đồ độ sâu chứa tập hợp các điểm ảnh, mỗi
điểm ảnh chứa thông tin về tọa độ của nó trong hệ
tọa độ gắn với Kinect. Những điểm có khoảng cách
gần nhau có xu hướng cùng một đối tượng mà không
phân biệt mầu sắc. Chỉ khi độ sâu giảm đột ngột như
ở cạnh và ở một số phần nhỏ của đối tượng thì khi
đó, hình ảnh trên bản đồ độ sâu mới có sự thay đổi.
Do đó bản đồ độ sâu giúp việc nhận dạng vật thể
đơn giản hơn xử lý ảnh thông thường.
H. 3 Hình ảnh thực tế cảm biến camera Kinect
3.2 Thư viện xử lý ảnh OpenNI và PCL
OpenNI và PCL là 2 bộ thư viện mã nguồn mở được
chúng tôi lựa chọn để lập trình xử lý ảnh thu được từ
camera Kinect. Mục đích của bộ thư viện OpenNI là
thu về bản đồ độ sâu mang thông tin về khoảng cách
các vật thể trong không phía trước Kinect. Bộ thư
viện PCL chứa các hàm xử lý bản đồ độ sâu từ đó
phát hiện và tính toán thông số vật cản.
3.3 Mô hình vật cản 3D
Vật cản ở phía trước Mobile Robot được xác định
bằng tọa độ trong hệ trục gắn vào trọng tâm mobile
robot. Vì vậy cần chuyển đổi trục tọa độ từ tọa độ
mặc định của Kinect về hệ trục tọa độ gắn với trọng
tâm mobile robot. Tọa độ mặc định của Kinect biểu
diễn như hình H.4 [6,7].
 
H. 4 Tọa độ mặc định của Kinect
Do Kinect đặt ở phía trên trọng tâm robot một đoạn
h và hướng xuống dưới một góc α, do đó ta quay hệ
trục quanh trục x rồi tịnh tiến theo trục z xuống dưới
một đoạn h. Ma trận của phép chuyển hệ trục thu
được là [7]:
1 0 0 0
0 cos( sin( ) 0
0 sin( ) cos( )
0 0
)
0 1
T
h
a a
a a
é ù
ê ú
ê ú
ê ú= ê ú- -ê ú
ê ú
ê úë û
(10)
Quá trình xử lý dữ liệu để phát hiện vật cản được
biểu diễn như H.4.
H. 5 Quá trình xử lý bằng thư viện OpenNI và PCL.
Kết quả của quá trình xử lý là các nhóm điểm đại
diện cho vật thể (object clusters). Mỗi nhóm điểm
đều chứa đầy đủ các thông tin về tọa độ các điểm
Hội nghị toàn quốc lần thứ 2 về Điều khiển và Tự động hoá - VCCA-2013
392
VCCA-2013
thuộc vật cản trong không gian 3D. Vì vậy thông tin
về vật cản là hoàn toàn xác định.
H. 6 Kết quả xử lý phát hiện vật cản.
4. Thuật toán tránh vật cản cho Omi
mobile robot
Giải thuật tránh vật cản được mô tả bằng một hệ sự
kiện rời rạc như H.7
H. 7 Hệ sự kiện rời rạc mô tả thuật toán tránh vật cản
H. 8 Hệ sự kiện rời rạc mô phỏng thuật toán tránh vật
cản
H. 9 Bộ điều khiển mô phỏng bằng phần mềm UPPAAL
Hệ sự kiện rời rạc trên được mô phỏng bằng phần
mềm UPPAL.
 Trạng thái ban đầu của hệ là “Start”. Ở trạng
thái này, robot sẽ nhận các giá trị đặt của tọa độ
đích.
H. 10 Trạng thái quay về đích của Robot
 Trạng thái “quay về đích” được đạt đến sau khi
khởi chạy hoặc sau khi đã vượt qua vật cản.
Mục đích của việc này là hướng robot về đích
để sau đó robot có thể tiến thẳng về đích.
Giả sử robot đang ở vị trí có tọa độ O’ ( , )t tx y và
góc của hướng xe so với trục ox là q . Tọa độ đích là
T ( , )t tx y . Khi đó cần quay robot một góc j để
hướng robot về đích ta xác định góc quay như sau:
ta thấy rằng, góc j chính là góc giữa vector chỉ
hướng của xe u

và vector 'v O T=
 
.
Trong đó:
(cos ,sin )u q q=

( ),tar t tar tyv yx x- -=

2 2
.
os( ) cos( , )
.
cos ( ) sin ( )
( ) ( )
tar t tar t
tar ttar t
u v
c u v
u v
x y
x
y
y
x
yx
q q-
 = = =
+
- +
-
-
 
 
 
(11)
Chiều quay xác định bằng vị trí tương đối của điểm
đích T và đường thẳng d chứa vector u

. Đường
thẳng d chia mặt phẳng thành 2 phần là phần trên và
phần dưới.

2 2
p p
q- < < : Nếu T nằm ở mặt phẳng
dưới thì quay sang phải, ngược lại quay sang trái.
(trường hợp giống hình 2)

3
2 2
p p
q< < : Nếu T nằm ở mặt phẳng dưới
thì quay sang trái, ngược lại quay sang phải.
 Sau khi quay về đích robot sẽ xác định có vật
cản phía trước hay không nhằm đưa ra các
quyết định phù hợp.
Hội nghị toàn quốc lần thứ 2 về Điều khiển và Tự động hoá - VCCA-2013
393
VCCA-2013
H. 11 Vùng không gian phía trước robot.
Để dễ dàng cho việc xác định vị trí tương đối của vật
cản so với robot, vùng không gian phía trước robot
được phân chia như H.9.
Dễ nhận thấy vị trí tương đối của vật cản so với
robot bao gồm các trường hợp:
+ Vật cản nằm hoàn toàn ở vùng T hoặc P.
+ Vật cản nằm giữa vùng T và G.
+ Vật cản nằm hoàn toàn ở G.
+ Vật cản nằm giữa G và P.
+ Vật cản nằm ở cả 3 vùng G, T, P.
Với trường hợp vật cản nằm hoàn toàn ở vùng T
hoặc P, robot đi thẳng do đảm bảo điều kiện không
va chạm với vật cản.
Trường hợp vật cản nằm giữa T và G được biểu diễn
như H.10.
Khi đó minx R< - và maxR x R- < < . Robot sẽ
quay sang phải một góc  để tránh vật cản. Để
đảm bảo  là nhỏ nhất, từ điểm M thuộc vật cản.
Dựng tiếp tuyến MN với đường tròn an toàn. Khi đó
góc 0
90a q= -
với arctan( )m n
m n
y
x
y
x
q
-
-
=
Do N ( , )n nx y thuộc đường tròn tâm O’ bán kính R
nên:
2 2 2
n nx y R+ = (12)
Mặt khác ON  MN suy ra:
( ) ( ) 0n m n n m nx x y yx y- + - = (13)
Giải hệ (12) và (13) ta được:
2
2 2
2
'm
n
m m
m n
n
n
x
x
x
R
y
x
y
R
y
x
-
=
+
-
ìï Dïïïïïí
ïï
î
=ïïïï
(14)
hoặc
2
2 2
2
'm
n
m m
m n
n
n
R
y
x x
x
x
x
R
y
y
=
+
-
ìï + Dïïïïïí
ïï
î
=ïïïï
(loại)
Do quay về bên trái nên ta chọn nghiệm có giá trị
nx nhỏ hơn.
H. 12 Vật cản nằm giữa vùng T và G
Tính toán hoàn toàn tương tự đối với vật cản nằm
giữa vùng P và G. Khi đó robot sẽ quay một góc
sang trái.
Khi đó ta có minR Rx- < < và maxx R> .
Tính toán hoàn toàn tương tự trường hợp nằm ở
vùng T và G ta thu được:
0
90a q= -
arctan( )m n
m n
y
x
y
x
q
-
-
=
2
2 2
2
'm
n
m m
m n
n
n
R
y
x x
x
x
x
R
y
y
=
+
-
ìï + Dïïïïïí
ïï
î
=ïïïï
(15)
 Trường hợp vật cản nằm hoàn toàn trong
vùng G. Khi đó min m RR x x ax<- << .
Dưạ vào điểm giữa vật cản nằm có x>0 hay x<0 mà
quyết định cho Robot quay trái hay quay phải.
Góc quay trong trường hợp quay trái hoặc quay phải
hoàn toàn giống với tính toán ở trên.
 Trường hợp vật nằm ở cả 3 vùng T,P,G.
Tương tự như các trường hợp trên, ta xét giá trị
x_tb là trung bình của 2 giá trị minx và maxx . Nếu
0tbx < thì vật cản lệch trái suy ra cần quay phải.
Tương tự 0tbx > quay trái.
Sau khi đã quay một góc  Robot sẽ tiến về phía
trước một đoạn an toàn để đảm bảo tránh vật cản.
Đoạn an toàn chính bằng khoảng cách:
'
' 'tO O O H R= +
(16)
Trong đó:
2 2
2
2
2
' '
max max
O H O N NH
x y R
= -
= + -
(17)
Vậy khoảng cách an toàn cần phải đi là:
2 2 2
p max maxx Rd R y+ -= + (18)
Hội nghị toàn quốc lần thứ 2 về Điều khiển và Tự động hoá - VCCA-2013
394
VCCA-2013
H. 13 Vật cản nằm hoàn toàn trong vùng G
H. 14 Đi một đoạn an toàn về bên phải, hoặc bên trái
Tính toán hoàn toàn tương tự với trường hợp đi một
đoạn an toàn về bên trái vật cản trong đó điểm N ở
trường hợp này có tọa độ ,( )min maxN yx .
Như vậy khoảng cách an toàn cần đi về bên trái vật
cản sẽ là:
2
min
2 2
t maxd y RR x + -= + (19)
5. Xây dựng và chạy thử nghiệm Omni
mobile robot tránh vật cản
Phần cứng của của hệ Omni mobile robot gồm hai
phần chính:
+ Phần 1: xử lý ảnh dựa vào chuỗi hình ảnh thu
được từ camera Kinect để nhận dạng và tính toán vị
trí của vật cản.
+ Phần 2: là phần điều khiển, dựa vào thông số vị trí
vật cản nhận được, ứng dụng thuật toán tránh vật
cản, tính toán tín hiệu điều khiển robot di chuyển về
đích mà không tránh vật cản với vận tốc lớn nhất và
quãng đường ngắn nhất.
Trong hệ thống này ngoài bộ vi xử lý chung là máy
tính Laptop còn có một khối giao tiếp để thực hiện
bắt tay giữa camera, cơ cấu chấp hành và máy tính.
Để đáp ứng đủ yêu cầu về khả năng điều khiển cơ
cấu chấp hành và vừa có khả năng xử lý, chống
nhiễu tốt nhóm tác giả sử dụng vi điều khiển ARM
Cortext-M3 LM3S8971của hãng Texas Instruments
vì nó có đầy đủ tính năng, tốc độ tính toán và có khả
năng chống nhiễu tốt.
Cấu trúc thiết kế phần cứng có hai lựa chọn tùy loại
ứng dụng: có thể tích hợp bộ xử lý trung tâm (ở đây
dùng máy tính PC Laptop) ngay trên mobile robot,
và cấu trúc thứ hai là để bộ xử lý trung tâm này tại
trạm điều khiển, lúc đó bộ điều khiển trung tâm sẽ
giao tiếp với camera và bộ vi điều khiển cơ cấp chấp
hành qua mạng không dây RF.
H. 15 Cấu trúc tổng thể phần cứng khi gắn liền bộ xử lý
trung tâm trên xe Robot
H. 16 Giao diện điều khiển
Các kết quả chạy thử nghiệm Omni mobile robot
tránh vật cản:
Omni mobile robot trong bài báo được thử nghiệm ở
môi trường trong nhà, vật cản là các đồ vật xuất hiện
ngẫu nhiên trong quá trình di chuyển. Các trường
hợp thử nghiệm bao gồm:
+ Robot tìm về đích mà trên đường đi không có vật
cản
+ Robot tìm về đích mà trên đường đi có một vật
cản.
+ Robot tìm về đích mà trên đường đi có nhiều vật
cản.
Kết quả sau khi thử nghiệm là robot tìm đến đích mà
không gây va chạm (xem hình H.18, H.19). Sai số
tọa độ khi robot đến đích ở mức chấp nhận được.
Hội nghị toàn quốc lần thứ 2 về Điều khiển và Tự động hoá - VCCA-2013
395
VCCA-2013
H. 17 Lưu đồ thuật toán
6. Kết Luận
Bài báo đã trình bày về mô hình hóa và mô phỏng
Omi mobile mobot sử dụng 4 bánh Omni di chuyển
đa hướng, các thuật toán điều khiển bám quỹ đạo
cho robot, các nghiên cứu sử dụng Kinect để phát
hiện và tìm thông số vật cản ứng dụng thư viện mã
nguồn mở OpenNI và PCL, và thuật toán tránh vật
ứng dụng hệ sự kiện rời rạc để phân tích và lập trình
cho robot. Chúng tôi đã xây dựng, lắp ráp và thử
nghiệm thuật toán tránh vật cản cho Omni mobile
robot, các kết quả cho thấy được sự hoạt động linh
hoạt của robot và cho thấy sự phản ứng tốt của robot
khi gặp vật cản đúng với thuật toán đã xây dựng.
Tuy cũng còn một số nhược điểm: cơ cấu cơ khí
chưa được chính xác cao, phần mềm thiết kế trên
máy tính dùng để xử lý dữ liệu từ Kinect gửi về yêu
cầu cấu hình máy tính cao, nếu ở trong môi trường
nhiều vật thể phức tạp thì quá trình xử lý chậm vì
vậy không đảm bảo tính thời gian thực. Hướng phát
triển tiếp theo là cải tiến về cơ cấu cơ khí, khai thác
thêm các chức năng của cảm biến Kinect như chức
năng nhận diện giọng nói, nhận diện cử chỉ nhằm
phát triển Omni mobile robot ngày càng hoàn thiện
và đầy đủ chức năng để có thể sử dụng trong đời
sống.
Tài liệu tham khảo
[1]. Nguyễn Doãn Phước, “Lý thuyết điều khiển
nâng cao”, NXB Khoa học kỹ thuật, 2009.
[2]. Ngô Mạnh Tiến, Phan Xuân Minh, “Nghiên cứu
phát triển hệ Robot tự hành có gắn camera tự
động tìm kiếm và bám mục tiêu di động”VCCA
2012.
[3].Hsu-Chih Huang, “Intelligent Motion Controller
Design for Four-Wheeled Omnidirectional
Mobile Robots Using Hybrid GA-PSO
Algorithm”, IEEE International Conference on
Systems, Man and Cybernetics, Anchorage,
Alaska, USA, October 9-12, 2011
[4].M. J. Jung, H. S. Kim, S. Kim and J. H. Kim,
“Omnidirectional mobile base OK-II,”
Proceeding of the 2000 IEEE International
Conference on Robotics and Automation, pp.
3449-3454, San Francisco, April 2000.
[5].K. Watanabe, Y. Shiraishi, S. Tzafestas, J. Tang
and T. Fukuda, “Feedback control of an
omnidirectional autonomous platform for mobile
service robots,” Journal of Intelligent and
Robotic Systems, vol. 22, pp. 315-330, 1998.
[6]. Jacob Kjaer, “A qualitative analysis of two
Automated registration algorithms In a real
world scenario using Point Cloud form the
Kinect”. Bachelor Thesis, June 27, 2011.
[7]. Mikkel Viager, “Analysis of Kinect for mobile
robots”, Individual course report, March 2011.
[8]. Y. Kanayama, Y. Kimura, F. Miyazaki, T.
Noguchi. “A stable tracking control scheme for
an autonomous mobile robot”, proc. of IEEE Int.
Conf. on Robotics and Automation, pp. 384-389,
(1990).
H. 18 Mobile robot tìm về đích mà trên đường đi có một vật cản
Hội nghị toàn quốc lần thứ 2 về Điều khiển và Tự động hoá - VCCA-2013
396
VCCA-2013
H. 19 Mobile robot tìm về đích mà trên đường đi có nhiều vật cản
Phan Xuân Minh: Nhận bằng
Thạc sĩ kỹ thuật (1976) và Tiến sĩ
kỹ thuật (1989), chuyên ngành
Điều khiển học tại trường Ilmenau
University of Technology, Ilmenau,
Đức. Hiện là Giáo sư, công tác và
giảng dạy tại Bộ môn Điều khiển
tự động – Viện Điện - Trường Đại
học Bách Khoa Hà Nội. Hướng nghiên cứu chính:
Điều khiển tối ưu và bền vững, điều khiển thích
nghi, hệ mờ và mạng Nơron, điều khiển quá trình.
Ngô Mạnh Tiến: Học Đại học Bách
Khoa Hà Nội, chuyên ngành Điều
khiển tự động từ năm 1996-2001.
Bảo vệ Thạc sỹ năm 2004 và hiện
nay đang theo học Tiến sỹ tại Đại
Học Bách Khoa Hà Nội. Hiện tại
công tác tại phòng Quang điện tử -
Viện Vật Lý-Viện Khoa Học và
Công Nghệ Việt Nam. Hướng nghiên cứu chính:
Điều khiển quá trình, điều khiển thông minh và thích
nghi, hệ Mờ và mạng Neuron, điều khiển Robot,
Robot tự hành, hệ thống quang điện tử nhìn đêm, xử
lý ảnh.
Lê Trung Kiên, hiện đang là sinh
viên năm thứ 5 theo học chuyên
ngành Điều Khiển Tự Động, Bộ
môn Điều Khiển Tự Động-Viện
Điện-Đại học Bách Khoa Hà Nội.
Hướng nghiên cứu chính: Điều
khiển thích nghi, mô hình hóa và
mô phỏng, hệ thống điều khiển
nhúng.
Trần Đức Hiếu, tốt nghiệp Đại học
Bách Khoa Hà Nội, chuyên ngành
Điều khiển tự động năm 2012.
Lĩnh vực Nghiên cứu chính: Lý
thuyết Điều khiển tự động, Điều
khiển chuyển động, Robotics, các
hệ thống điều khiển nhúng, tích
hợp hệ thống tự động hóa.
Phạm Văn Quyết, sinh năm 1976,
tốt nghiệp ĐH chuyên nghành sư
phạm kỹ thuật điện năm 2002, thạc
sỹ ĐKTĐ năm 2008 tại ĐHBK Hà
Nội. Hiện tại công tác tại Trường
Cao đẳng Nghề Hà Nam. Lĩnh vực
nghiên cứu tự động hóa công
nghiệp, điều khiển các quá trình trong công nghiệp,
điều khiển thích nghi.
Nguyễn Phương Nam sinh năm
1987. Anh nhận bằng Cử nhân Vật
lý năm 2009 và bằng Thạc sỹ Cơ –
Điện tử năm 2011 tại trường Đại học
Rennes 1, CH Pháp.
Hiện tại, anh đang đảm nhận vị trí
Kỹ sư phần mềm bay và hệ thống
mô phỏng vệ tinh tại Trung tâm Điều
khiển và Khai thác Vệ tinh nhỏ, Viện công nghệ Vũ
trụ, Viện Hàn lâm khoa học và công nghệ Việt Nam.
Hà Thị Kim Duyên: Học Đại
Học Bách khoa Hà Nội, chuyên
ngành điều khiển tự động từ
năm 1996-2001, Bảo vệ Thạc
sỹ tại Học Viện kỹ Thuật quân
sự 2007. Hiện công tác và giảng
dạy tại Khoa Điện tử - trường
Đại Học Công Nghiệp Hà Nội.
Chuyên môn nghiên cứu chính: Điều khiển quá
trình, Các bộ điều khiển khả trình PLC và mạng
truyền thông công nghiệp, Bộ điều khiển thông minh
và thích nghi, Mờ và mạng Neuron, Xử lý ảnh.
Nguyễn Ngọc Anh: Tốt nghiệp ĐH
chuyên ngành điện tử viễn thông
năm 1998, Thạc sỹ năm 2009 tại
Học viện kỹ thuật quân sự. Hiện
công tác và giảng dạy tại Khoa Điện
tử - trường Đại Học Công Nghiệp
Hà Nội.
Chuyên môn nghiên cứu chính: kỹ thuật điện tử, xử
lý tín hiệu số, điều khiển robot.

paper_208

  • 1.
    Hội nghị toànquốc lần thứ 2 về Điều khiển và Tự động hoá - VCCA-2013 389 VCCA-2013 Omni mobile robot tránh vật cản sử dụng cảm biến camera Kinect Motion Control of Four Wheeled Omni-directional Mobile Robots to Avoid the Obstacles Using Kinect Camera Ngô Mạnh Tiến1) , Phan Xuân Minh2) , Lê Trung Kiên3) , Trần Đức Hiếu4) Phạm Văn Quyết5) Nguyễn Ngọc Anh6) , Hà Thị Kim Duyên 7) Nguyễn Phương Nam8) 1) Viện Vật Lý, 8) Viện Công nghệ vũ trụ - Viện Hàn lâm KH&CN Việt Nam; 2) ,3) ,4) ,5) Đại học Bách khoa Hà Nội; 6) 7) Đại học Công nghiệp Hà Nội; e-mail: 1) nmtien@iop.vast.ac.vn, 2) minhxp-ac@mail.hut.edu.vn, 3) letrungkien.k53.hut@gmail.com, 4) hieutd123z.ac@gmail.com Tóm tắt: Các nghiên cứu tập trung vào cải thiện và tăng tính linh hoạt và khả năng thích ứng khi làm việc ở những vị trí và các ứng dụng khác nhau cho robot tự hành đang thu hút các nhà nghiên cứu. Bên cạnh ứng dụng các cải tiến các thiết kế cơ khí, cơ cấu chấp hành chuyển động linh hoạt thì việc ứng dụng “mắt máy” và phần mềm xử lý, điều khiển sẽ đem lại cho robot tính linh hoạt và thông minh. Bài báo trình bày các nghiên cứu về mô hình hóa, mô phỏng thuật toán điều khiển robot tự hành sử dụng cơ cấu di chuyển bốn bánh Omni và thuật toán tránh vật cản trong quá trình di chuyển sử dụng camera Kinect của Microsoft. Các kết quả mô phỏng và chạy thử nghiệm cho thấy tính linh hoạt và cơ động của robot. Abstract: In recent years, researchers have concentrated on improving and increasing the flexibility and adaptation for Mobile Robots when work at the different positions and applications. Besides the application of getting better the designing of mechanics and the flexible motion of actuators, the using computer vision and processing software, the controlling will bring for Mobile Robots the more flexibility and intelligence. This paper presents the researches about modeling, simulation the control algorithm for four wheeled omni-directional Mobile Robots, and the algorithm for avoiding the obstacles using Kinect Camera of Microsoft. The results of simulation and experimental tests prove the good flexibilty and intelligence. Keywords: Mobile Robot, Kinect Camera, OpenNI, OpenCV, Nonlinear Control, Adaptive Control. Ký hiệu Ký hiệu Đơn vị Ý nghĩa I 2 .g cm mô men quán tính xe Robot m g khối lượng xe Robot 1t 2t Nm mô men động cơ trái, phải 2L cm chiều ngang của xe Robot R cm bán kính của bánh xe Robot Chữ viết tắt PCL Point Cloud Library MR Mobile Robot 1. Đặt vấn đề Khả năng di động trên các địa hình khác nhau làm robot có nhiều ứng dụng hơn và cũng đòi hỏi phải giải quyết nhiều vấn đề mới phức tạp hơn. Các nghiên cứu trong thời gian gần đây tập trung hơn và phát triển theo hướng cải tiến các phương pháp điều khiển nhằm tăng cường khả năng thích nghi và thông minh cho robot. Ngoài vấn đề điều khiển robot bám theo quỹ đạo nhanh và trơn chu, thì bài toán tìm đường navigation (vẽ quỹ đạo) là trọng tâm của các nghiên cứu gần đây. Trong vấn đề tìm đường, bài toán được quan tâm nhiều nhất là bài toán tìm đường về đích mà không chạm vào vật cản trên đường đi. Có 2 loại bài toán tìm đường cho robot [6,7]: Bài toán cục bộ (local): môi trường làm việc của robot hoàn toàn không biết trước hoặc chỉ biết một phần, robot hoàn toàn nhờ vào sự cảm nhận môi trường trong quá trình di chuyển thông qua cảm biến gắn trên nó để dò đường. Bài toán toàn cục (Global): bản đồ môi trường làm việc của robot hoàn toàn được biết trước, vấn đề chính phải giải quyết là tìm đường đi cho robot trước khi nó xuất phát. Bài toán cục bộ tỏ ra có ưu thế, nó có tính linh hoạt cao như có thể tránh vật cản khi vật đó di chuyển. Nhược điểm của bài toán này là robot chỉ cảm nhận môi trường qua cảm biến gắn cùng, vì thế có thể không hoàn thành việc tới đích mặc dù có đường đi, hơn nữa không thể chọn ra được đường đi tối ưu, và nhược điểm này gần đây được khống chế bằng cách thay các cảm biến bằng các camera tương tự như trang bị các “mắt thần” cho robot. Trong bài báo này, chúng tôi trình bày về mô hình hóa và mô phỏng đối tượng Omni mobile robot sử dụng 4 bánh di chuyển đa hướng, các thuật toán điều khiển bám quỹ đạo cho robot, các nghiên cứu sử dụng camera Kinect để phát hiện và tìm thông số vật cản ứng dụng thư viện mã nguồn mở OpenNI và PCL, và thuật toán tránh vật cản ứng dụng hệ sự kiện rời rạc để phân tích và lập trình cho Robot. Bài báo bao gồm 7 phần, sau phần giới thiệu, trong phần thứ 2, mô hình hóa và phép chuyển đổi nó sang cấu trúc mong muốn được đưa ra. Phần 3 mô tả một
  • 2.
    Hội nghị toànquốc lần thứ 2 về Điều khiển và Tự động hoá - VCCA-2013 390 VCCA-2013 giải pháp điều khiển phi tuyến dựa trên Hàm Lyapunov để ổn định tiệm cận hệ kín. Trong phần 4 giới thiệu cảm biến Kinect và ứng dụng trong bài toán mobile robot tránh vật cản. Phần 5 có đề xuất một thuật toán để tránh vật cản. Các kết quả thử nghiệm thực tế được trình bày trong phần 6 và phần kết luận là các nhận xét tóm tắt. 2. Mô hình hóa Omni mobile robot Omni mobile robot gồm 4 bánh omni được truyền động độc lập và được đặt vuông góc với nhau như hình H. 1: H. 1 Phối cảnh và hệ trục tọa độ Omni mobile robot Hình vẽ H.1 thể hiện toàn bộ hệ thống mô hình thực tế, cấu trúc và kích thước, được gắn với hệ tọa độ cố định w w wO x y và hệ tọa độ động m m mO x y có gốc được đặt vào trọng tâm xe robot. Góc đại diện cho góc quay của xe có chiều dương ngược hướng kim đồng hồ, và  cũng là góc giữa hệ tọa độ chuyển động và hệ tọa độ cố định. L là khoảng cách giữ trọng tâm xe và tâm bánh xe. 1T , 2T , 3T , và 4T là các lực được sinh ra bởi các bánh xe, r chỉ bán kính mỗi bánh xe. Dựa vào phương pháp được đề xuất bởi, ta có mô hình động học ngược của đối tượng Omni mobile robot được xây dựng trên hệ tọa độ cố định như sau [3,4,5]: 1 1 2 2 3 3 4 4 ( ) ( ) ( ) ( ) ( ) ( ) ( ( )). ( ) ( ) ( ) ( ) ( ) ( ) v t r t x t v t r t v t P t y t v t r t t v t r t w w q w q w é ù é ù ê ú ê ú é ù ê ú ê ú ê ú ê ú ê ú ê ú= = =ê ú ê ú ê ú ê ú ê ú ê ú ê ú ê ú ë û ê ú ê úë û ë û    (1) Trong đó: sin( ) cos( ) cos( ) sin( ) ( ( )) sin( ) cos( ) cos( ) sin( ) L L P t L L q q q q q q q q q é ù- ê ú ê ú- -ê ú= ê ú-ê ú ê ú ê úë û (2) Để ý rằng, mặc dù ma trận ( ( ))P t là suy biến với bất kỳ góc  , nhưng ma trận đảo trái của nó có thể tìm thấy, với # ( ( )). ( ( ))P t P t Iq q = : # sin( ) cos( ) sin( ) cos( ) 2 2 2 2 cos( ) sin( ) cos( ) sin( ) ( ( )) 2 2 2 2 1 1 1 1 4 4 4 4 P t L L L L q q q q q q q q q é ù- - ê ú ê ú ê ú ê ú- - = ê ú ê ú ê ú ê ú ê ú ê úë û (3) Điều khiển bám quỹ đạo với mô hình động học (1), phần này được dành để thiết kế bộ điều khiển động học để đạt được bám quỹ đạo cho đối tượng Omni mobile robot. Không giống như loại non-holonomic mobile robot [2, 6] truyền thống, quỹ đạo của Omni mobile robot có thể không được suy ra từ mô hình động học. Mục tiêu điều khiển là tìm được véc-tơ vận tốc góc 1 2 3 4( ) ( ) ( ) ( ) T t t t t      để lái xe bám theo quỹ đạo đặt mong muốn ( ) ( ) ( ) T d d dx t y t t   . Định nghĩa véc tơ sai lệch giữa giá trị hiện tại và mong muốn: ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) e d e d e d x t x t x t y t y t y t t t tq q q é ù é ùé ù ê ú ê úê ú ê ú ê úê ú= -ê ú ê úê ú ê ú ê úê ú ë ûë û ë û (4) Do đó, 1 2# 3 4 ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ( )). ( ) ( ) ( ) ( ) ( ) ( ) ( ) e d d e d d e d d r t x t x t x t x t r t y t y t y t P t y t r t t t t t r t w w q w q q q q w é ù ê úé ù é ù é ùé ù ê úê ú ê ú ê úê ú ê úê ú ê ú ê úê ú= - = -ê úê ú ê ú ê úê ú ê úê ú ê ú ê úê ú ê úë ûë û ë û ë û ê úë û             (5) Mục tiêu điều khiển là tìm được vec-tơ vận tốc góc của các động cơ, tương ứng với hệ sai lệch vòng kín ổn định tiệm cận toàn cục. Từ đó, luật bám quỹ đạo được như sau [3]: 01 2 3 0 4 0 ( ) ( ) ( ) ( ) ( ) 1 ( ( )) . ( ) . ( ) ( ) ( ) ( ) ( ) ( ) ( ) t e e dt P e I e d e d t e x d t x t x t t P t K y t K y d y t t r t t t d t t w w q t t w q q w q t t æ öé ù ÷ç ê ú ÷çç ê úççé ù ê úçê ú ê úé ù é ùççê ú ê úê ú ê úççê ú ê úê ú ê ú= - - +çê ú ç ê úê ú ê úçê ú ê úê ú ê úççê ú ë û ë ûê úçê ú ç ê úë û çç ê úç ê úççè øë û ò ò ò    ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ (6) Trong đó, các ma trận PK , IK đối xứng và xác định dương, 1 2 3{ , , } 0T P P P P PK diag K K K K= = > , 1 2 3{ , , } 0T I I I I IK diag K K K K= = > . Thay (6) vào (5) dẫn đến hệ sai lệch vòng kín: 0 0 0 ( ) ( ) ( ) ( ) . ( ) . ( ) ( ) ( ) ( ) t e e e t e P e I e e e t e x d x t x t y t K y t K y d t t d t t t t q q q t t é ù ê ú ê ú ê ú ê úé ù é ù ê úê ú ê ú ê úê ú ê ú= - - ê úê ú ê ú ê úê ú ê ú ë û ë û ê ú ê ú ê ú ê ú ë û ò ò ò    (7) Các bộ điều khiển phi tuyến thiết kế bởi hàm Lyapunov là những giải pháp đơn giản nhất nhưng cũng thành công nhất trong việc ổn định động học [1,8]. Để ổn định tiệm cận cho hệ sai lệch vòng kín, hàm Lyapunov được chọn như sau:
  • 3.
    Hội nghị toànquốc lần thứ 2 về Điều khiển và Tự động hoá - VCCA-2013 391 VCCA-2013 [ ]1 0 0 0 0 0 0 ( ) 1 ( ) ( ) ( ) ( ) ( ) 2 ( ) ( ) 1 ( ) ( ) ( ) . . ( ) 2 ( ) e e e e e e t e t t t t e e e I e t e x t V t x t y t t y t t x d x d y d d K y d d q q t t t t t t q t t t t q t t é ù ê ú ê ú= +ê ú ê ú ë û é ù ê ú ê ú ê ú ê ú é ù ê ú ê ú ê ú ê ú ê ú ê ú ê úë û ê ú ê ú ê ú ê ú ë û ò ò ò ò ò ò (8) Lấy đạo hàm theo thời gian hàm 1( )V t , đạt được: 1 0 0 0 ( ) ( ) ( ) ( ) ( ) . ( ) ( ) ( ) ( ) ( ) ( ) . . ( ) ( ) ( ) ( ) ( ) ( ) . . ( ) 0 ( ) e e e e e e t t t e e e e I e e e e e e P e e x t V t x t y t t y t t x t x d y d d K y t t x t x t y t t K y t t                                                           (9) Hàm 1( )V t là bán xác định âm, theo bổ đề Barbalat [1] suy ra: [ ] [ ]( ) ( ) ( ) 0 0 0 T T e e ex t y t tq  , khi t  ¥ Điều này chứng tỏ, hệ sai lệch vòng kín điều khiển bám quỹ đạo là ổn định tiệm cận. Và luật điều khiển (6) được thỏa mãn. Tiến hành mô phỏng với quỹ đạo hình elip cho trước, nhằm kiểm chứng bộ điều khiển được đề xuất (6) lái xe robot bám chính xác quỹ đạo đến mức độ nào. Kết quả đạt được như sau: H. 2 Mô phỏng bám quỹ đạo là đường elip 3. Sử dụng Kinect và OpenNI, PCL mô hình tọa độ vật cản 3D 3.1 Giới thiệu camera Kinect Camera Kinect là sản phẩm của Microsoft dựa trên công nghệ camera được phát triển bởi PrimeSense. Mục đích của việc sử dụng cảm biến camera Kinect là thu về bản đồ độ sâu (Depth map) từ đó khôi phục môi trường trước mobile robot dưới dạng 3D nhằm phát hiện, đồng thời tính toán các tham số của vật cản. Bản đồ độ sâu chứa tập hợp các điểm ảnh, mỗi điểm ảnh chứa thông tin về tọa độ của nó trong hệ tọa độ gắn với Kinect. Những điểm có khoảng cách gần nhau có xu hướng cùng một đối tượng mà không phân biệt mầu sắc. Chỉ khi độ sâu giảm đột ngột như ở cạnh và ở một số phần nhỏ của đối tượng thì khi đó, hình ảnh trên bản đồ độ sâu mới có sự thay đổi. Do đó bản đồ độ sâu giúp việc nhận dạng vật thể đơn giản hơn xử lý ảnh thông thường. H. 3 Hình ảnh thực tế cảm biến camera Kinect 3.2 Thư viện xử lý ảnh OpenNI và PCL OpenNI và PCL là 2 bộ thư viện mã nguồn mở được chúng tôi lựa chọn để lập trình xử lý ảnh thu được từ camera Kinect. Mục đích của bộ thư viện OpenNI là thu về bản đồ độ sâu mang thông tin về khoảng cách các vật thể trong không phía trước Kinect. Bộ thư viện PCL chứa các hàm xử lý bản đồ độ sâu từ đó phát hiện và tính toán thông số vật cản. 3.3 Mô hình vật cản 3D Vật cản ở phía trước Mobile Robot được xác định bằng tọa độ trong hệ trục gắn vào trọng tâm mobile robot. Vì vậy cần chuyển đổi trục tọa độ từ tọa độ mặc định của Kinect về hệ trục tọa độ gắn với trọng tâm mobile robot. Tọa độ mặc định của Kinect biểu diễn như hình H.4 [6,7].   H. 4 Tọa độ mặc định của Kinect Do Kinect đặt ở phía trên trọng tâm robot một đoạn h và hướng xuống dưới một góc α, do đó ta quay hệ trục quanh trục x rồi tịnh tiến theo trục z xuống dưới một đoạn h. Ma trận của phép chuyển hệ trục thu được là [7]: 1 0 0 0 0 cos( sin( ) 0 0 sin( ) cos( ) 0 0 ) 0 1 T h a a a a é ù ê ú ê ú ê ú= ê ú- -ê ú ê ú ê úë û (10) Quá trình xử lý dữ liệu để phát hiện vật cản được biểu diễn như H.4. H. 5 Quá trình xử lý bằng thư viện OpenNI và PCL. Kết quả của quá trình xử lý là các nhóm điểm đại diện cho vật thể (object clusters). Mỗi nhóm điểm đều chứa đầy đủ các thông tin về tọa độ các điểm
  • 4.
    Hội nghị toànquốc lần thứ 2 về Điều khiển và Tự động hoá - VCCA-2013 392 VCCA-2013 thuộc vật cản trong không gian 3D. Vì vậy thông tin về vật cản là hoàn toàn xác định. H. 6 Kết quả xử lý phát hiện vật cản. 4. Thuật toán tránh vật cản cho Omi mobile robot Giải thuật tránh vật cản được mô tả bằng một hệ sự kiện rời rạc như H.7 H. 7 Hệ sự kiện rời rạc mô tả thuật toán tránh vật cản H. 8 Hệ sự kiện rời rạc mô phỏng thuật toán tránh vật cản H. 9 Bộ điều khiển mô phỏng bằng phần mềm UPPAAL Hệ sự kiện rời rạc trên được mô phỏng bằng phần mềm UPPAL.  Trạng thái ban đầu của hệ là “Start”. Ở trạng thái này, robot sẽ nhận các giá trị đặt của tọa độ đích. H. 10 Trạng thái quay về đích của Robot  Trạng thái “quay về đích” được đạt đến sau khi khởi chạy hoặc sau khi đã vượt qua vật cản. Mục đích của việc này là hướng robot về đích để sau đó robot có thể tiến thẳng về đích. Giả sử robot đang ở vị trí có tọa độ O’ ( , )t tx y và góc của hướng xe so với trục ox là q . Tọa độ đích là T ( , )t tx y . Khi đó cần quay robot một góc j để hướng robot về đích ta xác định góc quay như sau: ta thấy rằng, góc j chính là góc giữa vector chỉ hướng của xe u  và vector 'v O T=   . Trong đó: (cos ,sin )u q q=  ( ),tar t tar tyv yx x- -=  2 2 . os( ) cos( , ) . cos ( ) sin ( ) ( ) ( ) tar t tar t tar ttar t u v c u v u v x y x y y x yx q q-  = = = + - + - -       (11) Chiều quay xác định bằng vị trí tương đối của điểm đích T và đường thẳng d chứa vector u  . Đường thẳng d chia mặt phẳng thành 2 phần là phần trên và phần dưới.  2 2 p p q- < < : Nếu T nằm ở mặt phẳng dưới thì quay sang phải, ngược lại quay sang trái. (trường hợp giống hình 2)  3 2 2 p p q< < : Nếu T nằm ở mặt phẳng dưới thì quay sang trái, ngược lại quay sang phải.  Sau khi quay về đích robot sẽ xác định có vật cản phía trước hay không nhằm đưa ra các quyết định phù hợp.
  • 5.
    Hội nghị toànquốc lần thứ 2 về Điều khiển và Tự động hoá - VCCA-2013 393 VCCA-2013 H. 11 Vùng không gian phía trước robot. Để dễ dàng cho việc xác định vị trí tương đối của vật cản so với robot, vùng không gian phía trước robot được phân chia như H.9. Dễ nhận thấy vị trí tương đối của vật cản so với robot bao gồm các trường hợp: + Vật cản nằm hoàn toàn ở vùng T hoặc P. + Vật cản nằm giữa vùng T và G. + Vật cản nằm hoàn toàn ở G. + Vật cản nằm giữa G và P. + Vật cản nằm ở cả 3 vùng G, T, P. Với trường hợp vật cản nằm hoàn toàn ở vùng T hoặc P, robot đi thẳng do đảm bảo điều kiện không va chạm với vật cản. Trường hợp vật cản nằm giữa T và G được biểu diễn như H.10. Khi đó minx R< - và maxR x R- < < . Robot sẽ quay sang phải một góc  để tránh vật cản. Để đảm bảo  là nhỏ nhất, từ điểm M thuộc vật cản. Dựng tiếp tuyến MN với đường tròn an toàn. Khi đó góc 0 90a q= - với arctan( )m n m n y x y x q - - = Do N ( , )n nx y thuộc đường tròn tâm O’ bán kính R nên: 2 2 2 n nx y R+ = (12) Mặt khác ON  MN suy ra: ( ) ( ) 0n m n n m nx x y yx y- + - = (13) Giải hệ (12) và (13) ta được: 2 2 2 2 'm n m m m n n n x x x R y x y R y x - = + - ìï Dïïïïïí ïï î =ïïïï (14) hoặc 2 2 2 2 'm n m m m n n n R y x x x x x R y y = + - ìï + Dïïïïïí ïï î =ïïïï (loại) Do quay về bên trái nên ta chọn nghiệm có giá trị nx nhỏ hơn. H. 12 Vật cản nằm giữa vùng T và G Tính toán hoàn toàn tương tự đối với vật cản nằm giữa vùng P và G. Khi đó robot sẽ quay một góc sang trái. Khi đó ta có minR Rx- < < và maxx R> . Tính toán hoàn toàn tương tự trường hợp nằm ở vùng T và G ta thu được: 0 90a q= - arctan( )m n m n y x y x q - - = 2 2 2 2 'm n m m m n n n R y x x x x x R y y = + - ìï + Dïïïïïí ïï î =ïïïï (15)  Trường hợp vật cản nằm hoàn toàn trong vùng G. Khi đó min m RR x x ax<- << . Dưạ vào điểm giữa vật cản nằm có x>0 hay x<0 mà quyết định cho Robot quay trái hay quay phải. Góc quay trong trường hợp quay trái hoặc quay phải hoàn toàn giống với tính toán ở trên.  Trường hợp vật nằm ở cả 3 vùng T,P,G. Tương tự như các trường hợp trên, ta xét giá trị x_tb là trung bình của 2 giá trị minx và maxx . Nếu 0tbx < thì vật cản lệch trái suy ra cần quay phải. Tương tự 0tbx > quay trái. Sau khi đã quay một góc  Robot sẽ tiến về phía trước một đoạn an toàn để đảm bảo tránh vật cản. Đoạn an toàn chính bằng khoảng cách: ' ' 'tO O O H R= + (16) Trong đó: 2 2 2 2 2 ' ' max max O H O N NH x y R = - = + - (17) Vậy khoảng cách an toàn cần phải đi là: 2 2 2 p max maxx Rd R y+ -= + (18)
  • 6.
    Hội nghị toànquốc lần thứ 2 về Điều khiển và Tự động hoá - VCCA-2013 394 VCCA-2013 H. 13 Vật cản nằm hoàn toàn trong vùng G H. 14 Đi một đoạn an toàn về bên phải, hoặc bên trái Tính toán hoàn toàn tương tự với trường hợp đi một đoạn an toàn về bên trái vật cản trong đó điểm N ở trường hợp này có tọa độ ,( )min maxN yx . Như vậy khoảng cách an toàn cần đi về bên trái vật cản sẽ là: 2 min 2 2 t maxd y RR x + -= + (19) 5. Xây dựng và chạy thử nghiệm Omni mobile robot tránh vật cản Phần cứng của của hệ Omni mobile robot gồm hai phần chính: + Phần 1: xử lý ảnh dựa vào chuỗi hình ảnh thu được từ camera Kinect để nhận dạng và tính toán vị trí của vật cản. + Phần 2: là phần điều khiển, dựa vào thông số vị trí vật cản nhận được, ứng dụng thuật toán tránh vật cản, tính toán tín hiệu điều khiển robot di chuyển về đích mà không tránh vật cản với vận tốc lớn nhất và quãng đường ngắn nhất. Trong hệ thống này ngoài bộ vi xử lý chung là máy tính Laptop còn có một khối giao tiếp để thực hiện bắt tay giữa camera, cơ cấu chấp hành và máy tính. Để đáp ứng đủ yêu cầu về khả năng điều khiển cơ cấu chấp hành và vừa có khả năng xử lý, chống nhiễu tốt nhóm tác giả sử dụng vi điều khiển ARM Cortext-M3 LM3S8971của hãng Texas Instruments vì nó có đầy đủ tính năng, tốc độ tính toán và có khả năng chống nhiễu tốt. Cấu trúc thiết kế phần cứng có hai lựa chọn tùy loại ứng dụng: có thể tích hợp bộ xử lý trung tâm (ở đây dùng máy tính PC Laptop) ngay trên mobile robot, và cấu trúc thứ hai là để bộ xử lý trung tâm này tại trạm điều khiển, lúc đó bộ điều khiển trung tâm sẽ giao tiếp với camera và bộ vi điều khiển cơ cấp chấp hành qua mạng không dây RF. H. 15 Cấu trúc tổng thể phần cứng khi gắn liền bộ xử lý trung tâm trên xe Robot H. 16 Giao diện điều khiển Các kết quả chạy thử nghiệm Omni mobile robot tránh vật cản: Omni mobile robot trong bài báo được thử nghiệm ở môi trường trong nhà, vật cản là các đồ vật xuất hiện ngẫu nhiên trong quá trình di chuyển. Các trường hợp thử nghiệm bao gồm: + Robot tìm về đích mà trên đường đi không có vật cản + Robot tìm về đích mà trên đường đi có một vật cản. + Robot tìm về đích mà trên đường đi có nhiều vật cản. Kết quả sau khi thử nghiệm là robot tìm đến đích mà không gây va chạm (xem hình H.18, H.19). Sai số tọa độ khi robot đến đích ở mức chấp nhận được.
  • 7.
    Hội nghị toànquốc lần thứ 2 về Điều khiển và Tự động hoá - VCCA-2013 395 VCCA-2013 H. 17 Lưu đồ thuật toán 6. Kết Luận Bài báo đã trình bày về mô hình hóa và mô phỏng Omi mobile mobot sử dụng 4 bánh Omni di chuyển đa hướng, các thuật toán điều khiển bám quỹ đạo cho robot, các nghiên cứu sử dụng Kinect để phát hiện và tìm thông số vật cản ứng dụng thư viện mã nguồn mở OpenNI và PCL, và thuật toán tránh vật ứng dụng hệ sự kiện rời rạc để phân tích và lập trình cho robot. Chúng tôi đã xây dựng, lắp ráp và thử nghiệm thuật toán tránh vật cản cho Omni mobile robot, các kết quả cho thấy được sự hoạt động linh hoạt của robot và cho thấy sự phản ứng tốt của robot khi gặp vật cản đúng với thuật toán đã xây dựng. Tuy cũng còn một số nhược điểm: cơ cấu cơ khí chưa được chính xác cao, phần mềm thiết kế trên máy tính dùng để xử lý dữ liệu từ Kinect gửi về yêu cầu cấu hình máy tính cao, nếu ở trong môi trường nhiều vật thể phức tạp thì quá trình xử lý chậm vì vậy không đảm bảo tính thời gian thực. Hướng phát triển tiếp theo là cải tiến về cơ cấu cơ khí, khai thác thêm các chức năng của cảm biến Kinect như chức năng nhận diện giọng nói, nhận diện cử chỉ nhằm phát triển Omni mobile robot ngày càng hoàn thiện và đầy đủ chức năng để có thể sử dụng trong đời sống. Tài liệu tham khảo [1]. Nguyễn Doãn Phước, “Lý thuyết điều khiển nâng cao”, NXB Khoa học kỹ thuật, 2009. [2]. Ngô Mạnh Tiến, Phan Xuân Minh, “Nghiên cứu phát triển hệ Robot tự hành có gắn camera tự động tìm kiếm và bám mục tiêu di động”VCCA 2012. [3].Hsu-Chih Huang, “Intelligent Motion Controller Design for Four-Wheeled Omnidirectional Mobile Robots Using Hybrid GA-PSO Algorithm”, IEEE International Conference on Systems, Man and Cybernetics, Anchorage, Alaska, USA, October 9-12, 2011 [4].M. J. Jung, H. S. Kim, S. Kim and J. H. Kim, “Omnidirectional mobile base OK-II,” Proceeding of the 2000 IEEE International Conference on Robotics and Automation, pp. 3449-3454, San Francisco, April 2000. [5].K. Watanabe, Y. Shiraishi, S. Tzafestas, J. Tang and T. Fukuda, “Feedback control of an omnidirectional autonomous platform for mobile service robots,” Journal of Intelligent and Robotic Systems, vol. 22, pp. 315-330, 1998. [6]. Jacob Kjaer, “A qualitative analysis of two Automated registration algorithms In a real world scenario using Point Cloud form the Kinect”. Bachelor Thesis, June 27, 2011. [7]. Mikkel Viager, “Analysis of Kinect for mobile robots”, Individual course report, March 2011. [8]. Y. Kanayama, Y. Kimura, F. Miyazaki, T. Noguchi. “A stable tracking control scheme for an autonomous mobile robot”, proc. of IEEE Int. Conf. on Robotics and Automation, pp. 384-389, (1990). H. 18 Mobile robot tìm về đích mà trên đường đi có một vật cản
  • 8.
    Hội nghị toànquốc lần thứ 2 về Điều khiển và Tự động hoá - VCCA-2013 396 VCCA-2013 H. 19 Mobile robot tìm về đích mà trên đường đi có nhiều vật cản Phan Xuân Minh: Nhận bằng Thạc sĩ kỹ thuật (1976) và Tiến sĩ kỹ thuật (1989), chuyên ngành Điều khiển học tại trường Ilmenau University of Technology, Ilmenau, Đức. Hiện là Giáo sư, công tác và giảng dạy tại Bộ môn Điều khiển tự động – Viện Điện - Trường Đại học Bách Khoa Hà Nội. Hướng nghiên cứu chính: Điều khiển tối ưu và bền vững, điều khiển thích nghi, hệ mờ và mạng Nơron, điều khiển quá trình. Ngô Mạnh Tiến: Học Đại học Bách Khoa Hà Nội, chuyên ngành Điều khiển tự động từ năm 1996-2001. Bảo vệ Thạc sỹ năm 2004 và hiện nay đang theo học Tiến sỹ tại Đại Học Bách Khoa Hà Nội. Hiện tại công tác tại phòng Quang điện tử - Viện Vật Lý-Viện Khoa Học và Công Nghệ Việt Nam. Hướng nghiên cứu chính: Điều khiển quá trình, điều khiển thông minh và thích nghi, hệ Mờ và mạng Neuron, điều khiển Robot, Robot tự hành, hệ thống quang điện tử nhìn đêm, xử lý ảnh. Lê Trung Kiên, hiện đang là sinh viên năm thứ 5 theo học chuyên ngành Điều Khiển Tự Động, Bộ môn Điều Khiển Tự Động-Viện Điện-Đại học Bách Khoa Hà Nội. Hướng nghiên cứu chính: Điều khiển thích nghi, mô hình hóa và mô phỏng, hệ thống điều khiển nhúng. Trần Đức Hiếu, tốt nghiệp Đại học Bách Khoa Hà Nội, chuyên ngành Điều khiển tự động năm 2012. Lĩnh vực Nghiên cứu chính: Lý thuyết Điều khiển tự động, Điều khiển chuyển động, Robotics, các hệ thống điều khiển nhúng, tích hợp hệ thống tự động hóa. Phạm Văn Quyết, sinh năm 1976, tốt nghiệp ĐH chuyên nghành sư phạm kỹ thuật điện năm 2002, thạc sỹ ĐKTĐ năm 2008 tại ĐHBK Hà Nội. Hiện tại công tác tại Trường Cao đẳng Nghề Hà Nam. Lĩnh vực nghiên cứu tự động hóa công nghiệp, điều khiển các quá trình trong công nghiệp, điều khiển thích nghi. Nguyễn Phương Nam sinh năm 1987. Anh nhận bằng Cử nhân Vật lý năm 2009 và bằng Thạc sỹ Cơ – Điện tử năm 2011 tại trường Đại học Rennes 1, CH Pháp. Hiện tại, anh đang đảm nhận vị trí Kỹ sư phần mềm bay và hệ thống mô phỏng vệ tinh tại Trung tâm Điều khiển và Khai thác Vệ tinh nhỏ, Viện công nghệ Vũ trụ, Viện Hàn lâm khoa học và công nghệ Việt Nam. Hà Thị Kim Duyên: Học Đại Học Bách khoa Hà Nội, chuyên ngành điều khiển tự động từ năm 1996-2001, Bảo vệ Thạc sỹ tại Học Viện kỹ Thuật quân sự 2007. Hiện công tác và giảng dạy tại Khoa Điện tử - trường Đại Học Công Nghiệp Hà Nội. Chuyên môn nghiên cứu chính: Điều khiển quá trình, Các bộ điều khiển khả trình PLC và mạng truyền thông công nghiệp, Bộ điều khiển thông minh và thích nghi, Mờ và mạng Neuron, Xử lý ảnh. Nguyễn Ngọc Anh: Tốt nghiệp ĐH chuyên ngành điện tử viễn thông năm 1998, Thạc sỹ năm 2009 tại Học viện kỹ thuật quân sự. Hiện công tác và giảng dạy tại Khoa Điện tử - trường Đại Học Công Nghiệp Hà Nội. Chuyên môn nghiên cứu chính: kỹ thuật điện tử, xử lý tín hiệu số, điều khiển robot.