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

Thiết kế và chế tạo robot tự động điều hướng môi trường trong nhà

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 (2.7 MB, 82 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CƠ KHÍ

ĐỒ ÁN TỐT NGHIỆP
NGÀNH: KỸ THUẬT CƠ ĐIỆN TỬ

ĐỀ TÀI:

THIẾT KẾ VÀ CHẾ TẠO ROBOT TỰ ĐỘNG
ĐIỀU HƯỚNG MÔI TRƯỜNG TRONG NHÀ

Người hướng dẫn:
Sinh viên thực hiện:
Số thẻ sinh viên

:

Lớp:

TS. VÕ NHƯ THÀNH
TRẦN LÊ THANH KHOA
TRẦN QUỐC HOÀNG
101140147
101140142
14CDT1

Đà Nẵng, 2019


TÓM TẮT ĐỒ ÁN TỐT NGHIỆP


Tên đề tài:

Thiết kế và chế tạo robot tự động điều hướng môi trường
trong nhà

SV thực hiện:

Trần Lê Thanh Khoa

MSSV: 101140147

Lớp: 14CDT1

Trần Quốc Hoàng

MSSV: 101140142

Lớp: 14CDT1

GV hướng dẫn:

TS Võ Như Thành

GV duyệt:

TS Đặng Phước Vinh

Nội dung đã làm được bao gồm các vấn đề sau:
1. Nhu cầu thực tế của đề tài:
Hiện nay, kĩ thuật robot đã và đang được ứng dụng rộng rãi ở nhiều nước, nó đã

đem lại hiệu quả to lớn trong sản xuất công nghiệp, trong quốc phòng, thám hiểm vũ
trụ, y tế, xã hội. Tuy nhiên, việc ứng dụng robot vào trong sản xuất, phục vụ đời sống
ở Việt Nam vẫn chưa cao. Cụ thể như trong môi trường công nghiệp ở nước ngoài,
AGV là một loại robot được sử dụng để chuyên chở tự động. Hay là robot tự động
phục trong nhà hàng, quán cafe.
Với mong muốn tạo ra những robot có tính ứng dụng cao như vậy cho đời sống
cũng như trong sản xuất công nghiệp nước ta, nhóm chúng tôi đã quyết định chọn đề
tài "Thiết kế và chế tạo robot tự động điều hướng môi trường trong nhà" làm đề tài tốt
nghiệp.
2. Phạm vi nghiên cứu của đề tài tốt nghiệp:
✓ Nghiên cứu, thiết kế và chế tạo robot có thể tạo bản đồ 2D, 3D và tự động điều
hướng trên bản đồ.
✓ Nghiên cứu và ứng dụng ROS (robot operating system) để chế tao robot.
✓ Nghiên cứu và sử dụng cảm biến Kinect.
3. Nội dung đề tài đã được thực hiện:
✓ Số trang thuyết minh: 81 trang
✓ Số bản vẽ: 6 bản vẽ A0
✓ Mô hình: 1

i


4. Kết quả đạt được:
• Phần lý thuyết
✓ Nghiên cứu, ứng dụng thành công ROS để chế tạo robot
✓ Robot có khả năng quét bản đồ và tự điều hướng rất tốt.
✓ Thiết kế robot bằng phần mềm Solidwork và vẽ bản vẽ bằng Autocad.
✓ Lý thuyết về cảm biển Kinect, encoder, Arduino Mega
✓ Thiết kế mạch bằng phần mền Altium.
• Phần tính toán, thiết kế

✓ Thiết kế và chế tạo phần cơ khí.
✓ Thiết kế và chế tạo các mạch điền khiển
✓ Đã chế tạo thành công mô hình hoạt động tương đối ổn định.
✓ Tính toán và thiết kế hệ thống cảm biến.

Đà Nẵng, ngày 1 tháng 6 năm 2018
Sinh viên thực hiện

Trần Lê Thanh Khoa

ii

Trần Quốc Hoàng


ĐẠI HỌC ĐÀ NẴNG

CỘNG HÒA XÃ HÔI CHỦ NGHĨA VIỆT NAM

TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CƠ KHÍ

Độc lập - Tự do - Hạnh phúc

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

TT Họ tên sinh viên

Số thẻ SV


Lớp

Ngành

1

Trần Lê Thanh Khoa

101140147

14CDT1

CƠ ĐIỆN TỬ

2

Trần Quốc Hoàng

101140142

14CDT1

CƠ ĐIỆN TỬ

1. Tên đề tài:
Thiết kế và chế tạo robot tự động điều hướng môi trường trong nhà
2. Đề tài thuộc diện: ☐ Có ký kết thỏa thuận sở hữu trí tuệ đối với kết quả thực hiện
3. Các số liệu và dữ liệu ban đầu: Tham khảo thực tế
4. Nội dung các phần thuyết minh và tính toán:
a. Phần chung:

TT

Họ tên sinh viên

Nội dung

1

Trần Lê Thanh Khoa

- Tính toán, thiết kế và chế tạo kết cấu cơ khí robot.
- Thiết kế hệ thống mạch điện điều khiển robot.

2

Trần Quốc Hoàng

b. Phần riêng
TT

Họ tên sinh viên

1

Trần Lê Thanh Khoa

2

Trần Quốc Hoàng


Nội dung
- Xây dựng lưu đồ thuật toán điều khiển robot.
- Lập trình chương trình xử lí
-Tìm hiểu cơ cấu động học robot

5. Các bản vẽ, đồ thị ( ghi rõ các loại và kích thước bản vẽ ):
a. Phần chung:
TT

Họ tên sinh viên

1

Trần Lê Thanh Khoa Bản vẽ tổng thể robot
Bản vẽ sơ đồ nguyên lý
Trần Quốc Hoàng

2

Nội dung

iii

1 A0
1 A0


b. Phần riêng:
TT


Họ tên sinh viên

1

Trần Lê Thanh Khoa Bản vẽ sơ đồ khối mạch điều khiển
Bản vẽ lưu đồ thuật toán

1 A0
1 A0

2

Trần Quốc Hoàng

Bản vẽ sơ đồ động

1 A0

Bản vẽ các chi tiết

1 A0

Nội dung

6. Họ và tên người hướng dẫn: T.S Võ Như Thành
7. Ngày giao nhiệm vụ đồ án: 1/2/2018
8. Ngày hoàn thành đồ án: 1/6/2018

Đà Nẵng, ngày 1 tháng 6 năm 2018
Trưởng Bộ môn Kỹ thuật Cơ điện tử


Người hướng dẫn

iv


LỜI NÓI ĐẦU

Ngày nay với sự ảnh hưởng của cuộc cách mạng công nghiệp 4.0, ngành Cơ khí
nói chung và ngành Cơ điện tử nói riêng là một trong những ngành phát triển rất mạnh
với nhiều thay đổi về kỹ thuật công nghệ cũng như về chất lượng. Để đạt được điều đó
đòi hỏi người cán bộ kỹ thuật ngoài trình độ chuyên môn của mình còn phải có một tư
duy sáng tạo, đi sâu nghiên cứu để tận dụng hết khả năng, nguồn lực của mình.
Qua thời gian học tại khoa Cơ khí – Trường Đại học Bách khoa, dưới sự tận
tình hướng dẫn, giúp đỡ của các thầy, cô giáo cũng như sự nỗ lực của bản thân, chúng
em đã tích luỹ một số kiến thức như là hành trang để trở thành những kỹ sư tương lai.
Thước đo những kiến thức ấy chính là đồ án tốt nghiệp. Đó thực sự là thách thức lớn
đối với sinh viên chúng em khi đây là lần đầu tham gia, giải quyết một khối lượng
công việc lớn như thế này.
Công việc thực hiện đồ án tốt nghiệp gặp vất nhiều khó khăn, nhiều vấn đề nan
giải. Tuy nhiên được sự giúp đỡ và hướng dẫn tận tình của thầy Võ Như Thành cũng
như các thầy cô giáo khác đã giúp chúng em hoàn thành đồ án này. Nhưng với kiến
thức hạn hẹp cũng như chưa có kinh nghiệm trong tính toán, thi công thực tế nên khó
có thể tránh được những sai sót. Chúng em kính mong tiếp tục được sự chỉ bảo của các
thầy, cô để em hoàn thiện kiến thức hơn nữa.
Cuối cùng, em xin chân thành cảm ơn các thầy, cô giáo trong khoa Cơ khí –
Trường Đại học Bách khoa – Đại học Đà Nẵng, đặc biệt là thầy Võ Như Thành cũng
như các bạn cùng gia đình đã động viên và giúp đỡ chúng em trong suốt quá trình thực
hiện đồ án này.


Đà Nẵng, ngày 1 tháng 6 năm 2018
Sinh viên

Trần Lê Thanh Khoa

v

Trần Quốc Hoàng


CAM ĐOAN

Kính gửi khoa Cơ khí - Trường đại học Bách khoa - Đại học Đà Nẵng
Chúng em xin cam đoan đồ án tuân thủ tốt các quy định về liêm chính học thuật:


Không bịa đặt, đưa ra các thông tin sai lệch so với nguồn trích dẫn;



Không ngụy tạo số liệu trong quá trình khảo sát, thí nghiệm, thực hành, thực tập
hoặc hoạt động học thuật khác;



Không sử dụng các hình thức gian dối trong việc trình bày, thể hiện các hoạt
động học thuật hoặc kết quả từ quá trình học thuật của mình;




Không đạo văn, sử dụng từ ngữ, cách diễn đạt của người khác như thể là của
mình, trình bày, sao chép, dịch đoạn, hoặc nêu ý tưởng của người khác mà
không có trích dẫn.



Không tự đạo văn, sử dụng lại thông tin nghiên cứu của mình mà không có trích
dẫn hoặc phân mảnh thông tin về kết quả nghiên cứu của mình để công bố trên
nhiều ấn phẩm

Sinh viên thực hiện

Trần Lê Thanh Khoa

vi

Trần Quốc Hoàng


MỤC LỤC

TÓM TẮT ĐỒ ÁN TỐT NGHIỆP .............................................................................i
LỜI NÓI ĐẦU .......................................................................................................... v
CAM ĐOAN ............................................................................................................ vi
DANH MỤC BẢNG BIỂU ....................................................................................... x
DANH MỤC HÌNH VẼ ........................................................................................... xi
LỜI MỞ ĐẦU ........................................................................................................... 1
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI ............................................................... 2
1.1


Xu hướng phát triển của robot hiện đại ...................................................... 2

1.2 Những vấn đề của robot di động ..................................................................... 2
1.3

Mục tiêu đồ án và phương pháp thực hiện .................................................. 3

CHƯƠNG 2: HỆ ĐIỀU HÀNH ROBOT ROS....................................................... 4
2.1 Giới thiệu hệ điều hành robot ROS ................................................................ 4
2.2 Tổng quan về cách thức hoạt động của ROS .................................................. 4
2.3 Các khái niệm quan trọng trong ROS ............................................................ 5
2.3.1 Thuật ngữ ROS ...................................................................................... 5
2.3.2 Chủ đề .................................................................................................... 8
2.3.3 Dịch vụ ................................................................................................... 9
2.3.4 Truyền thông trong ROS ...................................................................... 10
2.4 Công cụ trực quan 3D (RViz)........................................................................ 11
CHƯƠNG 3: TÍNH TOÁN THIẾT KẾ PHẦN CƠ KHÍ .................................... 13
3.1 Cấu tạo của robot .......................................................................................... 13
3.2 Phương án chọn cơ cấu chuyển động robot [1] ............................................ 14
3.2.1 Phương án 1: Robot chuyển động đa hướng loại 4 bánh omni. ............. 14
3.2.2 Phương án 2: Robot chuyển động đa hướng loại 3 bánh omni. ............. 15
3.2.3 Phương án 3: Robot loại 2 bánh vi sai chuyển động độc lập ................. 16

vii


3.3 Tính toán chọn động cơ [2]............................................................................ 16
CHƯƠNG 4: TÍNH TOÁN, THIẾT KẾ MẠCH ĐIỆN ĐIỀU KHIỂN .............. 19
4.1 Sơ đồ khối mạch điều khiển .......................................................................... 19
4.2 Tìm hiểu cảm biến Kinect ............................................................................. 19

4.2.1 Giới thiệu chung ................................................................................... 19
4.2.2 Những thành phần chính của Kinect ..................................................... 20
4.2.3 Tính toán độ sâu ................................................................................... 21
4.2.4 Một số đặc tính ..................................................................................... 25
4.3 Động cơ và giải thuật PID vị trí .................................................................... 26
4.3.1 Động cơ Servo DC ............................................................................... 26
4.3.2 Giải thuật PID vị trí [9] ........................................................................ 31
4.4 Các linh kiện điện tử...................................................................................... 32
4.4.1Mạch hạ áp LM2596 ............................................................................. 32
4.4.2 Arduino Motor Shield L293D............................................................... 33
4.4.3 Arduino Mega 2560.............................................................................. 34
CHƯƠNG 5: THIẾT KẾ CHƯƠNG TRÌNH ĐIỀU KHIỂN .............................. 36
5.1 Nội dung chương trình điều khiển ................................................................ 36
5.1.1 Tổng quan toàn hệ thống ...................................................................... 36
5.1.2 Hệ thống robot ..................................................................................... 37
5.2 Điều hướng ..................................................................................................... 38
5.2.1 Điều hướng của robot di động .............................................................. 38
5.2.2 Bản đồ .................................................................................................. 39
5.2.3 Vị trí của robot ..................................................................................... 39
5.2.4 Cảm biến .............................................................................................. 40
5.2.5 Tính toán đường dẫn và lái xe .............................................................. 40
5.3 SLAM. ............................................................................................................ 40
5.3.1 Phần cứng cần thiết của robot để SLAM............................................... 40
5.3.2 Di chuyển ............................................................................................. 40
5.3.3 Đo hình học .......................................................................................... 40
viii


5.3.4 Cảm biến đo khoảng cách ..................................................................... 40
5.4 Giải thuật chương trình cho máy tính xử lý ................................................. 41

KẾT LUẬN ............................................................................................................ 43
TÀI LIỆU THAM KHẢO ..................................................................................... 44
PHỤ LỤC 1 .............................................................................................................. 1
PHỤ LỤC 2 ............................................................................................................ 16

ix


DANH MỤC BẢNG BIỂU
Bảng 3.1 Các thông số kỹ thuật của robot ................................................................ 16
Bảng 3.2 Bảng hệ số ma sát ứng với các loại vật liệu ............................................... 17
Bảng 4.2 Công suất tiêu thụ trên Kinect [4] ............................................................. 26
Bảng 4.3 Ảnh hưởng của các thành phần 𝐾𝑝, 𝐾𝑖, 𝐾𝑑 đối với hệ kín ........................ 32

x


DANH MỤC HÌNH VẼ
Hình 2.1 Logo hệ điều hành ROS .............................................................................. 4
Hình 2.2 Các nút giao tiếp với nhau theo kiểu chủ đề ................................................ 5
Hinh 2.3 Chủ đề......................................................................................................... 9
Hình 2.4 Dịch vụ ....................................................................................................... 9
Hình 2.5 Giao tiếp giữa các nút ROS sử dụng topics................................................ 10
Hình 2.6 Đang mở vào giao diện Rviz ..................................................................... 11
Hình 2.7 Điều hướng sử dụng cảm biến kinect ........................................................ 12
Hình 2.8 Đo khoảng cách sử dụng kinect ................................................................. 12
Hình 3.1 Cấu tạo của robot ...................................................................................... 13
Hình 3.2 Sơ đồ robot 4 bánh omni ........................................................................... 14
Hình 3.3 Sơ đồ robot 3 bánh omni ........................................................................... 15
Hình 3.4 Sơ đồ chuyển động 2 bánh vi sai ............................................................... 16

Hình 4.1 Sơ đồ khối mạch điều khiển ...................................................................... 19
Hình 4.2 Cảm biến Kinect ....................................................................................... 20
Hình 4.4 Động cơ trong Kinect ................................................................................ 21
Hình 4.5 Cấu tạo bên trong Kinect ........................................................................... 21
Hình 4.6 Quá trình thu về bản đồ độ sâu ảnh ........................................................... 22
Hình 4.7 Mẫu hình được chiếu bởi projector và chụp lại bằng IR camera ................ 23
Hình 4.8 Tính toán khảng cách tới một điểm chiếu từ Projector [7] ......................... 23
Hình 4.9 Kinect adapter ........................................................................................... 26
Hình 4.10 Động cơ Servo DC ................................................................................. 26
Hình 4.11 Điều chỉnh độ rộng xung PWM ............................................................... 27
Hình 4.12 Dạng sóng áp và dòng trên động cơ......................................................... 28
Hình 4.13 Optical Encoder ...................................................................................... 29
Hình 4.14 Hai kênh A và B lệch pha trong encoder ................................................. 29
Hình 4.15 Encoder đi kèm động cơ Servo DC ......................................................... 30
Hình 4.16 PID vòng kín ........................................................................................... 31
Hình 4.19 LM2506 .................................................................................................. 33
xi


Hình 4.20 Arduino Motor Shield L293D ................................................................. 34
Hình 4.22 Sơ đồ các linh kiện của của Arduino Mega 2560 ..................................... 35
Hình 5.1 Tổng quan toàn hệ thống. .......................................................................... 36
Hình 5.2 Giao thức SSH .......................................................................................... 37
Hình 5.3 Hệ thống robot .......................................................................................... 37
Hình 5.4 Điều hướng ............................................................................................... 38
Hình 5.5 Sơ đồ các nodes, topics của robot .............................................................. 41
Hình 5.6 Kết quả quét bản đồ .................................................................................. 43

xii



Thiết kế và chế tạo robot tự động điều hướng môi trường trong nhà

LỜI MỞ ĐẦU
Hiện nay khoa học kĩ thuật đang được phát triển mạnh mẽ, được ứng dụng vào
nhiều ngành nghề, lĩnh vực, đặc biệt là trong công nghiệp. Các loại máy móc, thiết bị
tự động hiện đại đang dần được đưa vào để thay thế cho việc lao động thuần chân tay
trong công nghiệp. Theo bước tiến đó, nhóm chúng em đã chọn đề tài “Thiết kế và chế
tạo robot tự động điều hướng môi trường trong nhà” với ý tưởng có thể ứng dụng
trong việc phục vụ nhà hàng, vận chuyển hàng hóa.
Mục tiêu của đồ án là thiết kế và chế tạo một mô hình robot có khả năng tạo
bản đồ 2D và điều hướng robot tự động trong bản đồ đó. Thuyết minh được cấu trúc
như sau: chương 1 giới thiệu tổng quan về đề tài; chương 2 giới thiệu hệ điều hành
robot ROS; chương 3 tính toán và thiết kế phần cơ khí; chương 4 tính toán thiết kế
mạch điện điều khiển; chương 5 thiết kế chương trình điều khiển.

SVTH: Trần Lê Thanh Khoa
Trần Quốc Hoàng

GVHD: TS. Võ Như Thành
1


Thiết kế và chế tạo robot tự động điều hướng môi trường trong nhà

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI

1.1 Xu hướng phát triển của robot hiện đại
Theo dự đoá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.
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, ngoà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 nhiều trong thời gian qua là: tay
máy robot (Robot Manipulators), 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.
1.2 Những vấn đề của robot di động
Robot di động được định nghĩa là một loại xe robot có khả năng tự di chuyển,
tự vận động (có thể lập trình lại được) dưới sự điều khiển tự động để thực hiện tốt
những công việc được giao. Môi trường hoạt động của robot có thể là đất, nước, không
khí, không gian vũ trụ hay là sự tổ hợp của các môi trường trên. Bề mặt địa hình robot
di chuyển có thể là bằng phẳng hoặc thay đổi lồi lõm. Những ứng dụng thực tế đòi hỏi
những robot di động có tính tự động cao và những kỹ thuật hiện đại, bao gồm sự đa
SVTH: Trần Lê Thanh Khoa
Trần Quốc Hoàng


GVHD: TS. Võ Như Thành
2


Thiết kế và chế tạo robot tự động điều hướng môi trường trong nhà

dạng của những cảm biến rẻ mà đáng tin cậy và tính toán điện tử công suất làm tăng
tính tự động hóa của robot di động. Tính tự động hóa có nghĩa là robot phải dựa vào
chính khả năng của nó để xuất ra những dữ liệu vận hành có ích từ bộ phận cảm biến
và tự nó đưa ra quyết định thích hợp. Một trong các yêu cầu cơ bản của robot tự động
thực thụ là khả năng định hướng tốt trong phạm vi môi trường chưa xác định và hình
dung ra một bản đồ định hướng. Bằng cách sử dụng những quan sát thích hợp từ môi
trường, kết hợp với bản đồ cùng lúc để định hướng cho robot đang là một yêu cầu cần
nghiên cứu cho robot di động. Việc đồng thời định vị và vẽ bản đồ cùng lúc là một
phương pháp chung có liên quan đến việc triển khai một hệ thống di động trong môi
trường chưa xác định. Đối với một robot di động tự động, định hướng là một công việc
để di chuyển một cách an toàn từ nơi này đến nơi khác. Việc định hướng gặp nhiều
khó khăn do nhiều vấn đề khá phức tạp. Vấn đề gây trở ngại chính là những hạn chế
của việc ước tính năng lượng, những khó khăn trong việc phát hiện và nhận biết đối
tượng, những khó khăn trong việc tránh xung đột với các đối tượng khác nhau, và
những khó khăn liên quan tới việc sử dụng thông tin cung cấp từ môi trường.
1.3 Mục tiêu đồ án và phương pháp thực hiện
• Mục tiêu đồ án:
Xây dựng mô hình mobile robot có khả năng quét và tạo bản đồ dưới dạng 2D
và tự định hướng về đích với tọa độ đích cho trước lúc bắt đầu khởi động. Ngoài khả
năng định hướng, robot phải tránh được các vật cản có trên quãng đường di chuyển.
Mục đích sâu xa của đề tài là phát triển một robot tự động thông minh, có thể được sử
dụng trong lĩnh vực vận chuyển hàng trong công nghiệp, phục vụ con người, giúp việc
như robot hướng dẫn du khách hoặc làm một số công việc đơn giản trong văn phòng

hoặc tại gia như mang café, hút bụi, lau nhà, …
• Phương pháp thực hiện:
Thiết kế mô hình một robot di động tự động, trong đó bao gồm phần gia công
cơ khí, mạch công suất, mạch vi điều khiển, đồng thời sử dụng hệ điều hành robot
ROS. Khối thị giác được chọn là thiết bị chơi game Kinect, thông qua xử lý từ máy
tính nó sẽ kết hợp với mạch vi điều khiển giúp robot có khả năng định hướng về đích
và tránh vật cản hoàn toàn tự động.

SVTH: Trần Lê Thanh Khoa
Trần Quốc Hoàng

GVHD: TS. Võ Như Thành
3


Thiết kế và chế tạo robot tự động điều hướng môi trường trong nhà

CHƯƠNG 2: HỆ ĐIỀU HÀNH ROBOT ROS

2.1 Giới thiệu hệ điều hành robot ROS
Hệ điều hành Robot (ROS) là phần mềm trung gian robot (tức là bộ sưu tập
các khung phần mềm để phát triển phần mềm robot). Mặc dù ROS không phải là
một hệ điều hành , nó cung cấp các dịch vụ được thiết kế cho cụm máy tính không
đồng nhất như trừu tượng hóa phần cứng , điều khiển thiết bị cấp thấp , thực hiện chức
năng thường được sử dụng, chuyển tin nhắn giữa các quy trình và quản lý gói. Chạy
các bộ quy trình dựa trên ROS được biểu diễn trong biểu đồ kiến trúc nơi quá trình xử
lý diễn ra trong các nút có thể nhận, đăng và dữ liệu cảm biến đa kênh, điều khiển,
trạng thái, lập kế hoạch, bộ truyền động và các thông điệp khác. Mặc dù tầm quan
trọng của khả năng phản ứng và độ trễ thấp trong điều khiển robot, bản thân
ROS không phải là hệ điều hành thời gian thực (RTOS). Tuy nhiên, có thể tích hợp

ROS với mã thời gian thực. Việc thiếu hỗ trợ cho các hệ thống thời gian thực đã được
giải quyết trong việc tạo ra ROS 2.0 , một phiên bản chính của API ROS sẽ tận dụng
các thư viện và công nghệ hiện đại cho lõi ROS chức năng và thêm hỗ trợ cho mã thời
gian thực và phần cứng nhúng .

Hình 2.1 Logo hệ điều hành ROS
2.2 Tổng quan về cách thức hoạt động của ROS
Trước khi chúng ta đi sâu hơn và bắt đầu làm việc với ROS, chúng ta cần xem
bức tranh lớn của hệ thống.
Nói chung, ROS bao gồm mã và các công cụ giúp mã dự án của bạn chạy và thực
hiện công việc được yêu cầu, bao gồm cả cơ sở hạ tầng để chạy nó, giống như các
thông điệp truyền giữa các quy trình.
SVTH: Trần Lê Thanh Khoa
Trần Quốc Hoàng

GVHD: TS. Võ Như Thành
4


Thiết kế và chế tạo robot tự động điều hướng môi trường trong nhà

ROS được thiết kế để trở thành một hệ thống kết hợp lỏng lẻo trong đó một quy
trình được gọi là nút (node) và mỗi nút phải chịu trách nhiệm cho một nhiệm vụ. Các
nút giao tiếp với nhau bằng cách sử dụng các thông điệp truyền qua các kênh logic
được gọi là các chủ đề (topic). Mỗi nút có thể gửi hoặc nhận dữ liệu từ nút khác bằng
mô hình Thuê bao xuất bản/ Thuê bao đăng kí. Chúng ta sẽ thấy điều đó trong hành
động sau.
Mục tiêu chính của ROS là hỗ trợ tái sử dụng mã trong nghiên cứu và phát triển
robot để bạn có thể tìm thấy một hệ thống gói tích hợp. Một lần nữa, hãy nhớ rằng
ROS không phải là hệ điều hành, thư viện hoặc RTOS. Đó là một khung sử dụng khái

niệm hệ điều hành.

Hình 2.2 Các nút giao tiếp với nhau theo kiểu chủ đề
2.3 Các khái niệm quan trọng trong ROS
2.3.1 Thuật ngữ ROS
• Nodes: Các nút là các quá trình thực hiện tính toán. ROS được thiết kế để được
mô-đun ở quy mô hạt mịn; một hệ thống điều khiển robot thường bao gồm nhiều nút.
Ví dụ: một nút điều khiển công cụ tìm phạm vi laser, một nút điều khiển động cơ bánh
xe, một nút thực hiện nội địa hóa, một nút thực hiện quy hoạch đường dẫn, một nút
cung cấp chế độ xem đồ họa của hệ thống, v.v. Một nút ROS được viết với việc sử
dụng thư viện máy khách ROS, chẳng hạn như roscpp hoặc rospy.
• Master: ROS Master cung cấp đăng ký tên và tra cứu phần còn lại của Biểu đồ
tính toán. Không có Master, các nút sẽ không thể tìm thấy nhau, trao đổi tin nhắn hoặc
gọi dịch vụ.
• Messages: Các nút giao tiếp với nhau bằng cách gửi tin nhắn. Một thông điệp
chỉ đơn giản là một cấu trúc dữ liệu, bao gồm các trường được gõ. Các kiểu nguyên
thủy chuẩn (số nguyên, dấu phẩy động, boolean, v.v.) được hỗ trợ, cũng như các mảng
của kiểu nguyên thủy. Các thông điệp có thể bao gồm các cấu trúc và mảng được lồng
tùy ý (giống như các cấu trúc C).

SVTH: Trần Lê Thanh Khoa
Trần Quốc Hoàng

GVHD: TS. Võ Như Thành
5


Thiết kế và chế tạo robot tự động điều hướng môi trường trong nhà

• Topic: Thực sự giống như một chủ đề trong một cuộc trò chuyện. Nút thuê bao

xuất bản trước tiên đăng ký chủ đề của nó với Master và sau đó bắt đầu xuất bản các
thông báo về một chủ đề. Các nút thuê bao đăng kí muốn nhận thông tin yêu cầu chủ
đề của nút thuê bao xuất bản tương ứng với tên của chủ đề đã đăng ký trong bản gốc.
Dựa trên thông tin này, nút thuê bao đăng kí kết nối trực tiếp với nút thuê bao xuất bản
để trao đổi tin nhắn dưới dạng chủ đề
• Service: là giao tiếp hai chiều đồng bộ giữa máy khách dịch vụ yêu cầu dịch vụ
liên quan đến một nhiệm vụ cụ thể và máy chủ dịch vụ chịu trách nhiệm trả lời các yêu
cầu.
• Service Server: là một máy chủ trong giao tiếp tin nhắn dịch vụ nhận yêu cầu
làm đầu vào và truyền phản hồi dưới dạng đầu ra. Cả hai yêu cầu và phản hồi đều ở
dạng tin nhắn. Theo yêu cầu dịch vụ, máy chủ thực hiện dịch vụ được chỉ định và cung
cấp kết quả cho khách hàng dịch vụ dưới dạng phản hồi. Máy chủ dịch vụ được triển
khai trong nút nhận và thực hiện một yêu cầu đã cho.
• Publish và Thuê bao xuât bản: Thuật ngữ “publish” là viết tắt của hành động
truyền các thông điệp tương đối tương ứng với chủ đề. Nút Thuê bao xuât bản đăng ký
thông tin và chủ đề của riêng mình với Master và gửi tin nhắn đến các nút thuê bao
đăng kí được kết nối quan tâm đến cùng một chủ đề. Thuê bao xuât bản được khai báo
trong nút và có thể được khai báo nhiều lần trong một nút
• Subscribe và subcriber: Thuật ngữ “subscribe”, là viết tắt của hành động nhận
tin nhắn tương đối tương ứng với chủ đề. Nút Thuê bao đăng kí đăng ký thông tin và
chủ đề riêng của mình với Master và nhận thông tin Thuê bao xuât bản xuất bản chủ
đề tương đối từ Master. Dựa trên thông tin nhà xuất bản nhận được, nút thuê bao đăng
kí trực tiếp yêu cầu kết nối với nút Thuê bao xuât bản và nhận tin nhắn từ nút Thuê bao
xuât bản được kết nối. Một thuê bao đăng kí được khai báo trong nút và có thể được
khai báo nhiều lần trong một nút. Giao tiếp chủ đề là giao tiếp không đồng bộ dựa trên
Thuê bao xuât bản và Thuê bao đăng kí và rất hữu ích khi chuyển một số dữ liệu nhất
định. Do chủ đề liên tục truyền và nhận luồng tin nhắn sau khi được kết nối, nên nó
thường được sử dụng cho các cảm biến phải truyền dữ liệu định kỳ. Mặt khác, cần có
sự giao tiếp đồng bộ với yêu cầu và phản hồi được sử dụng. Do đó, ROS cung cấp một
phương thức đồng bộ hóa tin nhắn gọi là “dịch vụ”. Một dịch vụ bao gồm máy chủ

dịch vụ đáp ứng các yêu cầu và dịch vụ khách yêu cầu đáp ứng. Không giống như chủ
đề, dịch vụ là tin nhắn một lần giao tiếp. Khi yêu cầu và phản hồi của dịch vụ được
hoàn thành, kết nối giữa hai nút bị ngắt kết nối.

SVTH: Trần Lê Thanh Khoa
Trần Quốc Hoàng

GVHD: TS. Võ Như Thành
6


Thiết kế và chế tạo robot tự động điều hướng môi trường trong nhà

• Parameter: Tham số trong ROS đề cập đến các tham số được sử dụng trong
nút. Hãy nghĩ về nó như các tệp cấu hình * .ini trong chương trình Windows. Giá trị
mặc định được đặt trong tham số và có thể được đọc hoặc ghi nếu cần. Đặc biệt, nó rất
hữu ích khi các giá trị được cấu hình có thể được sửa đổi trong thời gian thực. Ví dụ:
bạn có thể chỉ định các cài đặt như số cổng USB, thông số hiệu chỉnh máy ảnh, giá trị
tối đa và tối thiểu của tốc độ động cơ.
• Parameter Server: Khi các tham số được gọi trong gói, chúng được đăng ký
với máy chủ tham số được tải trong bản gốc.
• Catkin: đề cập đến hệ thống xây dựng của ROS. Về cơ bản, hệ thống xây
dựng sử dụng CMake (Tạo nền tảng chéo) và môi trường xây dựng được mô tả trong
tệp “CMakeLists.txt”, trong thư mục gói. CMake đã được sửa đổi trong ROS để tạo ra
một hệ thống xây dựng dành riêng cho ROS. Catkin bắt đầu thử nghiệm alpha từ ROS
Fuerte và các gói cốt lõi bắt đầu chuyển sang Catkin trong phiên bản ROS Groovy.
Catkin đã được áp dụng cho hầu hết các gói trong phiên bản ROS Hydro. Hệ thống
xây dựng Catkin giúp dễ dàng sử dụng các bản dựng, quản lý gói và phụ thuộc liên
quan đến ROS giữa các gói. Nếu bạn định sử dụng ROS vào thời điểm này, bạn nên sử
dụng Catkin thay vì xây dựng ROS (rosbuild).

• roscore: là lệnh chạy chủ ROS. Nếu nhiều máy tính trong cùng một mạng, nó
có thể được chạy từ một máy tính khác trong mạng. Tuy nhiên, ngoại trừ trường hợp
đặc biệt hỗ trợ nhiều roscore, chỉ nên chạy một roscore trong mạng. Khi ROS master
đang chạy, địa chỉ URI và số cổng được gán cho các biến môi trường
ROS_MASTER_URI được sử dụng. Nếu người dùng chưa đặt biến môi trường, địa
chỉ IP cục bộ hiện tại được sử dụng làm địa chỉ URI và số cổng 11311 được sử dụng là
số cổng mặc định cho bản gốc.
• rosrun: là lệnh thực thi cơ bản của ROS. Nó được sử dụng để chạy một nút
trong gói. Nút sử dụng biến môi trường ROS_HOSTNAME được lưu trữ trong máy
tính mà nút đang chạy dưới dạng địa chỉ URI và cổng được đặt thành một giá trị duy
nhất tùy ý.
• roslaunch: Trong khi rosrun là một lệnh để thực thi một nút, ngược lại,
roslaunch thực thi nhiều nút. Đó là một lệnh ROS chuyên thực hiện nút với các chức
năng bổ sung như thay đổi tham số gói hoặc tên nút, định cấu hình không gian tên của
các nút, đặt ROS_ ROOT và ROS_PACKAGE_PATH và thay đổi biến môi trường
khi thực hiện các nút. roslaunch sử dụng tệp ‘* .launch, để xác định các nút sẽ được
thực thi. Tệp này dựa trên XML (Ngôn ngữ đánh dấu mở rộng) và cung cấp nhiều tùy
chọn dưới dạng thẻ XML.
SVTH: Trần Lê Thanh Khoa
Trần Quốc Hoàng

GVHD: TS. Võ Như Thành
7


Thiết kế và chế tạo robot tự động điều hướng môi trường trong nhà

XML: (Ngôn ngữ đánh dấu mở rộng) là ngôn ngữ đánh dấu rộng và linh hoạt
mà W3C khuyến nghị để tạo các ngôn ngữ đánh dấu mục đích đặc biệt khác. XML sử
dụng các thẻ để mô tả cấu trúc dữ liệu. Trong ROS, nó được sử dụng trong các thành



phần khác nhau, chẳng hạn như * .launch, * .urdf và pack.xml.
• TCP/IP: TCP là viết tắt của Giao thức điều khiển truyền dẫn. Nó thường được
gọi là TCP / IP. Lớp giao thức Internet đảm bảo truyền dữ liệu bằng TCP, dựa trên lớp
IP (Giao thức Internet) trong Lớp giao thức Internet. Nó đảm bảo việc truyền tuần tự
và tiếp nhận dữ liệu.TCPROS là định dạng tin nhắn dựa trên TCP / IP và UDPROS là
định dạng tin nhắn dựa trên UDP. TCPROS được sử dụng thường xuyên hơn trong
ROS.
Package: là đơn vị cơ bản của ROS. Ứng dụng ROS được phát triển trên cơ
sở gói và gói chứa tệp cấu hình để khởi chạy các gói hoặc nút khác. Gói này cũng chứa


tất cả các tệp cần thiết để chạy gói, bao gồm các thư viện phụ thuộc ROS để chạy các
quy trình, bộ dữ liệu và tệp cấu hình khác nhau. Số lượng gói chính thức là khoảng
2.500 cho ROS Indigo kể từ tháng 7 năm 2017 và khoảng 1.600 gói cho ROS Kinetic.
Ngoài ra, mặc dù có thể có một số dự phòng, nhưng có khoảng 4.600 gói được phát
triển và phát hành bởi người dùng.
• Metapackage: là một tập hợp các gói có một mục đích chung. Ví dụ:
Navigation chứa 10 gói bao gồm AMCL, DWA, EKF và map_server.
CmakeLists.txt: Catkin, là hệ thống xây dựng của ROS, sử dụng CMake theo
mặc định. Môi trường xây dựng được chỉ định trong tệp “CMakeLists.txt” trong mỗi


gói
2.3.2 Chủ đề
Truyền thông về chủ đề sử dụng cùng một loại thông báo cho cả nhà xuất bản và
người đăng ký như trong hình 2.4. Nút thuê bao nhận thông tin của nút nhà xuất bản
tương ứng với tên chủ đề giống hệt được đăng ký trong bản gốc. Dựa trên thông tin
này, nút thuê bao kết nối trực tiếp với nút nhà xuất bản để nhận tin nhắn. Ví dụ: nếu vị

trí hiện tại của robot được tạo ở dạng thông tin odometry bằng cách tính các giá trị bộ
mã hóa của cả hai bánh của robot di động, thông tin hình học không đồng bộ có thể
được truyền liên tục trong luồng không theo hướng sử dụng thông điệp chủ đề (x, y ,
i). Vì các chủ đề là đơn hướng và vẫn được kết nối để liên tục gửi hoặc nhận tin nhắn,
nên nó phù hợp với dữ liệu cảm biến yêu cầu xuất bản tin theo định kỳ. Ngoài ra,
nhiều người đăng ký có thể nhận được tin nhắn từ nhà xuất bản và ngược lại. Nhiều
nhà xuất bản và người đăng ký kết nối cũng có sẵn.

SVTH: Trần Lê Thanh Khoa
Trần Quốc Hoàng

GVHD: TS. Võ Như Thành
8


Thiết kế và chế tạo robot tự động điều hướng môi trường trong nhà

Hinh 2.3 Chủ đề
2.3.3 Dịch vụ
Giao tiếp trên dịch vụ là giao tiếp đồng bộ hai chiều giữa máy khách dịch vụ
yêu cầu một dịch vụ và máy chủ dịch vụ đáp ứng yêu cầu như trong hình 2.5. Phương
pháp đã đề cập xuất bản và đăng ký của chủ đề là một phương pháp không đồng bộ,
thuận lợi cho việc truyền dữ liệu định kỳ. Mặt khác, cần có sự giao tiếp đồng bộ sử
dụng yêu cầu và phản hồi. Theo đó, ROS cung cấp một phương thức liên lạc tin nhắn
được đồng bộ hóa gọi là dịch vụ. Một dịch vụ bao gồm một máy chủ dịch vụ chỉ phản
hồi khi có yêu cầu và máy khách dịch vụ có thể gửi yêu cầu cũng như nhận phản hồi.
Không giống như chủ đề, dịch vụ là liên lạc tin nhắn một lần. Do đó, khi yêu cầu và
phản hồi của dịch vụ được hoàn thành, kết nối giữa hai nút sẽ bị ngắt kết nối. Một dịch
vụ thường được sử dụng để ra lệnh cho robot thực hiện một hành động hoặc nút cụ thể
để thực hiện các sự kiện nhất định với một điều kiện cụ thể. Dịch vụ không duy trì kết

nối, vì vậy rất hữu ích để giảm tải mạng bằng cách thay thế chủ đề. Ví dụ, nếu máy
khách yêu cầu máy chủ trong thời gian hiện tại như trong hình 2.5 , máy chủ sẽ kiểm
tra thời gian và trả lời máy khách, và kết nối bị chấm dứt.

Hình 2.4 Dịch vụ
SVTH: Trần Lê Thanh Khoa
Trần Quốc Hoàng

GVHD: TS. Võ Như Thành
9


Thiết kế và chế tạo robot tự động điều hướng môi trường trong nhà

2.3.4 Truyền thông trong ROS
Hãy xem cách hai nút giao tiếp với nhau bằng các chủ đề ROS. Sơ đồ sau cho
thấy nó xảy ra như thế nào

Hình 2.5 Giao tiếp giữa các nút ROS sử dụng topics
Bạn có thể thấy, có 2 nút là talker và listener. Nút talker xuất bản một tin nhắn
kiểu string được gọi là “Hello” vào một chủ để /talk, và nút listener đăng kí chủ đề
này. Hãy xem điều gì xảy ra ở mỗi giai đoạn, được đánh dấu (1), (2) và (3):
(1)
Trước khi chạy bất kì nút nào trong ROS, chúng ta nên khởi động ROS
Master. Sau khi đã được bắt đầu, nó sẽ chờ các nút. Khi nút talker (thuê bao xuât bản)
bắt đầu chạy, nó sẽ kết nối với ROS đầu tiên và trao đổi chi tiết topic xuất bản với
Master. Điều này bao gồm tên chủ đề, loại thông báo và URI nút xuất bản. URI của
bản gốc là một giá trị toàn cục và tất cả các nút có thể kết nối với nó. Các bậc thầy duy
trì các bảng của nhà xuất bản kết nối với nó. Bất cứ khi nào chi tiết của nhà xuất bản
thay đổi, bảng sẽ tự động cập nhật.

(2)

Khi chúng ta bắt đầu nút listener (Thuê bao đăng kí), nó sẽ kết nối với

master và trao đổi các chi tiết của nút,chẳng hạn như topic sẽ được đăng kí, loại tin
nhắn của nó và URI nút. Master cũng duy trì một bảng các Thuê bao đăng kí, tương tự
như thuê bao xuât bản.
(3)
Bất cứ khi nào có một thuê bao và nhà xuất bản cho cùng một chủ đề,
nút chính sẽ trao đổi URI của nhà xuất bản với thuê bao. Điều này sẽ giúp cả hai nút
kết nối với nhau và trao đổi dữ liệu. Sau khi họ kết nối với nhau, không có vai trò nào
SVTH: Trần Lê Thanh Khoa
Trần Quốc Hoàng

GVHD: TS. Võ Như Thành
10


Thiết kế và chế tạo robot tự động điều hướng môi trường trong nhà

cho chủ. Dữ liệu không chảy qua chủ; thay vào đó, các nút được liên kết và trao đổi tin
nhắn.
2.4 Công cụ trực quan 3D (RViz)
RViz là công cụ trực quan 3D của ROS. Mục đích chính là hiển thị các thông
báo ROS ở chế độ 3D, cho phép chúng ta xác minh trực quan dữ liệu. Ví dụ: nó có thể
trực quan hóa khoảng cách từ cảm biến khoảng cách Laser (LDS) đến vật cản, Dữ liệu
đám mây điểm (PCD) của cảm biến khoảng cách 3D như RealSense, Kinect hoặc
Xtion, giá trị hình ảnh thu được từ một máy ảnh, và nhiều hơn nữa mà không phải phát
triển phần mềm riêng biệt.


Hình 2.6 Đang mở vào giao diện Rviz
Nó cũng hỗ trợ trực quan hóa khác nhau bằng cách sử dụng đa giác do người
dùng chỉ định và đánh dấu tương tác cho phép người dùng thực hiện các chuyển động
tương tác với các lệnh và dữ liệu nhận được từ nút người dùng. Ngoài ra, ROS mô tả
các robot ở dịnh dạng mô tả Robot hợp nhất (URDF) , được thể hiện dưới dạng mô
hình 3D mà mỗi mô hình có thể được di chuyển hoặc vận hành theo mức độ tự do
tương ứng của chúng, do đó chúng có thể được sử dụng để mô phỏng hoặc điều khiển.
Mô hình robot di động có thể được hiển thị và dữ liệu khoảng cách nhận được từ cảm
biến khoảng cách Laser (LDS) có thể được sử dụng để điều hướng . RViz cũng có thể
hiển thị hình ảnh từ camera gắn trên robot như được hiển thị ở góc dưới bên trái của
hình 2.8. Ngoài ra, nó có thể nhận dữ liệu từ nhiều cảm biến khác nhau như Kinect,
LDS, RealSense và trực quan hóa chúng dưới dạng 3D.

SVTH: Trần Lê Thanh Khoa
Trần Quốc Hoàng

GVHD: TS. Võ Như Thành
11


Thiết kế và chế tạo robot tự động điều hướng môi trường trong nhà

Hình 2.7 Điều hướng sử dụng cảm biến kinect

Hình 2.8 Đo khoảng cách sử dụng kinect

SVTH: Trần Lê Thanh Khoa
Trần Quốc Hoàng

GVHD: TS. Võ Như Thành

12


×