Dựa trên các nghiên cứu cùng với các hoạt động thực tiễn hiệnnay, chúng ta có thể nhận ra công nghệ quét 2D và 3D đang phổ biến hơn bao giờ hết, nó được ứng dụng trên mọi lĩnh vực, trong
Trang 1BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
SVTH2: Nguyễn Đức Lâm MSSV2: 14141159
Trang 2BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
SVTH2: Nguyễn Đức Lâm MSSV2: 14141159
Trang 3Tp Hồ Chí Minh - 08/2020
Trang 4TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH CỘNG HÕA XÃ HỘI CHỦ NGHĨA VIỆT NAM KHOA ĐIỆN-ĐIỆN TỬ ĐỘC LẬP - TỰ DO - HẠNH PHÖC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
o0o Tp HCM, ngày 4 tháng 8 năm 2020
LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP
Họ tên sinh viên 1: Đào Nguyễn Du Lớp: 113141DT1C MSSV: 13141035
Họ tên sinh viên 2: Nguyễn Đức Lâm Lớp: 14141DT1A MSSV: 14141159
Tên đề tài: THIẾT KẾ VÀ THI CÔNG ROBOT THU THẬP ẢNH VÀ VẼ BẢN ĐỒ MÔI TRƯỜNG TRONG NHÀ DÙNG CAMERA 3D
GVHD
Tuần 1 Gặp GVHD để nghe phổ biến yêu cầu làm đồ án,
tiến hành chọn đề tài, GVHD tiến hành xét duyệt đề(26/04 - 03/05) tài.
Tuần 2 Viết đề cương tóm tắt nội dung đồ án.
Tuần 14 Hoàn thiện báo cáo và gởi cho GVHD để xem xét
(27/7- 02/08) góp ý lần cuối trước khi in và báo cáo
Tuần 15 Nộp quyển báo cáo và báo cáo đề tài, thiết kế Slide
(03/08 - 09/08) báo cáo
GV HƯỚNG DẪN(Ký và ghi rõ họ và tên)
i
Trang 5TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH CỘNG HÕA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Hệ đào tạo: Đại học chính quy Mã hệ: 1
I TÊN ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG MÔ HÌNH ROBOT THU THẬP
ẢNH VÀ VẼ BẢN ĐỒ MÔI TRƯỜNG TRONG NHÀ DÙNG CAMERA 3D
II NHIỆM VỤ
1 Các số liệu ban đầu:
- Ngôn ngữ sử dụng: Python, thư viện OpenCV, Giáo trình Xử lý ảnh
- Các tài liệu về Arduino và thư viện Arduino
2 Nội dung thực hiện:
- Tìm hiểu về công nghệ quét 3D
- Tìm hiểu về camera 3D và các Module liên quan
- Xây dựng chương trình điều khiển Robot
- Xây dựng chương trình trên Python
- Hoàn thành mô hình
- Đánh giá kết quả thực hiện
Trang 6IV NGÀY HOÀN THÀNH NHIỆM VỤ: 03/08/2020
V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: ThS Ngô Bá Việt
CÁN BỘ HƯỚNG DẪN BM ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
iii
Trang 7LỜI CAM ĐOAN
Đề tài này là do nhóm tự thực hiện dựa vào một số tài liệu có sẵn dưới sựhướng dẫn của Th.S Ngô Bá Việt và không sao chép từ tài liệu hay công trình đã cótrước đó Nếu phát hiện gian dối nhóm sẽ hoàn toàn chịu trách nhiệm
Người thực hiện đề tài
Đào Nguyễn Du – Nguyễn Đức Lâm
Trang 8Tiếp theo chúng tôi xin cảm ơn tới các Anh, Chị khóa trên cùng các bạn sinhviên đã tạo điều kiện giúp đỡ, từ những tài liệu liên quan tới đề tài cho tới những kinhnghiệm sống thực tế Nhờ họ mà chúng tôi có thể phát triển được đề tài.
Cuối cùng là lời cảm ơn đến Cha, Mẹ nếu không có hai đấng sinh thành thìngày hôm nay cũng không có chúng tôi hiện diện ở đâu để thực hiện những việc mìnhmuốn, học đã tạo điều kiện để giúp con của mình hướng tới một tương lai tốt đẹp hơn
Một lần nữa chúng tôi xin gửi lời cảm ơn chân thành đến tất cả!
Người thực hiện đề tài
Đào Nguyễn Du – Nguyễn Đức Lâm
v
Trang 9MỤC LỤC
LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP ii
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP ii
LỜI CAM ĐOAN iv
LỜI CẢM ƠN v
MỤC LỤC vii
LIỆT KÊ HÌNH VẼ ixx
LIỆT KÊ BẢNG xii
BẢNG LIỆT KÊ TỪ VIẾT TẮT xiii
TÓM TẮT xiii
Chương 1 TỔNG QUAN 1
1.1 ĐẶT VẤN ĐỀ 1
1.2 MỤC TIÊU 1
1.3 NỘI DUNG NGHIÊN CỨU 2
1.4 GIỚI HẠN 2
1.5 BỐ CỤC 2
Chương 2 CƠ SỞ LÝ THUYẾT 4
2.1 CÁC PHƯƠNG PHÁP XÂY DỰNG BẢN ĐỒ 4
2.1.1 SLAM 4
2.1.2 3D Structured Light 5
2.1.3 Xây dựng bản đồ bằng phương pháp quét Laser 6
2.1.4 Xây dựng bản đồ bằng cách chụp ảnh từ nhiều vị trí khác nhau………….7
2.2 HỆ ĐIỀU HÀNH ROS 8
2.3 ẢNH 3D VÀ PHƯƠNG PHÁP HIỆU CHỈNH 11
2.3.1 Ảnh 3D 11
2.3.2 Phương pháp hiệu chỉnh 13
CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ 15
3.1 GIỚI THIỆU 15
3.2 SƠ ĐỒ KHỐI HỆ THỐNG 15
3.3 THIẾT KẾ HỆ THỐNG PHẦN CỨNG 16
Trang 103.3.2 Khối thu tín hiệu hình ảnh 16
3.3.3 Khối điều khiển 17
3.3.4 Khối giao tiếp không dây 19
3.3.5 Khối động lực 19
3.3.6 Khối nguồn 21
3.3.7 Sơ đồ nguyên lý 22
3.4 PHƯƠNG PHÁP XÂY DỰNG BẢN ĐỒ 3D MÔI TRƯỜNG TỪ CAMERA KINECT 23
3.4.1 Khối thu thập dữ liệu và tiền xử lý 24
3.4.2 Nhận dạng các cặp điểm tương đồng của ảnh 2D 25
3.4.3 Ghép các đám mây 3D 28
3.4.4 Xây dựng bản đồ 3D 38
Chương 4 THI CÔNG HỆ THỐNG 30
4.1 GIỚI THIỆU 30
4.2 THI CÔNG HỆ THỐNG 30
4.2.1 Các linh kiện, thiết bị cần thiết cho mô hình 30
4.2.2 Lắp ráp và kiểm tra 30
4.3 ĐÓNG GÓI VÀ THI CÔNG MÔ HÌNH 31
4.3.1 Đóng gói bộ điều khiển 31
4.3.2 Kết nối bộ phận điều khiển với nguồn và motor 32
4.3.3 Kết nối cảm biến với laptop 33
4.4 LẬP TRÌNH HỆ THỐNG 33
4.4.1 Lưu đồ giải thuật hệ thống thu thập ảnh và vẽ bản đồ 33
4.4.2 Lập trình Arduino với Arduino IDE 37
4.4.3 Ứng dụng Arduino Bluetooth Robot Car 37
4.5 VIẾT TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC 38
4.5.1 Hướng dẫn sử dụng Arduino Bluetooth Robot Car 38
4.5.2 Hướng dẫn tạo bản đồ 3D 38
Chương 5 KẾT LUẬN – NHẬN XÉT – ĐÁNH GIÁ 40
5.1 KẾT QUẢ THI CÔNG MÔ HÌNH 40
5.1.1 Mô hình robot thu thập ảnh 40
5.1.2 Đánh giá kết quả thu được 40
vii
Trang 115.2 KẾT QUẢ THU THẬP ẢNH 3D MÔI TRƯỜNG 41
5.3 KẾT QUẢ VẼ BẢN ĐỒ 3D MÔI TRƯỜNG 44
Chương 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 47
6.1 KẾT LUẬN 47
6.2 HƯỚNG PHÁT TRIỂN 47
TÀI LIỆU THAM KHẢO 489
PHỤ LỤC 50
Trang 12LIỆT KÊ HÌNH VẼ
Hình 2.1 Bản đồ vẽ bằng phương pháp SLAM. 5
Hình 2.2 Bản đồ vẽ bằng phương pháp Structured Light 6
Hình 2.3 Bản đồ vẽ bằng phương pháp quét laser 7
Hình 2.4 Bản đồ vẽ bằng phương pháp quang trắc 8
Hình 2.5 ROS trong điều khiển Robot 8
Hình 2.6 Cách thức hoạt động của ROS 9
Hình 2.7 ROS Computation Graph 10
Hình 2.8 Ảnh 3D môi trường 11
Hình 2.9 Các phép xoay trong 3D 12
Hình 2.10 Mô hình các thông số của camera 14
Hình 3.1 Sơ đồ hệ thống. 15
Hình 3.2 Thiết bị dùng để xử lý và hiển thị 16
Hình 3.3 Cảm biến Kinect. 16
Hình 3.4 Sơ đồ cấu tạo cảm biến Kinect. 17
Hình 3.5 Arduino Nano. 17
Hình 3.6 Sơ đồ chân Arduino Nano. 18
Hình 3.7 Module bluetooth HC-05. 19
Hình 3.8 Ảnh sơ đồ chân module HC-05 19
Hình 3.9 Mạch điều khiển động cơ DC HW39 20
Hình 3.10 Sơ đồ chân mạch điều khiển động cơ DC HW39 20
Hình 3.11 Động cơ robot. 21
Hình 3.12 Sơ đồ nguyên lý mô hình robot thu thập ảnh 23
Hình 3.13 Sơ đồ khối mô tả quá trình vẽ bản đồ của robot 24
Hình 3.14 Ảnh RGB và ảnh chiều sâu chụp từ camera Kinect. 24
Hình 3.15 Mô tả 26 vị trí được so sánh với X để tìm giá trị cực đại cực tiểu. 26
Hình 3.16 Cách mô tả điểm đặc trưng dùng SIFT 27
Hình 3.17 Các điểm đặc trưng tương đồng của hai ảnh RGB. 28
Hình 4.1 Ảnh bên trong bộ điều khiển. 31
Hình 4.2 Ảnh bên ngoài bộ điều khiển. 32
Hình 4.3 Ảnh bên trong robot. 32
ix
Trang 13Hình 4.4 Ảnh dưới đấy của robot. 32
Hình 4.5 Kết nối cảm biến Kinect với laptop 33
Hình 4.6 Lưu đồ giải thuật thu thập ảnh và vẽ bản đồ. 35
Hình 4.7 Lưu đồ giải thuật chương trình điều khển robot. 36
Hình 4.8 Giao diện Arduino IDE 37
Hình 4.9 Giao diện Arduino IDE. 37
Hình 4.10 Giao diện ứng dụng Android. 38
Hình 4.11 Giao diện ứng dụng Android. 38
Hình 4.12 Cửa sổ RTB-Map* (ROS). 39
Hình 4.13 Lưu bản đồ 3D. 39
Hình 4.14 Phần mềm MeshLab. 39
Hình 5.1: Mô hình robot thu thập ảnh và vẽ bản đồ 3D 40
Hình 5.2: Loop Closure Detection 42
Hình 5.3: Các điểm đặc trưng 42
Hình 5.4: 3D Map 43
Hình 5.5: 3D Loop Closure 43
Hình 5.6: GraphView 44
Hình 5.7: Bản đồ 2D với các chuyển động của robot để lập bản đồ 3D 44
Hình 5.8: Bản đồ 3D của phòng góc nhìn thứ nhất 45
Hình 5.9: Bản đồ 3D của phòng góc nhìn thứ hai 45
Hình 5.10: Bản đồ 3D của phòng góc nhìn thứ ba 46
Trang 14LIỆT KÊ BẢNG
Bảng 3.1: Bảng thống kê thực nghiệm tầm nhìn của camera Kinect … 17
Bảng 3.2: Liệt kê công suất các tải dùng điệp áp 5V 22
Bảng 4.1: Danh sách các linh kiện,thiết bị 30
Bảng 5.1: Bảng so sánh kích thướt của một số vật thể 41
xi
Trang 15BẢNG LIỆT KÊ TỪ VIẾT TẮTSLAM
Trang 16TÓM TẮT
Công nghệ quét 2D và 3D đang phổ biến hơn bao giờ hết và các doanh nghiệptrên toàn thế giới đang nắm lấy công nghệ đa năng này để tăng năng suất, loại bỏ cácchi phí không cần thiết để tạo ra các sản phẩm và dịch vụ mới lạ, thú vị nhằm kíchthích sự tò mò của người tiêu dùng
Hiện nay, công nghệ quét 2D và 3D được sử dụng rộng rãi trong thiết kế côngnghiệp, kỹ thuật, sản xuất, do khả năng nắm bắt nhanh chóng và chính xác các dữ liệucần thiết Nếu không có các thiết bị công nghệ 3D tiên tiến này, các phép đo sẽ phảiđược thu thập bằng các phương pháp thủ công lỗi thời, có thể tốn kém về chi phí vàmất thời gian Các công nghệ quét 3D mạnh mẽ giúp tăng tốc đáng kể quy trình làmviệc, giúp tránh những sai lầm và nâng cao năng suất
Với đề tài “Thiết kế mô hình robot thu thập ảnh và vẽ bản đồ môi trường trongnhà dùng camera 3D” nhóm muốn thu thập và vẽ lại bản đồ môi trường xung quanhgóp phần ứng dụng vào nhiều lĩnh vực khác Nhóm thu thập hình ảnh và vẽ lại bản đồdựa trên phương pháp SLAM, đây là một vấn đề phổ biến trong lĩnh vực điều khiển tựđộng
Kết quả cuối cùng mà nhóm thu được là một bản đồ 3D môi trường xungquanh tương đối hoàn chỉnh và chi tiết, thể hiện được các vật thể trong nhà Bên cạnh
đó, nhóm cũng kết hợp việc vẽ bản đồ với điều khiển robot góp phần làm cho ứngdụng mang tính thực tế nhiều hơn
xiii
Trang 17Công nghệ quét 3D là một quá trình xác định hình dạng bề mặt của vật thểtrong không gian ba chiều để tạo ra mô hình kỹ thuật số 3D [3] Quét 3D đã mở ra mộtbước ngoặt mới trong công nghệ 3D, bất kỳ mô hình vật chất nào tồn tại trên trái đấtđều có thể mô hình hóa bằng dữ liệu kỹ thuật số chỉ trong vài giờ đồng hồ Công nghệnày được ứng dụng trong nhiều lĩnh vực từ sản xuất cơ khí, khảo cổ học, y tế đến giaothông và xây dựng [4] Ứng dụng công nghệ quét 3D sẽ giúp tiết kiệm thời gian, giảmchi phí và nâng cao chất lượng của sản phẩm.
Camera 3D hiện đang được xem là loại camera có độ ứng dụng cao trong khoahọc kỹ thuật vì camera này có khả năng ghi nhận chiều sâu của đối tượng, tương tựnhư mắt con người [5] Dựa trên các nghiên cứu cùng với các hoạt động thực tiễn hiệnnay, chúng ta có thể nhận ra công nghệ quét 2D và 3D đang phổ biến hơn bao giờ hết,
nó được ứng dụng trên mọi lĩnh vực, trong mọi mặt của đời sống Đề tài: “Thiết kế mô
hình robot thu thập ảnh và vẽ bản đồ môi trường trong nhà dùng camera 3D” được
lựa chọn thực hiện sẽ có chức năng thu thập hình ảnh và tái hiện lại bản đồ ở môitrường xung quanh dựa trên các thông tin được thu thập từ camera 3D
Trang 18CHƯƠNG 1 TỔNG QUAN
- Ứng dụng hệ thống ROS trên nền tảng thư viện có sẵn để thu thập, xử lý hình ảnh 3D, trên cơ sở đó vẽ được bản đồ môi trường trong nhà
Đề tài: “Thiết kế mô hình robot thu thập ảnh và vẽ bản đồ môi trường trong nhà
dùng camera 3D” có những nội dung sau:
NỘI DUNG 1: Tìm hiểu về công nghệ quét 3D
NỘI DUNG 2: Tìm hiểu về camera 3D và các Module liên quan
NỘI DUNG 3: Xây dựng mô hình và chương trình điều khiển Robot
NỘI DUNG 4: Xây dựng chương trình trên Python
NỘI DUNG 5: Hoàn thành mô hình
NỘI DUNG 6: Đánh giá kết quả thực hiện
1.4 GIỚI HẠN
Với đề tài: “Thiết kế và thi công mô hình robot thu thập ảnh và vẽ bản đồ môi
trường trong nhà dùng camera 3D” có các giới hạn bao gồm:
- Thiết kế mô hình sử dụng camera 3D để thu thập hình ảnh và bản đồ trong không gian nhỏ
Chương 2: Cơ sở lý thuyết
Chương này sẽ trình bày cơ bản về công nghệ quét 3D, và các thuật ngữ liên quan, giới thiệu cơ bản về camera 3D và thư viện liên quan
Chương 3: Thiết kế và tính toán
Chương này sẽ đi tìm hiểu kỹ các thuật toán biến đổi tọa độ, các ma trận
chuyển đổi và thiết kế mô hình Robot
Chương 4: Thi công hệ thống
Nội dung của chương là quá trình thi công cùng với việc chạy chương trình về thu thập hình ảnh và vẽ lại bản đồ
Trang 19CHƯƠNG 1 TỔNG QUAN
Chương 5: Kết quả nhận xét và đánh giá
Đây là chương tổng hợp các kết quả đạt được sau khi thi công mô hình
Chương 6: Kết luận và hướng phát triển
Kết quả nhận được khi hoàn thiện đề tài, đưa ra các hướng phát triển đề đề tài được hoàn thiện hơn
Trang 20CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 CÁC PHƯƠNG PHÁP XÂY DỰNG BẢN ĐỒ
2.1.1 SLAM
SLAM (Simultaneous Localization and Mapping) là hệ thống lấy dữ liệu ảnhthu được từ các cảm biến và camera để tái tạo xây dựng lại môi trường bên ngoàixung quanh bằng cách đưa thông tin môi trường vào một bản đồ (2D và 3D) [6].SLAM đại diện cho định vị (Localization) và tái tạo bản đồ (Mapping) Từ đó, thiết bị(Robot, camera, xe) có thể định vị vị trí của chúng đang ở đâu, trạng thái, tư thế của
nó trong bản đồ để tự động thiết lập đường đi trong môi trường hiện tại SLAM là mộtquá trình lặp đi lặp lại – thiết bị càng lặp lại nhều lần, nó càng có thể định vị chính xáctrong không gian đó
Có nhiều loại SLAM khác nhau Có SLAM sử dụng dữ liệu trực quan (hình ảnh
từ camera) làm nguồn thông tin chính Có 2D SLAM, chỉ chú trọng đến chuyển độngtrong 2 trục Sau đó là 3D SLAM, chủ yếu tập trung vào đo lường và lập bản đồ 3Dchính xác về môi trường
Để tái tạo môi trường vào bản đồ, thực thể phải nhận thông tin các phần tửtrong môi trường xung quanh nhờ các cảm biến ngoại vi và cảm biến nội vi Và hầunhư mọi cảm biến đều bị ảnh hưởng bởi nhiễu và khả năng có hạn của chúng
Cảm biến ngoại vi (Exteroceptive Sensor)
Cảm biến ngoại vi nhận và đo thông tin các thành phần ở môi trường xung quanh Một số loại cảm biến thông dụng :
- Sonar : Thiết bị sử dụng sóng âm thanh thu được để dò tìm và xác định vị trícủa đối tượng dưới nước, ngoài ra nó còn được sử dụng cả trên đất liền
- Laser Rangefinder : Thiết bị sử dụng tia laser để xác định khoảng cách đếnmột đối tượng, phương pháp được sử dụng phổ biến là toán tử Time – Of –Flight (gởi một chùm tia laser đến đối tượng và đo thời gian phản xạ lại từđối tượng về nơi bắn tia laser)
- Camera : Thu thập hình ảnh từ môi trường xung quanh
Trang 21CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
- Hệ thống định vị GPS : Xác định vị trí tọa độ của đối tượng dựa trên các vệtinh nhân tạo được đặt trên quỹ đạo không gian Cảm biến GPS không thểhoạt động dưới nước và ngay cả trong nhà
Cảm biến nội vi (Proprioceptive Sensor)
Cảm biến nội vi giúp cho thực thể đo được tốc độ, sự thay đổi vị trí và gia tốc của chính thực thể Một số loại cảm biến sử dụng trong thực tế :
- Encoder : Là thiết bị được sử dụng phổ biến trong các hệ thống điều
khiển tự động để báo vận tốc
- Accelerometers : Máy đo gia tốc, gia tốc kế cho biết hai thông số là
phương (Vector 3 chiều x, y, z) và chuyển động Được sử dụng nhiều trong một số game dựa vào cảm biến : đua xe
- Gyroscope : con quay hồi chuyển, là thiết bị để đo hoặc duy trì
mô hình ánh sáng chiếu vào đối tượng được tính toán Vị trí của các điểm này trên bề
Trang 22CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
mặt vật thể là một hình tam giác, sử dụng camera là điểm tham chiếu Kết quả cuốicùng là một đám mây điểm minh họa cho vật thể[7]
Khi một lần chụp của vật thể được hoàn thành, vật thể sẽ được xoay hoặccamera được di chuyển để chụp một góc khác Nhiều bức ảnh được chụp theo kiếunày được lặp đi lặp lại cho đến khi hoàn thành một vòng quay 360°
Có hai loại ánh sáng được sử dụng chủ yếu là ánh sáng trắng và ánh sáng xanh
Cả hai ánh sáng này có liên quan chặt chẽ với nhau Quét 3D ánh sáng trắng là tiềnthân của quét 3D ánh sáng xanh, được tạo ra để cải tiến công nghệ quét ánh sáng cócấu trúc ban đầu Quét ánh sáng xanh tạo ra độ phân giải cao hơn và quét chính xáchơn quét ánh sáng trắng
Hình 2.2: Bản đồ 3D vẽ bằng phương pháp Structured Light
2.1.3 Xây dựng bản đồ bằng phương pháp quét Laser
Camera ánh sáng chiếu một chùm tia laser lên bề mặt của vật thể, sau đó tialaser phản xạ và trở lại cảm biến Thời gian giữa phép chiếu và phản xạ được đo vàdiễn giải dưới dạng thông tin hình học [8]
Về cơ bản, khoảng cách giữa máy quét và vật thể được tìm thấy vì tốc độ ánhsáng (laser) là biến được biết đến Khi quét, có thể tạo ra các đám mây điểm (thay vìmột vài trăm điểm) thể hiện một cách chính xác và chi tiết đối tượng trong thực tế màcác tia laser đã đi qua Những điểm này có thể được sử dụng để ngoại suy hình dạngcủa vật thể Mức độ chính xác của quét laser là khá cao vì hàng triệu xung laser đượcchiếu và nhận trong một khoảng thời gian ngắn
Trang 23CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Tốc độ quét phụ thuộc vào mật độ điểm muốn tái tạo của vật thể Quét laserđược sử dụng khi một vật thể lớn cần được quét Tuy nhiên, quá trình quét còn kháchậm do hàng triệu triệu chùm tia laser cần phải chạm tới hàng triệu điểm trên bền mặtvật thể
Hình 2.3: Ảnh bản đồ vẽ bằng phương quét laser
2.1.4 Xây dựng bản đồ bằng cách chụp ảnh từ nhiều vị trí khác nhau
Xây dựng bản đồ bằng cách chụp ảnh từ nhiều vị trí khác nhau là cách đơn giảnnhất để quét một vật thể Phương pháp này xác định các thuộc tính hình học của cácvật thể từ các hình ảnh thu được Một kỹ thuật phức tạp hơn được gọi là quang trắclập thể kỹ thuật này bao gồm việc ước lượng các tọa độ ba chiều của các điểm trênmột vật thể Ngoài ra, các tọa độ còn được xác định bởi các phép đo từ hai hình ảnhtrở lên được chụp từ các vị trí khác nhau Các điểm chung trên mỗi ảnh sẽ được nhậndiện và đồng bộ với nhau Giao điểm của các tia “được vẽ” từ vị trí máy ảnh đến cáiđiểm trên vật thể xác định vị trí ba chiều của điểm đó [9]
Quang trắc dùng các phương pháp từ nhiều môn học gồm quang học và hìnhhọc phản xạ Mô hình dữ liệu của Georg Wiora cho biết những loại thông tin đầu vào
và đầu ra của phương pháp này
Các tọa độ 3D (3D co-ordinates) định nghĩa vị trí của các điểm của vật thể trongkhông gian 3D Các tọa độ ảnh định nghĩa vị trí của các điểm trong ảnh của vật thể Sựđịnh hướng bên ngoài (exterior orientation) giúp xác định vị trí và khoảng cách củacác điểm ảnh trong không gian Các quan sát bổ sung (co-ordinatesfrom n views) đóngvai trò vô cùng quan trọng: với các khung tỉ lệ, về cơ bản là khoảng cách giữa hai điểmtrong không gian
Trang 24CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Hình 2.4: Bản đồ vẽ bằng phương pháp quang trắc
ROS (Robot Operating System) là một hệ thống phần mềm chuyên dụng để lậptrình và điều khiển robot, bao gồm các công cụ để lập trình, hiển thị, tương tác trựctiếp với phần cứng và kết nối cộng đồng robot trên toàn thế giới [10]
Nói cách khác, ROS là một hệ điều hành dành cho robot Cũng giống như các
hệ điều hành cho PC, máy chủ hoặc các thiết bị độc lập, ROS là một hệ điều hành đầy
đủ được “sinh ra” cho robot ROS trên thực tế là một hệ điều hành meta, giúp kết nốimột hệ điều hành và phần mềm trung gian
Hình 2.5: ROS trong điều khiển Robot
Trước khi ROS đươc tạo ra, các nhà thiết kế robot và nghiên cứu robot sẽ dànhthời gian đáng kể để thiết kế phần mềm nhúng trong robot, cũng như chính phần cứng.Điều này đòi hỏi kỹ năng về kỹ thuật cơ khí, điện tử và lập trình nhúng Thôngthường, các chương trình được thiết kế theo cách này sẽ sử dụng lại các chương trìnhtrước đó đáng kể, vì chúng được liên kết chặt chẽ với các phần cứng cơ bản
Trang 25CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Ý tưởng chính của ROS là tránh liên tục phát minh lại bánh xe và cung cấp cácchức năng được tiêu chuẩn hóa để thực hiện trừu tượng hóa phần cứng, giống nhưmột hệ điều hành thông thường cho PC
Một lợi ích khác của các hệ điều hành robot như ROS là kết hợp chuyên môn từcác ngành khác nhau Trên thực tế, thiết kế và lập trình robot có nghĩa là:
- Quản lý phần cứng bằng cách viết trình điều khiển
- Quản lý bộ nhớ và các quy trình
- Quản lý đồng thời, song song và hợp nhất dữ liệu
- Cung cấp các thuật toán lý luận trừu tượng, sử dụng trí tuệ nhân tạo
Robotics do đó đòi hỏi các bộ kỹ năng rất khác nhau, thường vượt quá phạm vicủa một cá nhân
Về cơ bản ROS file được bố trí và hoạt động như sau, từ trên xuống theo thứ tự:
Metapackages, Packages, Packages Manifest, Misc, Messages, Services, Code
Hình 2.6: Cách thức hoạt động của ROS
Trong một gói tổng (Metapackages) là một nhóm các gói (Packages) có liênquan với nhau Khi chúng ta cài đặt gói tổng, nghĩa là tất cả các gói con trong nó cũngđược cài đặt Trong một gói gồm có: ROS node, datasets, configuration file, sourcefiles Tuy nhiên, mặc dù có nhiều thứ trong một gói, nhưng để làm việc chúng ta chỉcần quan tâm đến src folder - chứa source code của chúng ta, và file Cmake.txt – nơikhai báo những thư việc cần thiết để thực thi code
ROS Computation Graph là bức tranh toàn cảnh về sự tương tác của các nodes,topics với nha
Trang 26CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Hình 2.7: ROS Computation Graph
Ở hình trên, có thể thấy Master chính là nodes kết nối tất cả các node còn lại, các nodes còn lại muốn giao tiếp với nhau phải thông qua node Master
- Nodes: ROS nodes là quá trình sử dụng ROS API để giao tiếp với nhau Mộtrobot có thể có rất nhiều nodes để thực hiện quá trình giao tiếp của nó Vídụ: một robot tự lái sẽ có những node sau: node đọc dữ liệu từ Laser scaner,Kinect camera, Localization and Mapping, node gửi lệnh vận tốc cho hệthống bánh lái
- Master: ROS master đóng vai trò như một node trung gian để kết nối cácnode khác nhau Master bao quát thông tin về tất cả các node chạy trong môitrường ROS Nó sẽ trao đổi chi tiết của một node với các node khác để thiếtlập kết nối giữa chúng Khi chạy một chương trình ROS, lúc nào ros_mastercũng phải được chạy trước
- Message: Các ROS node có thể giao tiếp với nhau bằng cách gửi và nhận dữliệu dưới dạng ROS Message ROS Message là một cấu trúc dữ liệu được
sử dụng bởi các ROS node để trao đổi dữ liệu Nó giống như một protocol,định dạng thông tin gửi đi giữa các node, ví dụ như: string, float, int
- Topic: Một trong những phương pháp để giao tiếp và trao đổi tin nhắn giữahai node được gọi là ROS Topic ROS Topic giống như một kênh tin nhắn,trong kênh đó dữ liệu được trao đổi bằng ROS Message Mỗi chủ đề sẽ cómột tên gọi khác nhau tùy thuộc vào những thông tin mà nó sẽ phụ trách
Trang 27CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
cung cấp Một node sẽ đăng bài (publish) thông tin cho một Topic và một node khác có thể đọc từ Topic bằng cách đăng ký (subcrible) với nó
- Service: Là một phương pháp giao tiếp khác với Topic Topic sử dụngtương tác publish hoặc subcrible nhưng trong Service lại tương tác theokiểu request – response Một node sẽ hoạt động như một server thườngxuyên chạy và khi Node Client gửi yêu cầu dịch vụ cho server, Server sẽthực hiện dịch vụ và gửi kết quả cho Node client Node client phải đợi chođến khi server phản hồi kết quả
2.3 ẢNH 3D VÀ PHƯƠNG PHÁP HIỆU CHỈNH
2.3.1 Ảnh 3D
3D (Three - Dimensional) là không gian ba chiều Các vật thể trong không gian
ba chiều được đặc trưng bởi ba thông số là chiều rộng, chiều cao và chiều sâu Conngười chúng ta sống trong không gian vật chất, bằng thị giác của mình, chúng ta nhậnthức được các vật thể xung quanh chúng ta là các hình khối, tức là hình ảnh ba chiều –3D
Hình ảnh 3D là một kỹ thuật được phát triển để tạo ra những ảo giác về chiềusâu trong hình ảnh Một hình ảnh 3D được tạo ra bằng cách chụp hai hoặc nhiều bứcảnh cùng một cảnh và đặt chúng cạnh nhau trong đó các ảnh được quan sát dưới gócnhìn và khoảng cách khác nhau Điều này tuân theo nguyên tắc gọi là Stereopsis tức là
sẽ nhìn vật thể theo chiều sâu phối cảnh [11] Sự khác biệt nhỏ này đủ để lừa bộ nãonghĩa rằng đang nhìn vào một hình ảnh có chiều sâu Nhưng trên thực tế, là đang nhìnvào một hình ảnh phẳng 2D
Hình 2.8: Ảnh 3D môi trường
Trang 28CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Trong nội dung nghiên cứu của đề tài, bản đồ 3D là bản đồ thỏa mãn đầy đủ cácđặc trưng bản chất của một bản đồ thông thường; mặt khác, bản đồ 3D là mô hình thểhiện các vật thể trong hệ quy chiếu không gian, thể hiện đầy đủ cả ba chiều là chiềurộng, chiều cao và chiều sâu của đối tượng theo đặc trung không gian của chúng
Phép xoay trong 3D
Hình 2.9: Các phép xoay trong 3D
Bản chất của phép xoay là xoay quanh một trong các trục của hệ tọa độ Ba matrận xoay cơ bản là xoay vectơ quanh trục Ox, Oy hoặc Oz theo một góc θ Theo đó,các ma trận tương tự cũng có thể biểu thị một trục quay theo chiều kim đồng hồ [12].
Trang 29CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Trong đó: [ ] là vector được nhân với ma trận xoay
Tiếp tục xoay quanh trục Oy một góc β, ta tiếp tục nhân với ma trận xoay :
2.3.2 PHƯƠNG PHÁP HIỆU CHỈNH
Phương pháp hiệu chỉnh chuẩn là công việc ước tính các thông số của thấukính, cảm biến hình ảnh của máy ảnh Có thể sử dụng các thông số này để cân chỉnhlại hiện tượng biến dạng, đo kích thước một vật ngoài thế giới thực, tìm ra vị trí củacamera khi chụp một bức hình Những công việc đó cũng được sử dụng trong các ứngdụng nhờ thị giác máy tính để phát hiện và đo đối tượng, trong robotics, hệ thống điềuhướng, xây dựng ảnh 3D Các thông số camera bao gồm các thông số nội, thông sốngoại, các hệ số biến dạng Để ước tính các thông số camera, bạn cần có những điểm3D thực và điểm ảnh 2D tương ứng Bạn có thể có những điểm trên bằng cách sử dụngnhiều hình chụp của một mẫu để cân chỉnh ảnh, chẳng hạn là một bàn cờ Sử dụng cácảnh đó, bạn có thể giải ra được thông số camera Mô hình camera pinhole là một mô
Trang 30CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
hình camera đơn giản Bạn có thể bắt gặp mô hình camera này được cài đặt đơn giản khingười ta muốn xem hiện tượng nhật thực Mô hình gồm một hộp đen kín, được đục một
lỗ nhỏ gọi là lỗ kim Thuật ngữ gọi pinhole là Focal Point Khoảng cách từ Focal Point tớimàn nhận ảnh là Focal length Độ mở của pinhole gọi là Aperture khẩu độ
Hình 2.10: Mô hình các thông số của camera
Các thông số ảnh được biểu diễn bởi ma trận 3×4 được gọi là ma trận camera
Ma trận camera này ánh xạ cảnh thế giới thực 3D vào mặt phẳng ảnh Thuật toáncalibration tính ra ma trận camera sử dụng các thông số nội và thông số ngoại Thông
số ngoại của camera đại diện cho vị trí của camera trong thế giới 3D Thông số nội củacamera đại diện cho tâm quang và tiêu cự của camera
Trong đó:
- (X, Y, Z) là tọa độ của điểm ảnh trong không gian ba chiều
- (u, v) là tọa độ của điểm ảnh hai chiều
- (cx, cy) là điểm chính, thường là tâm ảnh
- fx, fy là độ dài tiêu cự biểu diễn ở đơn vị pixel
Trang 31CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ
Chương 3 TÍNH TOÁN VÀ THIẾT KẾ
3.1 GIỚI THIỆU
Để có thể thực hiện đề tài: “Thiết kế và thi công mô hình robot thu thập ảnh và
vẽ bản đồ môi trường trong nhà dùng camera 3D”, chúng ta cần phải tính toán và thiết
kế được mô hình hệ thống Cụ thể trong chương này, nhóm sẽ xây dựng sơ đồ khốicho hệ thống, thiết kế sơ đồ nguyên lý, tính toán lựa chon linh kiện, thiết bị cho từngkhối
Khối giao tiếp không dây: Là khối truyền và nhận tín hiệu bluetooth
Khối động lực: Nhận tín hiệu từ khối điều khiển để vận hành robot chuyểnđộng tùy ý
Trang 32CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ
Khối nguồn: Cung cấp nguồn cho toàn bộ hệ thống
3.3 THIẾT KẾ HỆ THỐNG PHẦN CỨNG
3.3.1 Khối xử lý và hiển thị
Khối xử lý và khối hiển thị có nhiệm vụ thu thập tín hiệu hình ảnh và tín hiệutọa độ sau đó xử lý tính toán để vẽ bản đồ 3D và hiển thị Việc xử lý ảnh cần nhiều tàinguyên và tốc độ xử lý cao, nên ta không sử dụng vi điều khiển thông thường để xử lý
Do đó nhóm đã quyết định sử dụng laptop làm khối xử lý trung tâm sau đó hiển thị kếtquả ra màn hình
Hình 3.2: Thiết bị dùng để xử lý và hiển
thị 3.3.2 Khối thu tín hiệu hình ảnh
Khối thu tín hiệu có vai trò quan trọng nhất trong mô hình, có chức năng thuthập ảnh và gửi lên khối xử lý trung tâm Tín hiệu thu được yêu cầu các ảnh có chiềusâu, với độ phân giải cao, tương tự như mắt người nên ở đề tài này sử dụng cảm biếnKinect làm khối thu tín hiệu hình ảnh
Hình 3.3: Cảm biến Kinect
Thông số kỹ thuật:
- Điện áp hoạt động: 12V DC
- RGB Camera: thu nhận ảnh màu 8 bit, có độ phân giải 640x480
- Sử dụng chip PrimeSensor của Microsoft sản xuất
- Tầm hoạt động tốt nhất từ 0,8m đến 4,0m
Trang 33CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ
Bảng 3.1: Bảng thống kê thực nghiệm tầm nhìn của camera Kinect
Đặc tính Camera RGB Cảm biến độ sâuTầm nhìn Chiều ngang 62⁰ 58⁰
của camera
Kinect
Các bộ phận chính của cảm biến Kinect theo hình 3.4:
- RGB Camera: thu nhận ảnh màu 8 bit, có độ phân giải lên tới 640x480
- Cảm biến độ sâu: đo độ sâu 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)
- Chip PrimeSensor của Microsoft sản xuất
- Micro 16 bit với tốc độ lấy mẫu là 16kHz (số mẫu/giây)
Hình 3.4: Sơ đồ cấu tạo cảm biến Kinect
3.3.3 Khối điều khiển
Khối điều khiển có hai chức năng chính: Nhận tín hiệu điều khiển từ khối giaotiếp không dây để điều khiển robot và nhận tín hiệu từ khối thu thập dữ liệu để gửi lênkhối xử lý trung tâm Từ yêu cầu đó mà nhóm đã chọn board Arduino Nano làm khốiđiều khiển cho mô hình
Hình 3.5: Arduino Nano