ĐỒ ÁN XÂY DỰNG HỆ THỐNG QUÉT VÀ XÂY DỰNG MÔ HÌNH 2D VẬT THỂ SỬ DỤNG LIDAR Hệ thống có khả năng: Quét vật thể xây dựng lại hình ảnh vật thể trên bản đồ 2D trong bán kính tối đa 12m. Hiển thị liên tục hình ảnh 2D của vật thể theo thời gian thực trên màn hình máy tính. Có chức năng thay đổi tần số quét và phạm vi quét phù hợp với nhu cầu sử dụng. Có khả năng đo góc và khoảng cách giữa hệ thống và vật thể trong phạm vi đo. LiDAR viết tắt của “Light Detection And Ranging”. LiDAR tương tự như tạo ảnh radar cả hai loại cảm biến đều được thiết kế truyền tải dần số hẹp và sau đó nhận năng lượng tán xạ trở lại để tạo ảnh bề mặt trái đất. Hai họ cảm biến được sử dụng đều là loại chủ động (active), có trang bị nguồn của chính nó, tức là nó độc lập với chiếu xạ của mặt trời. LiDAR đã được phát triển từ những năm 1960 và nó đã được dùng trong việc nghiên cứu khí quyển, khí tượng, địa chất bởi Hiệp hội khí tượng thủy văn Mỹ (NOAA) cũng như Tổ chức khảo sát địa lý Hoa Kỳ. Năm 1994, NASA cũng đã dùng các hệ thống LiDAR bay theo quỹ đạo nhằm giúp giới khoa học hiểu rõ hơn về sự thay đổi của khí hậu cũng như để vẽ bản đồ địa hình của các hành tình. Gần đây nhất, thành phố New York sử dụng LiDAR để tạo bản đồ 3D của khu Manhattan để phục vụ cho việc cải tiến kế hoạch chống ngập. LiDAR cho phép các nhà khoa học nghiên cứu cả môi trường tự nhiên lẫn môi trường nhân tạo với độ chính xác và độ linh hoạt cao. Cơ quan khí tượng thủy văn Mỹ còn dùng LiDAR để vẽ bản đồ đường bờ biển, cung cấp dữ liệu cho các hệ thống thông tin địa lý, trợ giúp cho những chiến dịch phản ứng nhanh... Quan trọng hơn nữa là nó có thể so sánh các tính chất của năng lượng truyền đi và trờ lại – ví dụ như định thời xung, bước sóng, góc, …. Do đó, việc đánh giá không chỉ dựa vào độ sáng của năng lượng tán xạ trở lại mà còn bao gồm vị trí góc, thay đổi tần số, thời gian xung trở lại. Hiểu biết các tính chất này của LiDAR, giống như dữ liệu thu thập được từ các cảm biến vi ba chủ động, tạo khả năng phân tích để trích xuất các thông tin mô tả cấu trúc của đất và đặc điểm thực vật không được truyền tải bởi các cảm biến quang thông thường. LiDAR dựa trên một số ứng dụng của Laser, có dạng “coherent light”, nghĩa là ánh sáng với dải rất hẹp của bước sóng hay ánh sáng màu tinh khiết.
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CƠ KHÍ ĐỒ ÁN ĐO LƯỜNG VÀ ĐIỀU KHIỂN TÊN ĐỀ TÀI: XÂY DỰNG HỆ THỐNG QUÉT VÀ XÂY DỰNG MƠ HÌNH 2D CỦA VẬT THỂ SỬ DỤNG LIDAR Giáo viên hướng dẫn: Ts.Nguyễn Văn Trường Nhóm sinh viên thực hiện: Trần Đức Anh Trần Tuấn Anh Trương Quốc Hồng Anh Hà Nội -2021 PHIẾU HỌC TẬP CÁ NHÂN/NHĨM I Thông tin chung Tên lớp : Đồ án Đo lường điều khiển Khóa: 14 Tên nhóm : Nhóm Họ tên thành viên: Trần Đức Anh Trần Tuấn Anh Trương Quốc Hoàng Anh II Nội dung học tập Tên chủ đề: Xây dựng hệ thống qt vật cản xây dựng mơ hình 2D vật thể sử dụng cảm biến Lidar Hoạt động sinh viên - Nội dung 1: Tổng quan hệ thống (L1.1) - Nội dung 2: Xây dựng mơ hình hệ thống (L1.1; L1.2) - Nội dung 3: Chế tạo thử nghiệm hệ thống (L2.1) - Nội dung 4: Viết báo cáo Sản phẩm nghiên cứu: Mơ hình sản phẩm báo cáo thu hoạch III Nhiệm vụ học tập Hoàn thành đồ án theo thời gian quy định (từ ngày 13/09/2021 đến ngày 02/12/2021) Báo cáo nội dung nghiên cứu theo chủ đề giao trước hội đồng đánh giá IV Học liệu thực tiểu luận, tập lớn, đồ án/dự án Tài liệu học tập: Giáo trình mơn học Cảm biến hệ thống đo, vi điều khiển Phương tiện, nguyên liệu thực tiểu luận, tập lớn, đồ án/dự án (nếu có): Máy tính, linh kiện dụng cụ điện tử theo nhu cầu sử dụng KHOA/TRUNG TÂM GIÁO VIÊN HƯỚNG DẪN T.S Nguyễn Anh Tú T.S Nguyễn Văn Trường MƠ TẢ KỸ THUẬT Mơ tả nhiệm vụ cơng nghệ Hệ thống có khả năng: - Quét vật thể xây dựng lại hình ảnh vật thể đồ 2D bán kính tối đa 12m - Hiển thị liên tục hình ảnh 2D vật thể theo thời gian thực hình máy tính - Có chức thay đổi tần số qt phạm vi quét phù hợp với nhu cầu sử dụng - Có khả đo góc khoảng cách hệ thống vật thể phạm vi đo Cấu trúc thiết bị Thiết bị Loại sử dụng Cảm biến laser Cảm biến lidar Mạch chuyển đổi xử lí tín hiệu ADC ngồi chíp Bộ điều khiển Vi điều khiển/ PLC/PC Tín hiệu cảnh báo Trên LCD/ Đèn/Cịi Đặc tính kỹ thuật Thơng số Giá trị Giới hạn quét Tối đa 12m Tần số quét 10Hz Điện áp sử dụng 5V DC Góc quay 360° Khả lấy mẫu 8000 samples per time Chuẩn giao tiếp UART Nội dung báo cáo - Bản vẽ TT Tên vẽ Khổ giấy Số lượng Bản vẽ sơ đồ hệ thống A3 2 Lưu đồ thuật toán điều khiển hệ thống A3 - Báo cáo Chương Tổng quan hệ thống 1.1 Giới thiệu chung 1.2 Các yêu cầu 1.3 Phương pháp, phạm vi giới hạn nghiên cứu 1.4 Ý nghĩa thực tiễn Chương Xây dựng mơ hình hệ thống 2.1 Thiết kế sơ đồ khối hệ thống 2.2 Phân tích lựa chọn cảm biến 2.3 Phân tích lựa chọn điều khiển 2.4 Thiết kế mạch đo xử lý tín hiệu 2.5 Mơ hình hóa mơ hệ thống (Nếu có) Chương 3: Chế tạo thử nghiệm hệ thống 3.1 Chế tạo phận khí 3.2 Chế tạo phận điện - điện tử 3.3 Xây dựng chương trình điều khiển 3.4 Thử nghiệm đánh giá hệ thống Kết Luận MỤC LỤC DANH MỤC HÌNH ẢNH DANH MỤC BẢNG BIỂU CHƯƠNG I: TỔNG QUAN VỀ HỆ THỐNG 1.1 Giới thiệu chung 1.2 Các yêu cầu 12 1.3 Phương pháp nghiên cứu 12 1.3.1 Phương pháp nghiên cứu lý thuyết 12 1.3.2 Phương pháp nghiên cứu thực nghiệm 12 1.4 Phạm vi giới hạn nghiên cứu 13 1.5 Ý nghĩa thực tiễn 13 CHƯƠNG II XÂY DỰNG CHƯƠNG TRÌNH HỆ THỐNG 13 2.1 Thiết kế sơ đồ khối 13 2.2 Phân tích lựa chọn cảm biến 13 2.2.1 Ưu điểm 15 2.2.2 Nhược điểm 16 2.2.3 Cấu tạo cảm biến RPLIDAR A1M8 R5 16 2.2.4 Nguyên lý hoạt động cảm biến 18 2.2.5 Thông số kỹ thuật cảm biến 19 2.3 Phân tích lựa chọn điều khiển 20 2.4 Thiết kế mạch 24 CHƯƠNG III: MƠ HÌNH HĨA VÀ MƠ PHỎNG HỆ THỐNG 25 3.1 Thiết kế hệ thống chi tiết 25 3.1.1 Robot di động 25 3.2 Chế tạo phận điện tử 27 3.2.1 Các thành phần 28 3.2.2 Lắp ráp thiết bị 31 3.2.3 Chạy chương trình điều khiển 32 3.3 Xây dựng chương trình điều khiển 33 3.3.1 Lưu đồ thuật toán 33 3.3.2 Thiết kế mạch 34 3.4 Mô hệ thống 34 3.4.1 Mô không gian làm việc HĐH Ubutu 34 PHỤ LỤC 36 DANH MỤC HÌNH ẢNH Hình 1.1 1: Mơ tả q trình thu liệu LiDAR 10 Hình 1.1 Cơng trình quần thể di tích Caracol dựng lại cơngnghệ LiDAR 12 Hình 2.1 1: Sơ đồ khối 13 Hình 2.2 1: Các loại cảm biến LIDAR thị trường 14 Hình 2.2 Sản phẩm cảm biến RPLIDARA1M8 R5 15 Hình 2.2 Mơ hình cảm biến RPLIDAR A1M8 R5 phần mềm Solidworks 16 Hình 2.2 Cấu tạo bên cảm biến 16 Hình 2.2 Các chân cảm biến 17 Hình 2.2 Nguyên lý hoạt động cảm biến 18 Hình 2.2 Kết LiDAR quét hiển thị phần mềm hãng 19 Hình 2.2 Mối quan hệ khoảng cách thay đổi độ phân giải 20 Hình 2.3 Bộ điều khiển OpenCR1,0 21 Hình 2.3 Vi điều khiển OpenCR 22 Hình 2.3 Các cổng vào OpenCR 23 Hình 2.4 Thiết kế mạch 24 Hình 3.2 Lidar Sensor 28 Hình 3.2 Bản vẽ hình chiếu Lidar Sensor 28 Hình 3.2 Raspberry pi3 29 Hình 3.2 Bản vẽ hình chiếu Raspberry pi3 29 Hình 3.2 OpenCR 30 Hình 3.2 Bản vẽ hình chiếu OpenCR 30 Hình 3.2 Miếng thân robot solidworks 31 Hình 3.2 Bản vẽ hình chiếu miếng thân robot 31 Hình 3.2 Lắp ráp robot turtlebot3 32 Hình 3.3 Lưu đồ thuật toán 33 Hình 3.3 Thiết kế mạch 34 Hình 3.4 Bản đồ mơ 34 Hình 3.4 Quá trình mobile robot quét đồ mô 35 Hình 3.4 Kết thu mobile robot quét xong map mô 35 DANH MỤC BẢNG BIỂU Bảng 2.1 Bảng phân biệt loại cảm biến Lidar 13 Bảng 2.2 Bảng thông số chức chân 18 Bảng 2.2 Thông số kỹ thuật cảm biến 20 Bảng 2.3 Bảng thông số kỹ thuật OpenCR 22 Bảng 3.1 Bảng danh sách thiết bị 27 CHƯƠNG I: TỔNG QUAN VỀ HỆ THỐNG 1.1 Giới thiệu chung - LiDAR viết tắt “Light Detection And Ranging” LiDAR tương tự tạo ảnh radar - hai loại cảm biến thiết kế truyền tải dần số hẹp sau nhận lượng tán xạ trở lại để tạo ảnh bề mặt trái đất Hai họ cảm biến sử dụng loại chủ động (active), có trang bị nguồn nó, tức độc lập với chiếu xạ mặt trời - LiDAR phát triển từ năm 1960 dùng việc nghiên cứu khí quyển, khí tượng, địa chất Hiệp hội khí tượng thủy văn Mỹ (NOAA) Tổ chức khảo sát địa lý Hoa Kỳ Năm 1994, NASA dùng hệ thống LiDAR bay theo quỹ đạo nhằm giúp giới khoa học hiểu rõ thay đổi khí hậu để vẽ đồ địa hình hành tình Gần nhất, thành phố New York sử dụng LiDAR để tạo đồ 3D khu Manhattan để phục vụ cho việc cải tiến kế hoạch chống ngập LiDAR cho phép nhà khoa học nghiên cứu môi trường tự nhiên lẫn môi trường nhân tạo với độ xác độ linh hoạt cao Cơ quan khí tượng thủy văn Mỹ cịn dùng LiDAR để vẽ đồ đường bờ biển, cung cấp liệu cho hệ thống thông tin địa lý, trợ giúp cho chiến dịch phản ứng nhanh - Quan trọng so sánh tính chất lượng truyền trờ lại – ví dụ định thời xung, bước sóng, góc, … Do đó, việc đánh giá khơng dựa vào độ sáng lượng tán xạ trở lại mà bao gồm vị trí góc, thay đổi tần số, thời gian xung trở lại Hiểu biết tính chất LiDAR, giống liệu thu thập từ cảm biến vi ba chủ động, tạo khả phân tích để trích xuất thơng tin mơ tả cấu trúc đất đặc điểm thực vật không truyền tải cảm biến quang thông thường LiDAR dựa số ứng dụng Laser, có dạng “coherent light”, nghĩa ánh sáng với dải hẹp bước sóng hay ánh sáng màu tinh khiết Hình 1.1 1: Mơ tả q trình thu liệu LiDAR − Một số ứng dụng công nghệ LiDAR sống: o Khảo sát địa hình lập đồ Với sản phẩm sơ cấp mơ hình số địa hình (DEM – Digital Elevation Model) mơ hình số bề mặt (DSM – Digital Surface Model) với độ phân giải độ xác cao, LiDAR ứng dụng nhiều lĩnh vực, đặc biệt ứng dụng cần thành lập đồ tỷ lệ lớn, ứng dụng liên quan tới phát triển quản lý trì hạ tầng sở o Lâm nghiệp Chủ yếu ứng dụng LiDAR để đánh giá thống kê sản lượng gỗ, phân tích điều kiện sống hoang dã, tương quan yếu tố tán, độ dày tán, dạng lá… tới sản lượng gỗ rừng, ước tính sinh khối, trữ lượng gỗ tham số lâm nghiệp khác o Lập đồ ngập úng Dữ liệu LiDAR với độ xác độ phân giải cao sử dụng hiệu xây dựng mô hình ngập úng, nâng cao độ xác mơ hình, xác định ranh giới ngập úng xác, cung cấp thêm nhiều thơng tin đối tượng/địa hình chịu ảnh hưởng, thành lập đồ nguy ngập úng, vùng ưu tiên sơ tán, tiếp tục phân tích để thành đồ suy dẫn đồ lũ lụt,.… o Các ứng dụng cho đới duyên hải Với công cụ thành lập đồ phù hợp, liệu LiDAR với độ xác cao, mật độ điểm liệu dày đặc, thời gian thu thập liệu ngắn… phù hợp cho ứng dụng để quản lý dự báo xói mịn bờ biển, đánh giá dự báo bồi lắng, quan trắc dự báo ngập lụt ven biển 3.3.2 Thiết kế mạch Hình 3.3 Thiết kế mạch 3.4 Mơ hệ thống 3.4.1 Mô không gian làm việc HĐH Ubutu Nhóm định thực mơ hệ điều hành Ubuntu môi trường hỗ trợ thuận tiện cho việc điều khiển lập trình robot Hình vẽ 3d khơng gian thực phần mềm gazebo Quá trình chạy kết thu thực phần mềm rviz Hình 3.4 Bản đồ mơ Sau có khơng gian mơ phỏng, tiến hành chạy chương trình điều khiển robot Robot điều hiển xung quanh đồ để thu thập xử lý liệu cho kết đồ 2D hồn chỉnh Hình 3.4 Q trình mobile robot qt đồ mơ Hình 3.4 Kết thu mobile robot quét xong map mô Tài liệu tham khảo phần mềm hỗ trợ Tài liệu tham khảo http://wiki.ros.org http://emanual.robotis.com http://cad.onshape.com Phần mềm hỗ trợ Phần mềm Solid Works Phần mềm Gazebo Phần mềm Rviz Phần mềm Auto Cad Phụ Lục Code cho chương trình điều khiển import rospy from geometry_msgs.msg import Twist import sys, select, os if os.name == 'nt': import msvcrt else: import tty, termios BURGER_MAX_LIN_VEL = 0.22 BURGER_MAX_ANG_VEL = 2.84 WAFFLE_MAX_LIN_VEL = 0.26 WAFFLE_MAX_ANG_VEL = 1.82 LIN_VEL_STEP_SIZE = 0.01 ANG_VEL_STEP_SIZE = 0.1 msg = """ Control Your TurtleBot3! Moving around: w a s d x w/x : increase/decrease linear velocity (Burger : ~ 0.22, Waffle and Waffle Pi : ~ 0.26) a/d : increase/decrease angular velocity (Burger : ~ 2.84, Waffle and Waffle Pi : ~ 1.82) space key, s : force stop CTRL-C to quit """ e = """ Communications Failed """ def getKey(): if os.name == 'nt': if sys.version_info[0] >= 3: return msvcrt.getch().decode() else: return msvcrt.getch() tty.setraw(sys.stdin.fileno()) rlist, _, _ = select.select([sys.stdin], [], [], 0.1) if rlist: key = sys.stdin.read(1) else: key = '' termios.tcsetattr(sys.stdin, termios.TCSADRAIN, settings) return key def vels(target_linear_vel, target_angular_vel): return "currently:\tlinear vel %s\t angular vel %s " % (target_linear_vel,target_angular_vel) def makeSimpleProfile(output, input, slop): if input > output: output = min( input, output + slop ) elif input < output: output = max( input, output - slop ) else: output = input return output def constrain(input, low, high): if input < low: input = low elif input > high: input = high else: input = input return input def checkLinearLimitVelocity(vel): if turtlebot3_model == "burger": vel = constrain(vel, -BURGER_MAX_LIN_VEL, BURGER_MAX_LIN_VEL) elif turtlebot3_model == "waffle" or turtlebot3_model == "waffle_pi": vel = constrain(vel, -WAFFLE_MAX_LIN_VEL, WAFFLE_MAX_LIN_VEL) else: vel = constrain(vel, -BURGER_MAX_LIN_VEL, BURGER_MAX_LIN_VEL) return vel def checkAngularLimitVelocity(vel): if turtlebot3_model == "burger": vel = constrain(vel, -BURGER_MAX_ANG_VEL, BURGER_MAX_ANG_VEL) elif turtlebot3_model == "waffle" or turtlebot3_model == "waffle_pi": vel = constrain(vel, -WAFFLE_MAX_ANG_VEL, WAFFLE_MAX_ANG_VEL) else: vel = constrain(vel, -BURGER_MAX_ANG_VEL, BURGER_MAX_ANG_VEL) return vel if name ==" main ": if os.name != 'nt': settings = termios.tcgetattr(sys.stdin) rospy.init_node('turtlebot3_teleop') pub = rospy.Publisher('cmd_vel', Twist, queue_size=10) turtlebot3_model = rospy.get_param("model", "burger") status = target_linear_vel = 0.0 target_angular_vel = 0.0 control_linear_vel = 0.0 control_angular_vel = 0.0 try: print(msg) while(1): key = getKey() if key == 'w' : target_linear_vel = checkLinearLimitVelocity(target_linear_vel + LIN_VEL_STEP_SIZE) status = status + print(vels(target_linear_vel,target_angular_vel)) elif key == 'x' : target_linear_vel = checkLinearLimitVelocity(target_linear_vel LIN_VEL_STEP_SIZE) status = status + print(vels(target_linear_vel,target_angular_vel)) elif key == 'a' : target_angular_vel = checkAngularLimitVelocity(target_angular_vel + ANG_VEL_STEP_SIZE) status = status + print(vels(target_linear_vel,target_angular_vel)) elif key == 'd' : target_angular_vel = checkAngularLimitVelocity(target_angular_vel ANG_VEL_STEP_SIZE) status = status + print(vels(target_linear_vel,target_angular_vel)) elif key == ' ' or key == 's' : target_linear_vel = 0.0 control_linear_vel = 0.0 target_angular_vel = 0.0 control_angular_vel = 0.0 print(vels(target_linear_vel, target_angular_vel)) else: if (key == '\x03'): break if status == 20 : print(msg) status = twist = Twist() control_linear_vel = makeSimpleProfile(control_linear_vel, target_linear_vel, (LIN_VEL_STEP_SIZE/2.0)) twist.linear.x = control_linear_vel; twist.linear.y = 0.0; twist.linear.z = 0.0 control_angular_vel = makeSimpleProfile(control_angular_vel, target_angular_vel, (ANG_VEL_STEP_SIZE/2.0)) twist.angular.x = 0.0; twist.angular.y = 0.0; twist.angular.z = control_angular_vel pub.publish(twist) except: print(e) finally: twist = Twist() twist.linear.x = 0.0; twist.linear.y = 0.0; twist.linear.z = 0.0 twist.angular.x = 0.0; twist.angular.y = 0.0; twist.angular.z = 0.0 pub.publish(twist) if os.name != 'nt': termios.tcsetattr(sys.stdin, termios.TCSADRAIN, settings) Các vẽ khí Tên vẽ Bản vẽ lắp Bản vẽ tách Các vẽ chi tiết Kích thước A3 A3 A4 Số Lượng 1 19 73 109.64 NAME UNLESS OTHERWISE SPECIFIED, DIMENSIONS ARE IN MILLIMETERS DRAWN SIGNATURE TRAN TUAN ANH DATE 2021-12-14 ANGULAR = ± ° CHECKED TITLE SURFACE FINISH APPROVED DO NOT SCALE DRAWING BREAK ALL SHARP EDGES AND REMOVE BURRS FIRST ANGLE PROJECTION SIZE MATERIAL FINISH REV DWG NO A4 SCALE WEIGHT 1:2 SHEET of ... đỡ Lidar, Chase vẽ xong đồ 20 nghìn hecta Hình 1.1 Cơng trình quần thể di tích Caracol dựng lại côngnghệ LiDAR 1.2 Các yêu cầu Hệ thống có khả năng: o Quét vật thể xây dựng lại hình ảnh vật thể. .. mơ hình 2D vật thể sử dụng cảm biến Lidar Hoạt động sinh viên - Nội dung 1: Tổng quan hệ thống (L1.1) - Nội dung 2: Xây dựng mơ hình hệ thống (L1.1; L1.2) - Nội dung 3: Chế tạo thử nghiệm hệ thống. .. dựng lại hình ảnh vật thể đồ 2D bán kính tối đa 12m - Hiển thị liên tục hình ảnh 2D vật thể theo thời gian thực hình máy tính - Có chức thay đổi tần số quét phạm vi quét phù hợp với nhu cầu sử