1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO cáo đồ án 2 xây DỰNG hệ THỐNG HANDHELD INDOOR MAPPING sử DỤNG RGBD CAMERA

26 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 26
Dung lượng 6,74 MB

Nội dung

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ -o0o - BÁO CÁO ĐỒ ÁN XÂY DỰNG HỆ THỐNG HANDHELD INDOOR MAPPING SỬ DỤNG RGBD-CAMERA GVHD: Nguyễn Vĩnh Hảo SVTH: Nguyễn Trung Nguyên MSSV: 1910393 TP HỒ CHÍ MINH, THÁNG 12 NĂM 2022 Báo cáo đồ án GVHD: Nguyễn Vĩnh Hảo MỤC LỤC Giới thiệu đề tài Mục tiêu đề tài Giới thiệu RGB-D camera (Asus xtion pro) Giới thiệu ROS .3 Sơ đồ giải thuật cho toán SLAM Phần mềm sử dụng Point Cloud 16 Kết 17 Nhận xét đề xuất cải tiến 22 TÀI LIỆU THAM KHẢO .24 i Báo cáo đồ án GVHD: Nguyễn Vĩnh Hảo Giới thiệu đề tài Hiện hướng nghiên cứu robot tự hành phát triển mạnh mẽ toàn giới Nhờ phát triển vượt bậc công nghệ chế tạo cảm biến mà ngày có nhiều lựa chọn cho nhà phát triển dựa vào mục đích xây dựng mơ hình (chủ yếu đặc điểm môi trường hoạt động) Trong toán robot tự hành, toán định vị robot xem toán tảng để thực tác vụ thơng minh Bài toán định vị toán ước lượng hệ tọa độ gắn với robot cách thu thập thơng tin từ cảm biến, đó, thông tin từ môi trường hoạt động (bản đồ) biết trước khơng Với mơi trường hoạt động khơng biết trước tồn định vị robot bao gồm thành phần chính: xây dựng đồ mơi trường xung quanh định vị trí đồ xây dựng Q trình xử lý đồng thời tốn lúc gọi SLAM (Simultaneous Localization And Mapping) Với mong muốn thực ứng dụng xây dựng đồ có tính di động thiết bị camera Xtion Pro Live có sẵn cơng ty PIFlab cung cấp nên nhóm chọn đề tài “Thực 3D-MAPPING sử dụng RGB-D camera” Mục tiêu đề tài Thiết bị cảm biến lựa chọn camera RGB -D Điểm yếu loại camera tầm hoạt động không rộng, khoảng cách 5m Những năm gần đây, xu hướng nghiên cứu ứng dụng loại camera phát triển nhanh chóng giá thành khơng cao mà thông tin nhận lại chi tiết, đủ để áp dụng lên mơ hình nghiên cứu thuật toán Để tiếp cận cách giải tốn SLAM nhanh chóng, nhóm sử dụng hệ điều hành robot ROS Cộng đồng sử dụng ROS cung cấp nhiều project thực tốn SLAM thích hợp để tham khảo phát triển, cải tiến giải thuật Lợi ích thiết thực việc sử dụng ROS có tính kế thừa Điều rút ngắn thời gian nghiên cứu lại điều nghiên cứu Giới thiệu RGB-D camera (Asus xtion pro) Camera RGB-D loại camera tạo hai ảnh: ảnh màu thông thường (ảnh RGB), ảnh thể chiều sâu (ảnh Depth – D), thể khoảng cách từ camera đến điểm không gian Thông tin độ sâu thu kết hợp thiết bị chiếu tia hồng ngoại camera hồng ngoại (tích hợp RGB-D camera) Báo cáo đồ án GVHD: Nguyễn Vĩnh Hảo Camera sử dụng driver OpenNI2 (Open Natural Interface 2) Bộ driver với file thông tin calibration xử lý ảnh RGB độ sâu nhằm đảm bảo tương ứng thơng tin hình ảnh Ảnh màu RGB ảnh độ sâu Depth Asus Xtion Pro qua bước xử lý tạo liệu 3D dạng point cloud (đám mây điểm) Đám mây điểm điểm không gian ba chiều, điểm bao gồm tọa độ XYZ Ngồi ra, điểm chứa thêm thơng tin màu Nói chung, đám mây điểm kiểu liệu thu từ thiết bị quét 3D Các thiết bị cảm nhận bề mặt vật thể theo nguyên tắc phát chùm sóng điện từ (hồng ngoại laser) thu sóng phản xạ Kết trình đo từ máy quét tập liệu gồm điểm thu được, dạng đám mây điểm Cảm biến RGB-D dạng máy quét 3D sử dụng cảm biến độ sâu theo nguyên lý quét kết hợp với cảm biến màu Ngoài ra, liệu kiểu đám mây điểm tạo từ mơ hình 3D mơ hình CAD Dữ liệu kiểu đám mây điểm sử dụng robot đa robot với cảm biến RGB-D, hay ngành viễn thám với thiết bị quét 3D địa hình máy quét gắn máy bay không người lái Báo cáo đồ án GVHD: Nguyễn Vĩnh Hảo Giới thiệu ROS ROS hệ điều hành mã nguồn mở, dùng cho ứng dụng robot Về bản, ROS có đặc tính thiết yếu hệ điều hành khả thực tác vụ (task) song song, giao tiếp, trao đổi liệu với tác vụ, quản lý liệu,… Hơn nữa, để ROS ứng dụng lĩnh vực robotics, ROS phát triển riêng biệt thư viện, công cụ dành cho việc thu thập, xử lý, hiển thị, điều khiển,… ROS kết hợp, tương tác với nhiều robot framework khác Player, YARP, Orocos, CARMEN, Orca, Moos, Microsoft Robotics Studio ROS hệ điều hành phát triển chuyên dụng cho ứng dụng điều khiển robot, với ROS ta lập trình, biên dịch, chạy thực thi chương trình điều khiển qua nhiều máy tính nhiều hệ thống robots khác Graph ROS hiểu (tree graph) biểu diễn quan hệ thành phần hệ điều hành này, nodes, topics, messages, services,… (các khái niệm cụ thể giải thích rõ mục 3.2) Về mặt trao đổi liệu giao tiếp ROS: ROS tích hợp vài chuẩn giao tiếp khác nhau, bao gồm giao tiếp đồng theo chuẩn RPC qua services, truyền liệu bất đồng qua topics, lưu trữ liệu Parameter Server Ưu điểm ROS: Xây dựng ứng dụng robotics ROS giảm lượng đáng kể cơng việc lập trình, thiết lập hệ thống Những phần tận dụng nguồn tài nguyên mã nguồn mở vô phong phú cộng đồng Theo [13], ta so sánh khối lượng công việc kỹ thuật (required engineering) khối lượng nghiên cứu khoa học nòng cốt (Core Research) sau: Báo cáo đồ án GVHD: Nguyễn Vĩnh Hảo Từ đó, ta thấy rằng, với hiệu từ ROS, thời gian dành cho công việc kỹ thuật giảm xuống đáng kể, đó, tăng thời gian cho cơng việc nghiên cứu chuyên sâu, hàm lượng khoa học đạt đề tài lớn nhiều lầnMột số đặc điểm làm cho ROS hệ điều hành nên sử dụng, là: ROS hệ điều hành mã nguồn mở - - Các tài liệu kỹ thuật, tài liệu hướng dẫn kênh hỗ trợ đầy đủ Một đề cốt lõi khiến ROS trở nên mạnh mẽ tính cộng đồng lớn Nguồn tài nguyên cộng đồng đóng góp xây dựng, phát triển từ viện nghiên cứu trường đại học hàng đầu Những tài nguyên cung cấp từ ROS thể sức mạnh lĩnh vực robotics là: + Visualization + Object recognition + Navigation + Manipulation/grasping + Plugging in Sơ đồ giải thuật cho toán SLAM Sơ đồ khối hệ thống: Báo cáo đồ án GVHD: Nguyễn Vĩnh Hảo Trong sơ đồ đặc trưng ảnh xử lý qua bước trích đặc trưng ảnh (feature detection) đánh dấu điểm đặc trưng (feature description) Trích đặc trưng ảnh nghĩa tìm điểm vùng ảnh có thay đổi độ sáng (intensity) mạnh cạnh góc vật ảnh, sau lấy điểm trung tâm điểm, vùng ảnh điểm đặc trưng Đánh dấu đặc trưng ảnh nghĩa tạo cho điểm đặc trưng giá trị riêng biệt dựa vào đặc điểm (độ sáng) điểm lân cận Nhờ trình đánh dấu đặc trưng ảnh mà điểm đặc trưng frame ảnh khác nhận biết thành cặp, tạo tiền đề cho việc tính tốn tọa độ tương đối camera frame ảnh Phần mềm sử dụng Ứng dụng thực tảng hệ điều hành robot ROS Nhóm sử dụng package mã nguồn mở sau: openni2_launch, rtabmap_ros, robot_localization, tinyImu - Package openni2_launch Package driver openni2 cho camera Asus Xtion Pro Live Chạy package với node openni2_launch ta có topic data ảnh RGB ảnh độ sâu Với package ta sử dụng topic: /camera/rgb/camera _info, /camera/rgb/image_rect_color, /camera/depth_registered/image_raw để tính tốn vị trí camera Báo cáo đồ án GVHD: Nguyễn Vĩnh Hảo Hình Run package openni2_launch - Package rtabmap_ros Package phát triển Mathieu Labbé, phòng lab IntRoLab, Interdisciplinary Institute of Technological Innovation, Université de Sherbrooke Package cung cấp giải thuật cần thiết cho tốn SLAM từ trích đặc trưng, đánh dấu đặc trưng, matching đặc trưng ảnh đến ước lượng vị trí camera dựa vào thơng tin ảnh RGB tối ưu đồ Package gồm node quan trọng: Node rgbd_odometry tính tốn vị trí camera qua frame ảnh Sau tính tốn node publish message với kiểu nav_msg/odometry Một số thông số cần điều chỉnh node gồm: Feature: lựa chọn thuật tốn trích đặc trưng, đánh dấu đặc trưng ảnh Học viên lựa chọn thuật toán ORB Minimum inlier: số lượng tối thiểu cặp đặc trưng inlier để phép tính chuyển vị trí chấp nhận Node rtabmap có nhiệm vụ nhận thơng tin odometry, frame ảnh, điểm đặc trưng để dựng đồ Báo cáo đồ án GVHD: Nguyễn Vĩnh Hảo Hình Run package rtabmap_ros - Package robot_localization Robot_localization tập hợp nút ước tính trạng thái, nút triển khai ước tính trạng thái phi tuyến tính cho rơ-bốt di chuyển khơng gian 3D Nó chứa hai nút ước tính trạng thái, ekf_localization_node ukf_localization_node Ngồi ra, robot_localization cung cấp navsat_transform_node, hỗ trợ tích hợp liệu GPS Tất nút ước tính trạng thái robot_localization có chung tính năng, cụ thể là: Có thể kết hợp nhiều cảm biến tùy ý Các nút không hạn chế số lượng nguồn đầu vào Ví dụ: robot có nhiều IMU nhiều nguồn thơng tin đo đường, nút ước tính trạng thái robot_localization hỗ trợ tất chúng Hỗ trợ nhiều loại tín hiệu ROS Tất nút ước tính trạng thái robot_localization nhận thông báo nav_msgs/Odometry, sensor_msgs/Imu, geometry_msgs/PoseWithCovarianceStamped geometry_msgs/TwistWithCovarianceStamped Tùy chỉnh đầu vào cảm biến Nếu thông báo cảm biến định chứa liệu mà bạn không muốn đưa vào ước tính trạng thái mình, nút ước tính trạng thái robot_localization cho phép loại trừ liệu sở cảm biến Ước lượng liên tục Mỗi nút ước tính trạng thái robot_localization bắt đầu ước tính trạng thái phương tiện nhận phép đo Nếu có Báo cáo đồ án GVHD: Nguyễn Vĩnh Hảo khoảng nghỉ liệu cảm biến (nghĩa khoảng thời gian dài không nhận liệu nào), lọc tiếp tục ước tính trạng thái rơ-bốt thơng qua mơ hình chuyển động nội Trong đồ án sử dụng nút ekf_localization_node ứng dụng lọc Kalmann mở rộng tích hợp sẵn kết hợp thơng tin từ IMU, cụ thể tín hiệu sensor_msgs/imu thông tin từ rtabmap để xây dựng đồ 3D Launch file kết hợp gốc tọa độ IMU camera ASUS: Launch file kết hợp IMU Rtabmap Báo cáo đồ án GVHD: Nguyễn Vĩnh Hảo [true, true, true, false, false, false, true, true, true, false, false, false, false, false, false] [ false, false, false, 10 Báo cáo đồ án true, false, false, false, true, false, [ false, false, false, true, false, false, false, true, true, [0.001, 0, 0, 0, 11 0, 0.015] 0, 0, 0, 1e-9] - Package tinyImu Là package mã nguồn mở sử dụng tảng Arduino kết hợp với cảm biến IMU MPU6050 Package bao gồm hai phần, publisher sử dụng thư viện kèm theo thư viện them rosserial để giao tiếp với ROS việc gửi liệu thô từ IMU xuống máy 12 Báo cáo đồ án GVHD: Nguyễn Vĩnh Hảo tính Phần thứ hai lọc liệu máy tính mang chức lọc liệu thô nhận từ Arduino chuyển đổi thành dạng tín hiệu sensor_msgs/imu để package robot_locaclization đọc nhận giá trị Publisher Arduino: #include "I2Cdev.h" #include "MPU6050.h" #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE #include "Wire.h" #endif MPU6050 accelgyro; int16_t ax, ay, az, gx, gy, gz; #include #include #include #include ros::NodeHandle nh; tiny_msgs::tinyIMU imu_msg; ros::Publisher imu_pub("tinyImu", &imu_msg); uint32_t seq; void setup() { // join I2C bus (I2Cdev library doesn't this automatically) #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin(); #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire::setup(400, true); #endif nh.initNode(); nh.advertise(imu_pub); 13 Báo cáo đồ án accelgyro.initialize(); seq = 0; void loop() { seq++; accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); imu_msg.header.stamp = nh.now(); imu_msg.header.frame_id = 0; imu_msg.header.seq = seq; imu_msg.accel.x = ax; imu_msg.accel.y = ay; imu_msg.accel.z = az; imu_msg.gyro.x = gx; imu_msg.gyro.y = gy; imu_msg.gyro.z = gz; imu_pub.publish( &imu_msg ); nh.spinOnce(); } Khởi động đọc liệu ROS: 14 Báo cáo đồ án GVHD: Nguyễn Vĩnh Hảo 15 Báo cáo đồ án GVHD: Nguyễn Vĩnh Hảo Point Cloud - Point cloud hiểu đám mây điểm Đây tập hợp điểm liệu không gian 3D Những điểm tạo nên hình dạng đối tượng khơng gian 3D Mỗi điểm Point cloud có toạ độ tương ứng x, y, z có độ xác cao Như vậy, việc vào Point cloud hồn tồn xác định vật thể đối tượng quy mô chi tiết, cụ thể - Point cloud tạo máy scan 3D, máy quét 3D phần mềm, dụng cụ thiết bị đo, chụp đối tượng Thông dụng dùng máy scan 3D Với hình thức chụp ảnh dùng thêm phần mềm hỗ trợ xử lý để tạo Point cloud cho đối tượng chụp Có thể dùng máy scan cầm tay, máy scan công nghiệp… tùy vào đối tượng cần scan, quét hay mục đích sử dụng Point cloud thực cho đối tượng có màu khơng có màu tương ứng Tuỳ vào công cụ sử dụng mà Point cloud có màu hay khơng có màu sắc Điều không ảnh hưởng đến chất lượng Point cloud đối tượng - Có thể thực việc ghép nhiều liệu Point cloud với phần mềm hỗ trợ để phục vụ nhu cầu sử dụng theo yêu cầu dự án - Từ sở tạo Point cloud phương pháp scan 3D tối ưu chi phí, thời gian thực với chất lượng liệu phục vụ cho mục đích sử dụng bảo đảm mức độ cao - Dựa vào Point cloud làm sở liệu quan trọng để tạo nên mẫu 3D, phối cảnh 3D, dựng mơ hình, … Với ngành nghề cụ thể Point cloud vào chi tiết ứng dụng mang tính thực tế - Khảo sát địa chất: Point cloud tham gia trình khảo sát địa chất nhằm đưa dự báo, đánh giá trước cơng trình triển khai thực tế Với hỗ trợ công nghệ 3D, dụng cụ trang thiết bị liên quan công tác nghiên cứu, đánh 16 Báo cáo đồ án GVHD: Nguyễn Vĩnh Hảo giá điều kiện địa chất cơng trình địa điểm xây dựng Quá trình giúp xác định cấu trúc đất, tính chất lý lớp đất nền, điều kiện nước đất tai biến địa chất phục vụ cho công tác quy hoạch, thiết kế xử lý móng Các dạng cơng tác khảo sát địa chất cơng trình bao gồm: khoan, đào, xuyên tĩnh, xuyên động, địa vật lý, nén tĩnh, nén ngang, cắt cánh… Tuỳ vào cơng trình mà có yêu cầu hạng mục thực khác Khảo sát địa chất ứng dụng cho ngành như: xây dựng, điện lực, cầu đường, … - Lập trạng: Dữ liệu Point cloud sử dụng hiệu cho việc lập trạng đối tượng Trong ngành xây dựng, việc lập trạng có ý nghĩa lớn để đưa đề xuất cho cơng trình dự án cần thực Ví dụ dùng để đề xuất phương án cải tạo, phương án thi công, … - Lưu trữ: Cũng nhờ công nghệ 3D việc tạo Point cloud có độ xác mà ứng dụng cho ngành mang tính bảo tồn, nghiên cứu Những mẫu 3D lưu lưu giữ làm mẫu nguồn liệu quý giá cho nhiều mục đích sử dụng khác Kết Để demo cho kết tìm hiểu, nhóm thực quét xây dựng 3D phịng với hai trạng thái, tích hợp IMU khơng tích hợp IMU để từ rút nhận xét đề xuất cải tiến - Khơng tích hợp IMU: 17 Báo cáo đồ án GVHD: Nguyễn Vĩnh Hảo - Có tích hợp IMU: 18 Báo cáo đồ án GVHD: Nguyễn Vĩnh Hảo 19 Báo cáo đồ án GVHD: Nguyễn Vĩnh Hảo 20 Báo cáo đồ án GVHD: Nguyễn Vĩnh Hảo 21 Báo cáo đồ án GVHD: Nguyễn Vĩnh Hảo - Scan lỗi Nhận xét đề xuất cải tiến Ứng dụng thực với mục đích mong muốn nhiên xét tổng quan kết cho hệ thống tệ Sau tích hợp them thơng tin từ cảm biến gia tốc, vị trí ước tính hệ thống xảy sai lệch lớn lấy thông tin từ Rtabmap để xây dựng đồ 3D, thấy mục scan lỗi 22 Báo cáo đồ án GVHD: Nguyễn Vĩnh Hảo Tuy nhiên sau liệu ổn định hệ thống cho kết tốt so với khơng có IMU Có IMU Khơng có IMU Có thể thấy bờ tường thẳng có tượng đè lên Đề xuất giải quyết: Cải tiến publisher filter IMU, thay Arduino stm32 để đường truyền ổn định hơn, tạo điều kiện kết hợp nhiều cảm biến Đồng thời giới hạn sử dụng góc quay từ liệu IMU gửi để tránh sai lệch lớn dựng đồ Hướng lên đồ án: lên thực đồ án tốt nghiệp thực hệ thống mapping gắn robot di động, ví dụ turtle bot, tích hợp thêm liệu từ encoder để xác định quãng đường di chuyển camera, góp phần xây dựng đồ xác 23 Báo cáo đồ án GVHD: Nguyễn Vĩnh Hảo TÀI LIỆU THAM KHẢO [1] Vũ Minh Hoàng, Luận văn Thạc sĩ: Xây dựng đồ sử camera RGBD kết hợp IMU tảng ROS, Trường Đại Học Công Nghệ, Đại Học Quốc Gia Hà Nội, Hà Nội, 2016 [2] Nguyễn Sỹ Anh Luận văn Thạc sĩ: Nhận diện dạng bề mặt phục vụ phân loại vật thể sử dụng camera RGBD, Trường Đại Học Bách Khoa, Đại Học Quốc Gia Thành Phố Hồ Chí Minh, Thành phố Hồ CHí Minh, thánh 12 năm 2015 [3] Ros Tutorials, Bách Khoa toàn thư mở Wikipedia Available:http://wiki.ros.org/ROS/Tutorials [4] Tutorial of RTABmap https://github.com/introlab/rtabmap/wiki/Tutorials [5] Felix Endres, PhD Thesis, ‘Robot Perception of Indoor Navigation’, Technical Faculty, Albert-Ludwigs University of Freiburg, August, 2015 [6] Alfredo Chavez, Henrik Karstoft, ‘Map Building Based on a Xtion Pro Live RGBD and a Laser Sensors’, Faculty of Information Technology (FIT), Brno University of Technology, Czech Republic, Aarhus University, School of Engineering, Finlandsgade 22, 8200 Aarhus, Denmark, 2014 [7] Craig Mouser, Realtime 3D Mapping, Optimization and Rendering Based on a Depth Sensor’, Bachelor of Science in Computer Engineering, Kansas State University, 2012 24

Ngày đăng: 08/05/2023, 17:52

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w