THÀNH PHỐ HỒ CHÍ MINHBỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG THIẾT KẾ VÀ THI CÔNG MÔ HÌNH ROBOT THU THẬP ẢNH VÀ VẼ BẢ
Trang 1THÀNH PHỐ HỒ CHÍ MINH
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG
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
GVHD: NGÔ BÁ VIỆT SVTH: ĐÀO NGUYỄN DU SVTH: NGUYỄN ĐỨC LÂM
SKL 0 0 7 3 5 6
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
NGÀNH KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG
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
GVHD: ThS Ngô Bá Việt SVTH1: Đào Nguyễn Du MSSV1: 13141035
SVTH2: Nguyễn Đức Lâm MSSV2: 14141159
Trang 3BỘ 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 4
TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH
KHOA ĐIỆN-ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
CỘNG HÕA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÖC
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
Trang 5TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH
KHOA ĐIỆN-ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
CỘNG HÕA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÖC
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
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
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 sinh viê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 kinh nghiệ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ình muố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
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
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 Trang
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
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 Trang
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
Trang 15BẢNG LIỆT KÊ TỪ VIẾT TẮT
SLAM Simultaneous Localization And Mapping
ROS Robot Operating System
SIFT Scale-Invariant Feature Transform
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ệp trê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ác chi 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ích thí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ông nghiệ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ệu cầ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àm việ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 trong nhà dùng camera 3D” nhóm muốn thu thập và vẽ lại bản đồ môi trường xung quanh gó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 xung quanh 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 ứng dụng mang tính thực tế nhiều hơn
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ột bướ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 giao thô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ảm chi 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 khoa họ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ện nay, 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ôi trườ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à
1.3 NỘI DUNG NGHIÊN CỨU
Đề 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 ảnh thu đượ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ài xung 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ột quá 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ác trong 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 động trong 2 trục Sau đó là 3D SLAM, chủ yếu tập trung vào đo lường và lập bản đồ 3D chí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ầu như 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 đến mộ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ì phương hướng
Hệ thống SLAM sẽ xảy ra lỗi khi hoạt động trong môi trường động, môi trường
có phạm vi quá lớn, môi trường có quá nhiều hoặc quá ít đặc trung, khi camera di chuyển không ổn định và khi các cảm biến xảy ra xung đột
Hình 2.1 : Bản đồ vẽ bằng phương pháp SLAM
2.1.2 3D Structured Light
3D Structured Light là công nghệ quét quang học không tiếp xúc, sử dụng các mẫu ánh sáng để thực hiện quét 3D Các mẫu ánh sáng khác nhau được chiếu lên vật thể và máy quét ghi lại vị trí và cách các mẫu ánh sáng bị biến dạng bởi vật thể Thông qua lượng giác đơn giản, khoảng cách và vị trí của hàng ngàn điểm dữ liệu trong đó
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ối cù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ặc camera được di chuyển để chụp một góc khác Nhiều bức ảnh được chụp theo kiếu nà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ền thâ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ác hơ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 đó tia laser 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 độ ánh sá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ạng củ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 được chiế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ặt vậ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ản nhấ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ác vậ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ắc lậ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ên mộ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 ảnh trở 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ận diệ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ình họ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ể trong khô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ủa các điểm ảnh trong không gian Các quan sát bổ sung (co-ordinatesfrom n views) đóng vai 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
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
2.2 HỆ ĐIỀU HÀNH ROS
ROS (Robot Operating System) là một hệ thống phần mềm chuyên dụng để lập trì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ực tiế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ối mộ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ành thờ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ông thườ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ình trướ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ác chứ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 vi củ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ên quan 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, source files 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ơi khai 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,
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ột robot 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ác node khác nhau Master bao quát thông tin về tất cả các node chạy trong môi trường ROS Nó sẽ trao đổi chi tiết của một node với các node khác để thiết lập kết nối giữa chúng Khi chạy một chương trình ROS, lúc nào ros_master cũ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ữa hai 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ụng tương tác publish hoặc subcrible nhưng trong Service lại tương tác theo kiểu request – response Một node sẽ hoạt động như một server thường xuyê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 Con ngườ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ận thứ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ều sâ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óc nhì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ão nghĩ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ìn vào một hình ảnh phẳng 2D
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ều rộ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 ma trậ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]
Xoay quanh trục 0z một góc bằng α:
( ) [ ] [ ] [ ] (2.4)
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.8)
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ấu kí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ỉnh lạ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ủa camera khi chụp một bức hình Những công việc đó cũng được sử dụng trong các ứng dụng nhờ thị giác máy tính để phát hiện và đo đối tượng, trong robotics, hệ thống điều hướ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ểm 3D 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ụng nhiề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 khi ngườ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ới mà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án calibration 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ủa camera đại diện cho tâm quang và tiêu cự của camera
S[ ] [
] [
] [ ] (2.9)
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ối cho 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ừng khố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ệu tọ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ài nguyê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ết quả 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 thu thậ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ều sâ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ến Kinect 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âu Tầm nhìn
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 giao tiế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ên
khố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