Tải bản đầy đủ (.pdf) (48 trang)

Nghiên cứu, ứng dụng openCV và kinect hỗ trợ dò đường báo cáo nghiên cứu khoa học giáo viên

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.1 MB, 48 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC LẠC HỒNG
***

BÁO CÁO NGHIÊN CỨU KHOA HỌC

ĐỀ TÀI:
NGHIÊN CỨU, ỨNG DỤNG OPENCV VÀ KINECT HỖ TRỢ DÒ ĐƯỜNG ĐI
CHO ROBOT

THỰC HIỆN: ThS. NGUYỄN PHÁT NHỰT
KS. TRƯƠNG THỊ QUỲNH HƯƠNG

Đồng Nai, Năm 2012

1


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC LẠC HỒNG
***

BÁO CÁO NGHIÊN CỨU KHOA HỌC

ĐỀ TÀI:
NGHIÊN CỨU, ỨNG DỤNG OPENCV VÀ KINECT HỖ TRỢ DÒ ĐƯỜNG ĐI
CHO ROBOT

THỰC HIỆN: ThS. NGUYỄN PHÁT NHỰT
KS. TRƯƠNG THỊ QUỲNH HƯƠNG


Đồng Nai, Năm 2012

2


Mục lục:
Trang
MỞ ĐẦU................................................................................................................ 1
Chương 1: Giới thiệu tổng quan đề tài .................................................................... 3
1.1

Tổng quan sự phát triển robot trên thế giới.................................................3

1.2

Robot dịch vụ ..............................................................................................4

1.3

Các nền tảng phần mềm cho robot .............................................................7

1.4

Hệ điều hành robot......................................................................................9

1.4.1

ROS (www.ros.org)...............................................................................9

1.4.2


Microsoft Robotics Developer Studio ..................................................10

1.4.3

URBI (www.urbiforge.com) .................................................................12

1.4.4

OROCOS ............................................................................................13

1.4.5

Skilligent (skilligent.com).....................................................................14

1.4.6

Robotics ERSP ...................................................................................14

1.4.7

LabVIEW Robotics..............................................................................15

1.5

Giới thiệu thiết bị Kinect ............................................................................16

1.5.1

Giới thiệu chung..................................................................................16


1.5.2

Các thành phần của Kinect.................................................................17

1.5.3

Tiêu cự, góc mở IR camera và RGB camera:.....................................20

1.5.4

Nguồn cung cấp và công suất tiêu thụ:...............................................20

1.5.5

Công suất tiêu thụ đo bằng thực nghiệm:...........................................21

1.5.6

Môi trường hoạt động .........................................................................21

1.6

Thư viện OpenCV .....................................................................................21

1.6.1

Tổng quan về thư viện OpenCV .........................................................21

1.6.2


Những khả năng của OpenCV............................................................21

1.6.3

Cấu tạo của OpenCV..........................................................................22

1.7

Thư viện hỗ trợ Kinect...............................................................................23

1.7.1

Libfreenect: .........................................................................................23

1.7.2

Code Laboratories Kinect: ..................................................................23

1.7.3

OpenNI:...............................................................................................23

1.7.4

Kinect SDK beta:.................................................................................23

1.7.5

Point Cloud Library .............................................................................24


Chương 2: Nội dung nghiên cứu........................................................................... 25
2.1

Tổng quan về SIFT....................................................................................25

2.2

Nội dung giải thuật ....................................................................................26

2.2.1

Dị tìm cực trị cục bộ...........................................................................26

2.2.2

Trích xuất keypoint..............................................................................29

2.2.3

Gắn hướng cho các keypoint..............................................................30

3


2.2.4
2.3

Tạo bộ mô tả cục bộ .............................................................................. 31
Mô tả xây dựng chương trình xác định vị trí đối tượng ................................ 32


2.3.1

Phương pháp thực hiện......................................................................... 32

2.3.2

Mã chương trình nhận dạng đối tượng.................................................. 32

Chương 3 Kết quả thử nghiệm và định hướng ứng dụng ...................................... 41
Tài liệu tham khảo ................................................................................................ 42

Danh mục hình ảnh
Hình 1.1. - robot dịch vụ cá nhân ............................................................................3
Hình 1.2. - Hệ thống robot phẫu thuật DaVinci .......................................................4
Hình 1.3. – Robot chăm sóc sức khỏe từ xa...........................................................4
Hình 1.4. - Robot di động trong nhà........................................................................5
Hình 1.5. - Kho hàng robot......................................................................................5
Hình 1.6. - Xe khơng người lái ................................................................................6
Hình 1.7. - Dexter Robot .........................................................................................6
Hình 1.8. - Dịch vụ đào tạo Robot...........................................................................6
Hình1.9. - Một robot dịch vụ được đào tạo tự làm công việc của mình ..................7
Hình 1.10. - Một hoạt động cá nhân Robot tele lấy một ly bia ................................7
Hình 1.11: Thiết bị Kinect......................................................................................16
Hình 1.12 Cấu trúc các thành phần của Kinect.....................................................17
Hình 1.13 Động cơ điều khiển góc ngẩng Kinect..................................................17
Hình 1.14: Bên trong Kinect: RGB, IR camera và IR projector .............................17
Hình 1.15: Quá trình thu về bản đồ độ sâu ảnh ....................................................18
Hình 1.16: Mẫu hình được chiếu bởi projector và chụp lại bằng IR camera.........18
Hinh 1.17: Tính tốn khoảng cách tới một điểm chiếu từ Projector ......................19

Hình 1.18: Kinect adapter .....................................................................................21
Hình 1.19: Point cloud library logo ........................................................................24
Hình 2.1: Minh họa các bước chính trong giải thuật SIFT ....................................26
Hình 2.2. Q trình tính khơng gian đo (L) và hàm sai khác D .............................27
Hình 2.3 Quá trình tìm điểm cực trị trong các hàm sai khác DoG ........................28
Hình 2.4: Mơ phỏng sử dụng cơng thức mở rộng của Taylor cho hàm DoG ........29
Hình 2.5. Minh họa các bước của quá trình lựa chọn các điểm keypoints. ..........30
Hình 2.6: Mơ tả tạo bộ mơ tả cục bộ .....................................................................31
Hình 2.7. Mơ tả việc chia màn hình ra làm 9 phần để định vị vị trí đối tượng ......32

4


Danh mục bảng: Trang
Bảng 1.1 So sánh tính năng các loại hệ điều robot ....................................................7
Bảng 1.2: Góc mở và tiêu cự của RGB và IR camera ..............................................20
Bảng 1.3: Công suất tiêu thụ trên Kinect ..................................................................21
Danh mục từ viết tắc:
SIFT:
MRDS:
RTT:
OCL:

Scale-Invarian Feature Transform.
Microsoft Robotics Developer Studio
Orocos Real-Time Toolkit
Library Orocos Components

5




MỞ ĐẦU
Xử lí ảnh số (DIP - Digital Image Processing) nói chung và nhận dạng đối tượng
(Object Recognition) nói riêng, đã và đang được ứng dụng rất nhiều. Nó trải rộng trên
mọi mặt trong cuộc sống từ xử lí các bản in ấn, báo, bìa tạp chí đến vấn đề về năng
lực nhìn trong máy học, đơi khi nó rất gần gũi trong cuộc sống hàng ngày mà nhiều
người không nhận ra như chức năng nhận dạng khuôn mặt, đối tượng chuyển động
trong các máy ảnh, máy quay phim hay đơn giản là chức năng camera của điện thoại
đi động cũng được tích hợp các cơng cụ xử lí ảnh và nhận dạng đối tượng. Đề cập
sâu hơn vào vấn đề nhận dạng đối tượng là các bài toán cụ thể như nhận dạng dấu
vân tay, nhận dạng khuôn mặt, nhận dạng chữ viết. Các bài toán này được ứng dụng
rất nhiều trong nhận dạng đối tượng hình sự, phục vụ điều tra, kiểm chứng.
Từ những ứng dụng rộng rãi như vậy mà tại các tổ chức, các trung tâm nghiên
cứu của các trường đại học trên thế giới, các đề tài về xử lí ảnh ln được đầu tư
nhiều về vật chất lẫn thời gian. Tuy trong nước, ở các năm gần đây mặc dù các
nghiên cứu về xử lí ảnh và nhận dạng đối tượng phát triển mạnh nhưng thơng qua
các cuộc hội thảo quốc gia thì vấn đề này chưa nhận được nhiều kết quả như mong
đợi và cần đầu tư nhiều hơn nữa.
Trong vấn đề cụ thể nhận dạng đối tượng thì ngày nay hướng nghiên cứu phổ
biến trên thế giới là việc sử dụng các điểm bất biến (Invarian Feature) trong ảnh làm
đặc trưng (Keypoint) để nhận dạng. Tiêu biểu nhất trong các thuật toán đối sánh sử
dụng keypoint dạng này là thuật toán SIFT (Scale-Invarian Feature Transform, David
Lowe 1999 và 2004), SIFT có thể coi là thuật toán tiền đề cho các ứng dụng cũng như
giải thuật khác về biến đổi đặc trưng bất biến trong ảnh. Các giải thuật đang ứng dụng
trong thực tế khác đều dựa trên hay phát triển theo các nhánh riêng của SIFT.
Các đặc trưng trong SIFT không phụ thuộc vào các phép biến đổi ảnh cơ bản
như xoay, thu phóng, thay đổi độ sáng... nên có thể xem tập các đặc trưng của một
ảnh là thể hiện cho nội dung của ảnh đó. Vì vậy kết quả của việc nhận dạng sẽ có độ
chính xác rất cao và thậm chí có thể khơi phục được đối tượng bị che khuất trong ảnh.

Tuy nhiên giải thuật SIFT rất phức tạp trong cài đặt, đòi hỏi thời gian nghiên cứu và
am hiểu nhiều thuật toán thành phần.
Sự cần thiết của đề tài
Theo dự đốn trong vịng 20 năm nữa mỗi người sẽ có nhu cầu sử dụng một
robot cá nhân như nhu cầu một máy tính PC hiện nay và robot sẽ là tâm điểm của một
cuộc cách mạng lớn sau Internet. Với xu hướng này, cùng các ứng dụng truyền thống
khác của robot trong công nghiệp, y tế, giáo dục đào tạo, giải trí và đặc biệt là trong an
ninh quốc phịng thì thị trường robot sẽ vơ cùng to lớn.
Trước sự phát triển đầy triển vọng của lĩnh vực robot hiện tại cũng như trong
tương lai. Nhóm tác giả tập chuyên ngành công nghệ thông tin, tập trung nghiên cứu
lĩnh vực Computer Vision chuyên về lĩnh vực xử lý ảnh để gắn “mắt” cho robot. Đây là
lĩnh vực rất thú vị, robot sẽ còn là một khối kim loại chỉ biết dị đường bằng các cơng

1


nghệ điện tử khơng qua “xúc giác” chính mà nhìn thế giới xung quanh bằng “đôi mắt”
giống như con người.
Mục tiêu nghiên cứu
Nghiên cứu xây dựng chương trình hỗ trợ dò đường đi cho robot bằng kĩ thuật xử
lý ảnh với các chức năng:
Nhận dạng đối tượng cho robot bằng công nghệ xử lý ảnh (dựa vào đặc trưng
của đối tượng): SIFT (Scale-Invarian Feature Transform, David Lowe 1999 và 2004),
OpenCV (Computer Vision)
Xác định vật cản phía trước robot bằng cách sử dụng thiết bị Kinect kết hợp
OpenNI, PCL (Point Cloud Library) và cvBlobs
Ý nghĩa khoa học, tính thực triễn và khả năng ứng dụng
Robot đã có những bước tiến đáng kể trong hơn nửa thế kỷ qua. Robot đầu tiên
được ứng dụng trong công nghiệp vào những năm 60 để thay thế con người làm
những công việc nặng nhọc, nguy hiểm trong môi trường độc hại. Do nhu cầu sử

dụng ngày càng nhiều trong quá trình sản xuất phức tạp nên robot cơng nghiệp cần có
những khả năng thích ứng linh hoạt và thơng minh hơn. Ngày nay, ngồi ứng dụng sơ
khai ban đầu của robot trong chế tạo máy thì các ứng dụng khác như trong y tế, chăm
sóc sức khỏe, nơng nghiệp, đóng tàu, xây dựng, an ninh quốc phòng đang là động lực
cho sự phát triển của ngành cơng nghiệp robot.
Có thể kể đến những loại robot được quan tâm hiều trong thời gian qua là: tay
máy robot (Robot anipulators), robot di động (Mobile Robots), robot phỏng sinh học
(Bio Inspired Robots) và robot cá nhân (Personal Robots). Robot di động được nghiên
cứu nhiều như xe tự hành trên mặt đất AGV (Autonomous Guided Vehicles), robot tự
hành dưới nước AUV (Autonomous Underwater Vehicles), robot tự hành trên không
UAV (Unmanned Arial Vehicles) và robot vũ trụ (Space robots). Với robot phỏng sinh
học, các nghiên cứu trong thời gian qua tập trung vào hai loại chính là robot đi bộ
(Walking robot) và robot dáng người (Humanoid robot). Bên cạnh đó các loại robot
phỏng sinh học như cá dưới nước, các cấu trúc chuyển động phỏng theo sinh vật biển
cũng được nhiều nhóm nghiên cứu, phát triển.

2


Chương 1: Giới thiệu tổng quan đề tài
1.1 Tổng quan sự phát triển robot trên thế giới
Thị trường robot non trẻ ngày nay với gần hai dự án phần mềm, hầu hết đều
phát triển trên hệ điều hành Linux. Bài viết này mơ tả một trong số những phần mềm
đó, phân tích và chọn phần mềm có nền tảng là tốt nhất để sử dụng.
Điều gì là khác biệt giữa robot dịch vụ với robot công nghiệp? Đối với hầu hết
các robot công nghiệp, được thiết kế để làm việc trong cơng nghiệp được cài đạt và
kiểm sốt rất chặt chẽ. Hệ thống computer vision sử dụng trong công nghiệp khơng
thể để đối phó với những thay đổi trong chiếu sáng mà khơng cần cấu hình lại hoặc
lập trình lại.
Mặt khác, giao tiếp với thế giới bên ngồi ln năng động và ln thay đổi là

một u cầu sống cịn cho hầu hết các robot dịch vụ.
1

Hình1.1. - robot dịch vụ cá nhân
Các yếu tố ảnh hưởng và yêu cầu robot dịch vụ phải hoạt động tốt như: các
thiết bị nội thất mới, người đi bộ, các đối tượng bị thiếu hoặc robot không nhận biết,
người dùng không chuyên nghiệp, trẻ em, vật nuôi, xe ô tô trên đường. Bên cạnh đó,
hầu hết các robot dịch vụ điện thoại di động và làm việc gần với mọi người. Do yêu
cầu đặt biệt của robot dịch vụ nên đã tạo ra một ngành công nghiệp mới được thiết kế
đặc biệt cho các ứng dụng robot dịch vụ.
Xây dựng một robot làm việc cho phòng khách sạn, dọn dẹp nhà cửa, hoặc
phục vụ bữa ăn sáng là mơ ước của tất cả các robot dịch vụ. Một công ty cung cấp
sản phẩm ở một mức giá hợp lý có thể sẽ làm cho doanh số bán hàng của công ty là
rất lớn. Qn đội đang tìm kiếm cho robot có thể được sử dụng để chống lại cuộc
chiến tranh, người nông dân rất thích robot để phát triển cây trồng.

3


Hình 1.2. - Hệ thống robot phẫu thuật DaVinci
Gần như mọi ngành cơng nghiệp có sử dụng các robot dịch vụ như:
Robot chăm sóc người cao tuổi.
Máy quét tự động và giám sát sức khỏe (chăm sóc sức khỏe)
Robot phẫu thuật (chăm sóc sức khỏe)
Robot giao hàng (khách sạn, bệnh viện, nhà hàng, văn phịng)
Robot hái cây trồng (nơng nghiệp)
Xe khơng người lái (phịng thủ)
Xử lý bom (phịng thủ)
An ninh, tuần tra
Giải trí (nhà, bảo tàng, cơng viên)

Làm sạch vệ sinh
Khai thác mỏ
Sự chửa cháy
1.2 Robot dịch vụ
Mặc dù robot dịch vụ là một ngành công nghiệp tương đối trẻ, nó đã trải qua
một q trình cải tiến liên tục trong công nghệ. Nhiều robot dịch vụ hiện nay được triển
khai vẫn còn điều khiển từ xa bởi một nhà điều hành là con người.Mỗi chuyển động
của những robot được khởi động và điều khiển bởi con người.

Hình 1.3. –Robot chăm sóc sức khỏe từ xa
Các robot phẫu thuậthồn chỉnh, và telepresence robot chăm sóc y tế là những
ví dụ tốt của dịch vụ robot điều khiển từ xa. Robot dịch vụ tự chuyển hướng và tránh
chướng ngại vật trong nhà chuyển, robot tự lái xe ngoài trời. Nội thất trong nhà, tránh
chướng ngại vật, và định hướng đi đã được học viện nghiên cứutrong nhiều năm, và
đã phát triển thành một công nghệ ngày một phát triển. Số lượng robot trên thị trường

4


ngày càng tăngthể hiện sự thành công trong lĩnh vực robot dịch vụ được sử dụng
trong các văn phòng hoặc thiết lập sử dụng trong nhà.

Hình 1.4. - Robot di động trong nhà
Công nghệ robot tự chuyển động và định hướng đi trong nhà phụ thuộc rất
nhiều vào phạm vi laser dị tìm, tia hồng ngoại siêu âm để phát hiện chướng ngại vật,
cảm biến cảm ứng, các thuật toán computer vision, và lập bản đồ trong phịng.

Hình 1.5. - Kho hàng robot
Ngày nay, một số công ty cung cấp robot tự hành trong nhà và ngồi trời, xe
khơng người lái (UV), robot tự hút bụi,robot kho, robot cắt cỏ, robot giao hàng tận nơi,

phương tiện robot đi lại nông nghiệp. Tùy thuộc vào các nhiệm vụ, phương tiện xe đi
lại không người lái, robotphát hiện xâm nhập, robot phát hiện đám cháy, robot phát
hiện Sniper, hoặc các thẻ RFID kiểm sốt, robot tự hành, điện thoại di động có thể lập
trình để làm việc cùng với các robot

5


Hình 1.6. - Xe khơng người lái
Các robot dịch vụ cơng nghệđã phải di chuyển vượt ra ngồi chuyển hướng tự
hành bằng robot tự học tập và robot dịch vụ xã hội,là sự phát triển tiếp theo của cơng
nghệ.

Hình 1.7. - Dexter Robot
Học cơng nghệ là chìa khóa cho phép các robot thông minh và tự chủ trong các
thao tác của cánh tay robot trong các môi trường khác nhau. Các phiên bản mới nhất
của hệ thống điều khiển học có thể khám phá ra thuộc tính đối tượng, tương tác với
con người, và thậm chí đốn ý định của con người.

Hình 1.8. - Dịch vụ đào tạo Robot

6


Các phần mềm hướng dẫn học tập và robot xã hội được dựa trên một nguyên
tắc mới cải thiện đáng kể từ phương pháp tiếp cận truyền thống, vì nó cho phép các
robot tự tìm hiểu nhiệm vụ mới, hành vi trực tiếp từ con người mà khơng cầnlập trình
lại. Thay vì xác định "những gì robot cần phải làm", phần mềm xác định "làm thế nào
các robot sẽ tìm hiểu những gì nó cần phải làm."


Hình1.9. - Một robot dịch vụ được đào tạo tự làm công việc của mình
Hãy tưởng tượng chúng ta là Guy Lucky chỉ có một Robot dịch vụ. Chúng ta
muốn robot dọn dẹp cho căn phònghàng ngày, hái cam trong khu vườn. Chúng ta sẽ
mong đợi robot tự học hỏi từ tất cả những điều muốn nó làm.

Hình 1.10. - Một hoạt động cá nhân Robot tele lấy một ly bia
1.3 Các nền tảng phần mềm cho robot
Ngày nay thị trường robot dịch vụ được so sánh với thị trường máy tính. Như
vậy, một số công ty đang cố gắng để trở thành "Next Microsoft Robotics” và xây dựng
một nền tảng phần mềm tiêu chuẩn robot, thường được gọi là hệ điều hành robot.
Microsoft cũng có phần mềm nền tảng cho robot, được gọi là Microsoft Robotics
Developer Studio.
Thị trường robot đang phát triên sôi nổi như hiện nay đã xuất hiện một số nền
tảng phần mềm robotcạnh tranh và khơng tương thích với nhau. Bảng thống kê dưới
đây tóm tắt đầy đủ các tính năng liên quan của phần mềm robot đang nổi bật trên thị
trường hiện nay.
Bảng 1.1 So sánh tính năng các loại hệ điều robot

7


Microsof
t
Robotics
Studio
1.5

Điện
thoại
di

động
Robot
s

Skilligen
t

iRobot
2.0

Gosta
i Urbi

Tiến
hóa
Robotic
s ERSP
3,1

OROCO
S


nguồn
mở
Miễn phí

Khơng

Khơng


Khơng

Khơng

Một
phần

Khơng



Máy
nghe
nhạc,
sân
khấu,
Gazeb
o


Edu/hby

Khơng

Khơng

Khơng

Khơng






Giao diện
cửa sổ
Linux
Phân
phối dịch
vụ kiến
trúc
Fault-ring







?

Lựa
chọn
nền
tảng





Khơng



Khơng



Khơng











Khơng


Khơng



(giới
hạn)


Khơng

Khơng





Khơng

Khơng

Khơng

JAUS
Complian
t
Đồ họa
OCU
Đồ họa
plug-nDrop IDE
Được
xây dựng
trong
điều
khiển
cánh tay
robot
Được
xây dựng


Khơng

Khơng



Có (?)

Khơn
g
Khơn
g

Khơng

Khơng

Khơng

(Web)












Khơng

Khơng



Khơng

Khơng

Khơng





Khơng

Khơng

Khơng








Khơn
g

Khơng



Khơng

Khơng

Khơng



Khơng

Khơn
g



Khơng

Khơng

8


trong xác

nhận
Visual
đối
tượng
Được
xây dựng
trong hệ
thống nội
địa hóa
Robot
học tập
và sự
tương
tác xã hội

phỏng
mơi
trường
Tái sử
dụng
dịch vụ
Xây
dựng
RealTime

Khơng






Khơng

(miếng
)

Khơn
g



Khơng

Khơng

Khơng

Khơng



Khơng

Khơn
g

Khơng

Khơng


Khơng





Khơng





Khơng

Khơng


















Khơng

Khơng

Khơng

Khơng
có (kế
hoạch)

Khơng

Khơn
g

Khơng



Khơng

1.4 Hệ điều hành robot
1.4.1 ROS (www.ros.org)
ROS (Hệ điều hành Robot) - Đây là phần mềm mã nguồn mở (BSD giấy phép đó là có thể sử dụng và sửa đổi chương
trình để phù hợp với mục tiêu của bạn,
bao gồm cả cho mục đích thương mại).
ROS - là kết quả của Willow
Garage nghiên cứu trong phịng thí

nghiệm phối hợp với Đại học Stanford.
Dự án thực hiện kiểm soát hệ thống ROS
của một robot, và trên cơ sở phát triển
các gói phần mềm: thư viện Computer
vision, OpenCV, Hệ thống lập kế hoạch,
hệ thống quản lý máy chủ và các công

9


nghệ khác được sử dụng trong hàng chục dự án khoa học và áp dụng trên tồn thế
giới.
Nhiệm vụ chính của ROS - là khả năng tái sử dụng mã nguồn trong nghiên cứu
và phát triển robot.
ROS tích hợp các trình điều khiển khác nhau, các thuật tốn, và mở thư viện
phổ biến robot.
ROS cung cấp một loại chức năng Hệ thống Robot điều hành: Phần cứng kiểm
soát ở mức độ thấp của thiết bị, thực hiện chức năng, tin nhắn qua giữa các q trình,
phần mềm quản lý.
ROS khơng phải là một hệ thống thời gian thực, mặc dù nó có thể sử dụng hệ
thống thời gian thực (ví dụ, OROCOS-Bộ công cụ thời gian thực).
ROS - một hệ thống phân phối của các quá trình (các nút). Những q trình
này có thể được đóng lại thành các package và stack được phổ biến một cách dễ
dàng.
ROS dễ dàng tích hợp với các phần mềm khác (hiện đang tích hợp với
OpenRAVE, OROCOS và player).
ROS cố gắng không phụ thuộc vào các ngơn ngữ lập trình, tại thời điểm này
được triển khai thực hiện phiên bản của C + + và Python (có thử nghiệm Thư viện cho
LISP Octave Java).
ROS có một gói phần mềm xây dựng để thử nghiệm - rostest, tạo điều kiện cho

việc thử nghiệm các ứng dụng.
ROS hỗ trợ khả năng mở rộng.
ROS có hai phần: phần hệ thống điều hành của ROS và Ros-pkg package, mà
thực hiện tất cả các chức năng nội địa hoá, lập bản đồ, lập kế hoạch, nhận thức, mơ
hình hóa, vv
Hiện nay chỉ có hoạt động trong hệ thống ROS UNIX như Ubuntu Linux.
Đến nay, phiên bản mới nhất - ROS C Turtle. Hỗ trợ các robot:
Lego NXT
- STAIR 1 - Đại học Stanford
- Aldebaran Nao
- i-Sobot Của Kawada HPR2-V
- TUM-Rosie
- Marvin
- Herb
- Penn Quadrotors
- Robotino
- Meka Robots
- Skybotix
Các robot nổi tiếng nhất được chạy ROS như robot PR2 Willow Garage.
1.4.2 Microsoft Robotics Developer Studio
Microsoft
Robotics
Developer
Studio
(Microsoft
RDS,

10



MRDS.)(www.microsoft.com/robotics/) - Windows theo định hướng phát triển ứng
dụng môi trường cho các nền tảng robot.
Phiên bản đầu tiên của Robotics Studio được phát hành vào năm 2006 và là phiên
bản hiện đangcósẵnMicrosoft Robotics Developer Studio 2008 R3.
Trong Robotics studio cơng cụ lập trình trực quan có sẵn, cũng như môi trường ảo ba
chiều mô phỏng vật lý của robot - PhysX.
Các thành phần của Robotics Studio:
- Thời gian chạy mơi trường - một mơi trường mà trong đó các ứng dụng cho
robot là theo dõi và tương tác với các ứng dụng khác cho robot. Các cơ sở môi
trường Thời gian chạy là CLR 2.0, mà làm cho nó có thể viết các ứng dụng
bằng cách sử dụng bất kỳ ngơn ngữ lập trình nền tảng Microsoft. NET.
- Thời gian chạy môi trường bao gồm hai yếu tố: CCR (cập đồng thời và phối
hợp Thời gian chạy, Thư viện song song và phối hợp) - thư viện cho các dịng
dữ liệu song song và khơng đồng bộ.
- DSS (Dịch vụ phần mềm được phân cấp, phân cấp dịch vụ phần mềm) - Một
công cụ cho các ứng dụng phân tán dựa trên dịch vụ (đối với công việc và giao
thức tương tác được sử dụng phi tập trung hóa hệ thống Dịch vụ Nghị định thư
(DSSP), mà là dựa trên giao thức SOAP - Trao đổi tin nhắn bất kỳ định dạng
XML).
- VPL (Visual) - ngơn ngữ lập trình trực quan để viết các ứng dụng cho robot (sơ
đồ VPL được lưu trữ như XML-Schema)
- Mô phỏng môi trường mô phỏng môi trường cho các ứng dụng robot trong
điều kiện mơ phỏng (Tuy nhiên, các mơ hình vật lý trong Microsoft Robotics
Studio, cho rõ ràng, chứ không phải đơn giản, và giả lập này sẽ khơng làm việc
mà tính tốn chính xác là cần thiết.).
- Trong Robotics Studio, một ứng dụng
- là thành phần của các thành phần
đồng thời lỏng. Đồng thời - tất cả các
thành phần trong các Studio Robotics
- bất cứ điều gì nó là dịch vụ thực thi,

có nghĩa là, ví dụ như các nhà phát
triển của chương trình đó là khơng có
động cơ vật lý và có 1 giao diện dịch
vụ để áp dụng làm việc với động cơ
của các chương trình bằng văn bản.
- RDS cho phép các gói phần mềm để phát triển các chương trình cho một loạt
các nền tảng phần cứng.
Hỗ trợ các robot:
- Pioneer 3DX
- Lego Mindstorms NXT
- iRobot Create

11


Aldebaran Nao
Parallax Boe-Bot
- Segway RMP
- RoombaDevTools
- Parallax Boe-Bot
- CoroWare CoroBot
- Lynxmotion Lynx 6 Robotic Arm
- Tại thời điểm này, các gói phần mềm Microsoft Robotics Developer Studio 2008
R3 (RDS) phân phối miễn phí và sẵn sàng tự do cho mọi người đều. Vấn đề
duy nhất là khơng ai có thể chắc chắn rằng cách kéo trên một số các nhà phát
triển robot một lần nữa Microsoft không muốn được trả tiền cho sản phẩm của
bạn.
- RDS tiêu cực nghiêm trọng - là phụ thuộc trên cả Windows và mã nguồn đóng.
Ngồi ra, cần lưu ý rằng Robotics Developer Studio đã xây dựng trong hệ thống
AI - hệ thống Computer Vision, Danh mục và học máy. Một giao thức để sử

dụng SOAP, cho sự tương tác của các dịch vụ phân phối, mặc dù không được
thiết kế cho các ứng dụng làm việc trong thời gian thực.
1.4.3 URBI (www.urbiforge.com)
URBI hệ thống từ cơng ty Pháp Gostai, Chúng tơi có mặt ở đây để biết thêm chitiết
đã viết.
URBI - một nền tảng phần mềm nền
tảng mở cho C + +, được sử dụng để phát
triển các ứng dụng cho các robot và các hệ
thống phức tạp. URBI được dựa trên một
kiến trúc thành phần phân tán UObject. Nó
cũng bao gồm urbiScript - Song song và
hướng sự kiện ngôn ngữ kịch bản.
Kiến trúc URBI
- URBI thực hiện một lớp trừu tượng bằng cách tách biệt các chương trình kiểm
sốt trên các urbiScript từ sự tương tác với hệ điều hành. với lớp UObject-trình
điều khiển.
- Đó là, làm bạn với một URBI Robot
cần phải tạo ra trung gian UObject
trình điều khiển cho phần cứng của
bạn.
- URBI lớn, cộng với một hệ thống
nền tảng - nó chạy trên Windows,
Linux, và Mac OS.
- URBI có một tập hợp các công cụ
phát triển đồ họa - Gostai Studiovà
Gostai Lab.
-

12



URBI mơ phỏng của ơng có khơng, nhưng bạn có thể sử dụng Webots. Bắt đầu
với phiên bản thứ hai của Urbi ROS có thể tương tác với các cơng ty Willow
Garage.
Và cuối cùng nhưng không kém - Gostai mở mã nguồn URBI SDKđược cấp phép theo
AGPL GNU v3.
- Hệ thống này cũng là tài liệu và hỗ trợ các mơ hình phổ biến nhất của robot:
- Segway
- Aibo ERS7/ERS2XX
- IRobot Create
- Lego Mindstorms NXT
- HRP-2 (hạn chế phát hành cho các thành viên của JRL)
- Nao từ Aldebaran
- Robotis Bioloid
- Điện thoại di động Robots Pioneer
1.4.4 OROCOS
OROCOS (Open Robot điều khiển dự án phần mềm) -(orocos.org)- phần mềm mã
nguồn mở để điều khiển robot.
Dự án hỗ trợ các hướng dẫn sau đây OROCOS 4 C + + thư viện:
Bộ công cụ thời gian thực,
Hai. Kinematics và Thư viện Dynamics,Thư viện lọc Bayesian Hợp phần Orocos Thư
viện.
Kể từ khi OROCOS - nó chỉ đơn giản

một tập hợp các thư viện, như một hệ
quả
khơng có cơng cụ phát triển mới lạ
OROCOS đồ họa và mơ phỏng riêng
của
mình.

- Orocos Real-Time Toolkit (RTT)
khơng tồn tại của chính nó, nhưng
cung cấp cơ sở hạ tầng và chức
năng của các ứng dụng khác. Thư viện tập trung vào các ứng dụng thời gian thực
cho phép các mô-đun điều khiển hệ thống tương tác.
- Thư viện Orocos Components (OCL) cung cấp sẵn sàng để sử dụng các tính
năng quản lý, cũng như các thành phần để kiểm soát và truy cập vào phần cứng.
- Kinematics Orocos và Dynamics Thư viện (KDL) là một phần của một chương
trình phát triển trong C + +, trong đó, lần lượt, cho phép chúng tơi tính tốn các
chuyển động cho phép thời gian thực
- Thư viện Orocos Bayesian Filtering Thư viện (BFL) 1 cấu trúc độc lập (khuôn
khổ) cho mạng Bayesian động, đó là, đệ quy xử lý thơng tin phù hợp với đánh giá
của các thuật toán được sử dụng trong quy tắc Bayes ', như các (mở rộng)
Kalman Bộ lọc, bộ lọc hạt (Sequential Monte phương pháp).
- Máy nghe nhạc, cung cấp một giao diện mạng cho một loạt các phần cứng của
-

13


robot và cảm biến. Mơ hình Client-server và các cầu thủ cho phép chương trình
kiểm sốt các robot phải được viết bằng bất kỳ ngơn ngữ lập trình, và chạy trên
bất kỳ máy tính nào kết nối vào mạng, cùng với robot.
- Các thành phần của dự án làm việc trên hệ điều hành tương thích POSIX, bao
gồm cả Linux, Mac OS X, Solaris, và BSD, kế hoạch porting Microsoft Windows.
Dự án được thành lập năm 2000 Brian Gerkey, Richard Vaughan và Andrew
Howard tại Đại học Nam California ở Los Angeles và được sử dụng rộng rãi trong
giáo dục và nghiên cứu robot.
- Các phần mềm được cấp giấy phép theo GNU General Public License tài liệu theo
Giấy phép Tài liệu Tự do GNU.

1.4.5 Skilligent (skilligent.com)
Các sản phẩm chính Robot Hoc
tậpvà Hệ thống kiểm sốt hành vi,
Trong đóbao gồm:
Các hệ thống thị giác máy Robot Tầm nhìnhệ thống (phát hiện và
theo dõi các đối tượngmà mô tả được
chứa trong một cơ sở dữ liệu đặc biệt)
Danh mục hệ thống - Visual
hệthống địaphương hoá (xác định định
hướng của các cơ sở sau khi buổi tập).
Các yếu tố của hệ thống chịu lỗi kiểm soátlỗi, chịu kiểm soát khung (-JAUSHệ
thống quản lý phù hợp để phối hợp các công việc chung của tất cả
các mô- đun).
Sản phẩm triết học là để tạo ra một hệ thống quản lý học
tập
đầy đủ. Sau khi cài đặt phần mềm trong robot,
người sử dụng bắt đầu tương tác với robot, dạy
hành vi mới, sử dụng ưu đãi mới cho việc học tập
một robot. Ý tưởng là để chứng minh các trình tự
cần thiết của hành động (cử chỉ một robot phải nhận
ra những huấn luyện viên và thực hiện một bước
của công việc). Việc lặp đi lặp lại quá trình học tập
tiếp tụ c cho đến khi robot cho đến khi các robot không thể làm công việc của họ một
cách độc lập.
1.4.6 Robotics ERSP
ERSP từ công ty Robotics(www.evolution.com/products/ersp/)- Một khuôn khổ
cho phát triển phần mềm robot. Nó bao gồm ba phần chính:
- ViPR (Visual Pattern Recognition) module là một sự công nhận thị giác.
- VSLAM - mô-đun định hướng dựa trên dữ liệu từ một máy ảnh duy nhất và bộ mã
hóa quang học, cho phép nội địa hoá và lập bản đồ các khu vực lên đến 10 cm

- Ersa - hoạt động robot hệ thống cung cấp tất cả các cơ sở hạ tầng và chức

14


năng quản lý của tất cả các thành phần phần cứng và phần mềm của robot
Tầm nhìn hệ thống máy tính và hệ thống SLAMdựa trên thuật tốn SIFT. ERSP
nền tảng đó là một chương trình lập trình trực quan dựa trên các đơn vị khác
nhau "hành vi". Ngoài ra, ERSP có thể phát triển các chương trình trong một
ngơn ngữ lập trình kịch bản - Python (Python).
- ERSP - phát triển nền tảng và hỗ trợ các nền tảng sau đây:
32-bit (64-bit) Debian 4,0
32-bit (64-bit) Fedora Core 8 Windows XP 32-bit
- Phần mềm này được phân phối với một khung phổ quát cho máy tính xách tay ER-1:). Trong ERSP là khơng có mơi trường mơ phỏng, cũng như không được hỗ trợ
bởi các kiến trúc phân phối.
pháp của bên thứ ba đối với các robot iRobot
1.4.7 LabVIEW Robotics
LabVIEW (Phịng thí nghiệm ảo Instrumentation Engineering Workbench)
- một nền tảng phát triển đồ họa môi trường

nền tảng cho các chương trình đang chạy tạo
ra
trong các ngơn ngữ lập trình đồ họa, "G" Công ty National Instruments.
Tại trung tâm của LabVIEW là mơ hình của dịng dữ liệu. Dây (Wire) dữ liệu
được truyền từ một trong những yếu tố để những người khác. Khái niệm này được
gọi là lưu lượng dữ liệu. Bản chất của Sơ đồ khối - một nút (node), một đầu ra nút kết
nối với các yếu tố đầu vào của các nút khác.
Các nút bắt đầu thực hiện chỉ khi tất cả yêu
cầu đến cho các dữ liệu.
Một trong những tính năng chính của

lập trình trực quan - đang thực sự có thể là
một rõ ràng và đẹp! Mặt khác, nó có thể dễ
dàng biến thành bún...
LabVIEW được sử dụng trong thu thập
dữ liệu và chế biến, cũng như quản lý các đối tượng kỹ thuật và quy trình cơng nghệ.
LabVIEW hỗ trợ một phạm vi rộng lớn của thiết bị từ các nhà sản xuất khác
nhau, và bao gồm nhiều thư viện thành phần, bao gồm, điều khiển robotvà hệ thống
máytầmnhìn.
Sản phẩm - LabVIEW Robotics www.ni.com/robotics/và LabVIEW RoboticsStarterKit.
Nó dựa trên mơi trường lập trình LabVIEW Lego NXTTuy nhiên, mơ- đun LabVIEW
bình thường với LabVIEW LEGO MINDSTORMS NXT Module cũng cho phép bạn
tương tác với tất cả các cảm biến, các robot LEGO Mindstorm NXT.
Nhận xét:
Sau khi xem xét các giải pháp phần mềm hiện có cho robot, bạn có thể làm cho khái
quát sau đây:
- Robosoft hoạt động như một trung gian giữa bình thường hệ điều hành và các
chương trình / Robot kịch bản kiểm soát

15


2.1 Giới thiệu chung

Robosoft có một cấu trúc mơ-đun, mà chạy trên đầu trang của lớp cơ sở (khuôn
khổ)
- Robosoft có một cấu trúc client-server phân
phối "Tiêu chuẩn" Robosoftlà:
- Framework, cung cấp hoạt động điển hình, một lớp trừu tượng từ phần cứng,
phần thông tin liên lạc chủ đề qua.
- Thêm vào các mơ-đun thực hiện các thuật tốn khác nhau robotehnicheskie

(tầm nhìn máy tính, SLAM, học máy, chuyển động).
- Sim (mô phỏng là một phần quan trọng của phát triển phần mềm cho các robot
- nó cho phép bạn để gỡ lỗi các thuật tốn trong một mơi trường ảo, mà không
phải mua thiết bị đắt tiền.)
- Shell cho lập trình trực quan và điều khiển robot (trực quan và dễ tiếp cận lập
trình hướng đối tượng, đại diện của một robot trong một máy nhà nước hữu
hạn phân cấp, vv)
1.5 Giới thiệu thiết bị Kinect
1.5.1 Giới thiệu chung
-

Hình 1.11: Thiết bị Kinect
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, những sản phẩm đầu tiên được bán tại Bắc Mỹ vào ngày 4 tháng 11 năm
2010. Kinect được coi như là một thiết bị ngoại vi cho Xbox 360, cho phép giao tiếp
với con người thông qua các cử chỉ, đem lại những cảm giác thú vị cho người chơi
game trên Xbox. Khả năng hiểu được cử chỉ con người của Kinect dựa trên hai đặc
tính chính sau: thơng tin về độ sâu ảnh (depth map), khả năng phát hiện và bám
theo đặc tính cơ thể người (body skeleton tracking).
Kinect đang giữ kỷ lục Guiness thế giới về “Thiết bị điện tử được tiêu thụ nhanh
nhất” với 8 triệu sản phẩm trong 60 ngày. Mười triệu sản phẩm Kinect đã được phân
phối trên thế giới vào ngày 9 tháng 3 năm 2011. Bên cạnh phục vụ cho mục đích chơi
game, sản phẩm Kinect cịn được dùng vào mục đích nghiên cứu xử lý ảnh 3D, phát
hiện cử chỉ (gesture recognition), bám theo người (body tracking) và nhiều mục đích
khác. Lý do chính cho sự thành công của sản phẩm Kinect là giá cả khá rẻ (khoảng
140$ trên 1 sản phẩm) cho thiết bị có khả năng cung cấp các thơng tin 3D với chất
lượng chấp nhận được.


2.2 Những thành phần chính của Kinect


1.5.2 Các thành phần của Kinect

Hình 1.12 Cấu trúc các thành phần của Kinect
Kinect gồm có: RGB camera, cảm biến độ sâu (3D Depth Sensors), dãy microphone
(Multi-array Mic) và động cơ điều khiển góc ngẩng (Motorized Tilt).
RGB Camera: như một camera thơng thường, có độ phân giải 640x480 với tốc
độ 30 fps.
Cảm biến độ sâu: độ sâu được thu về nhờ sự kết hợp của hai cảm biến:đèn
chiếu hồng ngoại (IR Projector) và camera hồng ngoại (IR camera).
Dãy đa microphone: gồm bốn microphone được bố trí dọc Kinect như trênhình
trên, được dùng vào các ứng dụng điều khiển bằng giọng nói.
Động cơ điều khiển góc ngẩng: là loại động cơ DC khá nhỏ, cho phép ta điều
chỉnh camera lên xuống để bảo đảm camera có được góc nhìn tốt nhất

Hình1.13 Động cơ điều khiển góc ngẩng Kinect
Một trong những đặc tính quan trọng nhất của Kinect đó là thu về giá trị độ sâu hay giá
trị khoảng cách tới vật thể trong thế giới thực. Phần tiếp theo sẽ nói về nguyên lý hoạt
động của Kinect trong việc tính tốn giá trị này.
Tính tốn độ sâu

Hình 1.14: Bên trong Kinect: RGB, IR camera và IR projector
Cặp cảm biến IR camera và IR projector sẽ phối hợp với nhau để cho ra giá trị độ sâu
ảnh bằng công nghệ Light Coding của PrimeSense.


Hình 1.15: Quá trình thu về bản đồ độ sâu ảnh
Khác với kỹ thuật Stereo Camera với việc dùng cặp camera giống nhau để xây
dựng nên bản đồ độ sâu, hay kỹ thuật Time-Of-Flight (TOF) định nghĩa khoảng cách
bằng ước lượng thời gian di chuyển của tia sáng đi và về trong không gian; kỹ thuật

Light Coding dùng một nguồn sáng hồng ngoại chiếu liên tục kết hợp với một camera
hồng ngoại để tính tốn khoảng cách. Cơng việc tính toán này được thực hiện bên
trong Kinect bằng chip PS1080 SoC của PrimeSense. Công nghệ mới này được cho
là đáp ứng chính xác hơn, giá cả rẻ hơn cho việc sử dụng ở môi trường trong nhà.
Projector sẽ chiếu một chùm sáng hồng ngoại, tạo nên những đốm sáng ở khơng
gian phía trước Kinect, tập hợp đốm sáng được phát ra này là cố định. Những đốm
sáng này được tạo ra nhờ một nguồn sáng truyền qua lưới nhiễu xạ (diffraction
gratings). Tập hợp các đốm sáng này được IR camera chụp lại, thơng qua giải thuật
đặc biệt được tích hợp trong PS1080 SoC [4] cho ra bản đồ độ sâu. Bản chất của giải
thuật này là các phép tốn hình học dựa trên quan hệ giữa hai cảm biến IR camera và
Projector mà ta sẽ đề cập sau. Hình 2.6 cho ta thấy rõ mẫu hình tập hợp các đốm
sáng từ Projector và được chụp lại bởi IR camera.

Hình 1.16: Mẫu hình được chiếu bởi projector và chụp lại bằng IR camera

18


Để hiểu cách thức Kinect ước lượng khoảng cách tới vật thể trong môi trường
như thế nào, ta quan sát hình trên trong trường hợp phân tích với một điểm đơn giản.

IR camera Projector
Hinh 1.17: Tính tốn khoảng cách tới một điểm chiếu từ Projector
Ta giả sử Projector phát đi một tia sáng dọc đường màu xanh lá, nó sẽ được
chụp lại dưới dạng một đốm sáng bởi IR camera khi chạm vào bề mặt vật thể trong
không gian. Ta xét ba mặt phẳng ở ba khoảng cách khác nhau: mặt phẳng gần Kinect
(close plane), mặt phẳng ở xa Kinect (distant plane) và mặt phẳng tham chiếu
(reference plane) ở giữa hai mặt phẳng trên. Trong đó, mặt phẳng tham chiếu ngầm
được biết trước bên trong Kinect với đầy đủ thông tin về khoảng cách. Ngoài ra, ta
cũng đề cập thêm mặt phẳng ảnh (image plane) của IR camera, là mặt phẳng hình

chiếu của các điểm trong khơng gian thu về bởi IR camera. Ta xét trong ba trường hợp
khi tia sáng màu xanh lá chạm vào ba điểm trên ba mặt phẳng lần lượt là A, B, C; ba
điểm này được chiếu lên mặt phẳng ảnh tương ứng là A’, B’, C’. Quan sát vị trí A’, B’
và C’, ta có nhận xét: điểm A càng gần Kinect (hay close plane càng gần Kinect) thì A’
càng xa B’ về phía bên phải; ngược lại, điểm C càng xa Kinect (hay distant plane càng
xa Kinect) thì C’ càng xa B’ về phía bên trái. Từ đó: khi ta biết trước hướng, điểm xuất
phát của tia sáng từ Projector và vị trí B’ là hình chiếu của điểm B trên mặt phẳng tham
chiếu lên mặt phẳng ảnh, ta hồn tồn có thể tính tốn được độ sâu ảnh hay khoảng
cách tới vật thể.
Kinect làm điều tương tự với tập hợp các đốm sáng còn lại phát đi từ projector, với
mặt phẳng tham chiếu biết trước. Nó tìm điểm là tâm của đốm sáng mà IR camera
chụp lại được và điểm tương đồng của đốm sáng đó trên mặt phẳng tham chiếu (ví
dụ: ta có A và B, C và B là các cặp điểm tương đồng), để tìm khoảng chênh lệch giữa
hai điểm này theo chiều ngang khi chiếu về trên mặt phẳng ảnh; và lưu ý là giá trị
chênh lệch này được tính bằng đơn vị pixel. Tập hợp của tất cả các giá trị chênh lệch
từ tập hợp đốm sáng, sẽ tạo nên bản đồ độ chênh lệch (disparity map), giá trị này
càng lớn thì khoảng cách hay giá trị độ sâu ảnh (depth) càng lớn, từ đó mà ta xây
dựng được bản đồ độ sâu (depth map) với giá trị tính bằng mét thực sự. Tuy nhiên, do

19


×