Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 100 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
100
Dung lượng
5,71 MB
Nội dung
BỘ CƠNG THƯƠNG KHOA CƠ KHÍ TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP HÀ NỘI ĐỒ ÁN TỐT NGHIỆP CHUYÊN NGÀNH CÔNG NGHỆ KĨ THUẬT CƠ ĐIỆN TỬ ĐỀ TÀI NGHIÊN CỨU, THIẾT KẾ VÀ CHẾ TẠO ROBOT DI ĐỘNG DẪN ĐƯỜNG SỬ DỤNG GIẢI THUẬT CÂY NGẪU NHIÊN Giáo viên hướng dẫn : TS Trần Ngọc Tiến Sinh viên thực : Nguyễn Đình Khơi Lớp_Khóa 2018600893 Phạm Đồng Hải 2018601053 Nguyễn Xuân Được 2018601154 : K13 Hà Nội 2022 LỜI MỞ ĐẦU Nền công nghiệp giới đà phát triển ngày cao với tốc độ chóng mặt Trong vấn đề tự động điều khiển đặt lên hàng đầu q trình nghiên cứu ứng dụng cơng nghệ vào sản xuất, đời sống thay sức lao động người Với đời ngành điện tử hỗ trợ thay người nhiều lĩnh vực từ kinh tế, y tế, giáo dục, quốc phòng – an ninh nhiều lĩnh vực khác hàng không, vũ trụ Cho nên ứng dụng ngành điện tử vô sâu rộng ảnh hưởng đến linh vực đời sống Có thể nói Robot mang tới cho sống người sống mới, cách trải nghiệm sống đơi cịn người bạn Những hãng Robot (RB) từ nước tiếng giới từ Đức, Nhật bản, Nga, Mỹ ngày khẳng định diện RB phần không thiếu sống tương lai phía trước Nó xuất tất lĩnh vực từ khoa học vĩ mô vi mơ ngày đa dạng Chính nhóm nghiên cứu thực đề tài “Nghiên cứu, thiết kế chế tạo robot di động dẫn đường sử dụng giải thuật ngẫu nhiên” để ứng dụng, phát triển hệ thống robot di động tự hành cơng nghiệp sống Nhóm nghiên cứu chúng em xin gửi lời cảm ơn chân thành tới thầy giáo TS Trần Ngọc Tiến, người tận tình giúp đỡ nhóm hồn thành đề tài Tuy vậy, dù cố gắng đồ án tốt nghiệp chúng em nhiều thiếu sót nên mong giúp đỡ đóng góp thầy Sinh viên thực Nguyễn Đình Khôi Phạm Đồng Hải Nguyễn Xuân Được NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Hà Nội, Ngày tháng năm 2022 Chữ ký GVHD NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Hà Nội, Ngày tháng năm 2022 Chữ ký GVPB MỤC LỤC Lời mở đầu .1 Mục lục Danh mục hình ảnh .10 Danh mục bảng biểu 13 CHƯƠNG 1: Tổng quan mobile robot 14 1.1 Lịch sử nghiên cứu 14 1.2 Mục tiêu đề tài 15 1.3 Phương pháp thực đề tài 16 1.4 Dự kiến kết đạt 17 CHƯƠNG 2: Mơ hình toán học mobile robot 19 2.1 Mơ hình động học mobile robot 19 2.1.1 Phương trình chuyển động học thuận 21 2.1.2 Chuyển động học nghịch 24 2.2 Phương pháp khám phá 25 2.3 Phương pháp điều khiển tránh vật cản 29 2.4 Robot mô 29 2.4.1 Cài đặt cần thiết 29 2.4.1.1 Cài đặt Ubuntu 32 2.4.1.2 Cài ROS Ubuntu .32 2.4.1.3 Trình mơ Gazebo 35 2.4.1.4 Trình mơ Rviz .36 2.4.1.5 Phần mềm Meshlab 38 2.4.1.6 Rqt_mutiplot 38 2.4.2 Yêu cầu mô .41 2.4.3 Thao tác với ROS 42 2.5 Các yếu tố cần thiết để mô robot 44 2.5.1 Cài đặt cần thiết 44 2.5.2 Rrt_exploration .44 2.5.3 Rrt_exploration_tutorials 45 2.5.4 Navigation-kinetic-devel 46 2.5.5 Gmapping .46 2.5.6 Các thư mục 46 2.6 Mô ROS 51 2.6.1 Giao diện Gazebo 51 2.6.2 Mô Gazebo 55 2.6.2.1 Tạo giới 55 2.6.2.2 Khởi chạy lại Gazebo với giới vừa tạo 59 2.6.3 Sử dụng package rrt_exploration 61 2.6.4 Mô Rviz 61 2.6.5 Điều hướng robot 64 2.6.5.1 Đồ thị rqt_mutilplot 64 2.6.5.2 Điều hướng đồ thị 66 2.6.6 Khảo sát thông số liên quan 71 2.6.6.1 Góc quét 71 2.6.6.2 Tốc độ tăng trưởng 73 CHƯƠNG 3: Tính tốn, thiết kế robot 75 3.1 Tính tốn, thiết kế hệ thống khí 75 3.1.1 Tính tốn lựa chọn cấu truyền động 75 3.1.2 Tính toán thiết kế thân robot 81 3.2 Tính tốn, thiết kế hệ thống điều khiển 83 3.2.1 Mô tả hệ thống điều khiển 83 3.2.2 Thiết kế, lựa chọn hệ thống mạch điện 84 3.3 Chế tạo thử nghiệm robot 85 3.3.1 Kết nối wifi dây 85 3.3.2 Kết nối cảm biến RPLidar A1 85 3.3.2.1 RPLidar_ROS 85 3.3.2.2 Hector_Slam 86 3.3.3 Cài đặt kết nối Arduino IDE 88 3.3.4 Mơ hình giao tiếp ROS Arduino 89 3.3.5 Thiết lập 89 3.3.6 Tạo launch file 91 CHƯƠNG 4: Kết luận đề xuất 94 4.1 Kết luận 94 4.2 Hạn chế đề tài 94 4.3 Hướng phát triển đề tài 95 Tài liệu tham khảo .96 85 3.3 Chế tạo thử nghiệm robot 3.3.1 Kết nối wifi dây Kết nối Wifi Để kết nối wifi cần thêm Raspberry Để kết nối, tham khảo đường dẫn sau : Connecting to wifi Ưu điểm: Tiện lợi, dễ lắp đặt, thiết kế Nhược điểm: Cần cài đặt công kết nối Raspberry máy, chi phí đắt Kết nối dây Đơn giản với kết nối wifi kết nối có dây cần cắm trực tiếp vào máy tính thay sử dụng Raspberry Ưu điểm: Nhanh, dễ làm Nhược điểm: Do kết nối có dây nên yêu cầu phải thiết kế robot phù hợp để đặt máy tính kết nối 3.3.2 Kết nối cảm biến RPLidar A1 3.3.2.1 RPLidar_ROS Bài sử dụng RP LiDAR A1 để thiết kế, bước cài đặt trình điều khiển cần thiết Trình điều khiển gói ROS Để tiện lợi việc cài đặt RPLiDAR package, bạn lấy tệp RPLidar_Hector_SLAM Trong tệp nguồn Bên có chứa package rplindar_ros cần thiết để thực bước [8] Cho thư mục RPLidar_Hector_SLAM vào catkin_ws/src biên dịch catkin_make Sau tiến hành làm sau Kiểm tra cổng kết nối với rplidar: $ ls -l /dev |grep ttyUSB Thêm quyền truy cập thường dev/ttyUSB0 $ sudo chmod 666 /dev/ttyUSB0 Chạy nút rplidar tiến hành quan sát Rviz $ roslaunch rplidar_ros view_rplidar.launch Sau chạy, ta thấy chủ đề scan cảm biến Rviz 86 Hình 3.14 Dữ liệu nhận từ laser Rviz 3.3.2.2 Hector_Slam Vì tệp RPLidar_Hector_SLAM chứa package biên dịch từ lần bên Đối với việc tải package từ github cần phải làm sau: Sao chép kho lưu trữ GitHub vào không gian làm việc catkin/src chạy: $ git clone https://github.com/tu-darmstadt-ros-pkg/hector_slam.git $ cd $ catkin_make $ source devel/setup.bash Cần thực số sửa đổi tệp hướng dẫn Hector SLAM để chúng hoạt động Đầu tiên lưu ý đến phép biến đổi có sẵn cho \tf chủ đề hệ quy chiếu mà chúng sử dụng Quay lại với node rplidar cài trên, bật lên mở terminal chạy $ rostopic echo /tf Khi quan sát thấy sau: 87 Ở có khung /base_footprint /laser_frame Tiến đến tệp Catkin_ws/src/RPLidar_Hector_SLAM/hector_slam/hector_mapping/launch Mở mapping_default.launch sửa sau: Sửa thành Từ > Sửa thành Theo đường dẫn sau đến tệp tutorials.launch Catkin_ws/src/RPLidar_Hector_SLAM/hector_slam/hector_slam_launch/launch Sửa Thành Điều bỏ qua thời gian thực chạy thực tế Chạy nút rplidar hướng dẫn Tiếp tục chạy hector slam $ cd catkin_ws $ source devel/setup.bash $ cd src/RPLidar_Hector_SLAM/hector_slam/hector_slam_launch/launch $ roslaunch tutorial.launch Quan sát kết đạt 88 Hình 3.15 Lidar với gói hector slam 3.3.3 Cài đặt kết nối Arduino IDE Tổng quát Bo mạch Arduino sử dụng để xây dựng robot nhỏ có điều khiển đơn giản Nhưng với khả tính tốn phần mềm hạn chế, chuyển sang robot phức tạp Cách thơng thường tìm kiếm phần mềm dành riêng cho người máy, Arduino cung cấp phần điều khiển [7] Hệ điều hành Robot (ROS) khung phần mềm phần mềm trung gian cho người máy phổ biến sử dụng rộng rãi Đây tảng mã nguồn mở giúp nhà sản xuất nhà phát triển bắt đầu với phần mềm robot mà không cần phải phát minh lại bánh xe ROS cung cấp kiến trúc truyền thơng tiêu chuẩn để tích hợp, sử dụng, phát triển triển khai liền mạch thành phần khác hệ thống robot bao gồm điều khiển, nhận thức, lập kế hoạch Nó tảng bất khả tri ngơn ngữ với hỗ trợ giao tiếp đa tảng cho máy khác nơi triển khai chúng Arduino bảng phát triển vi điều khiển mã nguồn mở sử dụng nhiều nhất, cung cấp giao diện phần mềm-phần cứng dễ sử dụng cộng đồng người dùng ngày mở rộng Arduino tương thích với tất mạch kỹ thuật số tương tự thiết bị bên hỗ trợ giao diện truyền thông nối tiếp SPI, I2C UART Các khung phần mềm dựa ROS chạy thuật tốn quy trình cấp cao suy luận, lọc, tạo chiến lược chuyển động, thuật toán điều khiển, v.v Bộ điều khiển Arduino gắn rô bốt sử dụng để thực điều khiển cảm biến mức thấp / nhúng Nó bao gồm tất điều khiển động cơ, cảm biến nhiệt độ siêu âm, IMU mã hóa bánh xe, thiết bị khác 89 Hình 3.16 Sự tương tác Arduino ROS 3.3.4 Mô hình giao tiếp ROS Arduino Ở giao tiếp ROS máy với Arduino dựa mô hình nhiều người xuất người đăng kí (many-to-many publisher-subscriber) Ngồi cịn mơ hình giao tiếp khác (peer-to-peer) phương pháp dịch vụ Gói rosserial ROS sử dụng giao tiếp máy thu / phát không đồng (UART) phổ quát Arduino chuyển đổi bo mạch thành ROS node xuất thơng báo ROS đăng ký nhận thông báo Nhà phát hành Arduino ROS node gửi liệu (từ cảm biến trạng thái rô bốt) từ bảng tới máy chạy ROS người đăng ký nút Arduino ROS nhận hướng dẫn từ máy Thư viện Ros_lib Arduino cho phép bảng Arduino giao tiếp với ROS 3.3.5 Thiết lập Cài đặt thông công ROS chạy package Cài đặt Rosserials $ sudo apt-get install ros-kinetic-rosserial $ sudo apt-get install ros-kinetic-rosserial-arduino Cài đặt Arduino IDE Có thể cài đặt trực tiếp terminal tải cài đặt Tải Arduino IDE tại: Download Arduino IDE Nên chọn phù hợp với máy Giải nén tệp sau đó, nên để riêng thư mục arduino chạy từ 90 Mở cửa sổ Terminal chuyển vào thư mục gốc arduino-1.6.x chạy lệnh sau: $ sudo sh install.sh Lưu ý: Có thể xảy trường hợp bạn tải lên chương trình - sau chọn bo mạch cổng nối tiếp lại gặp lỗi mở cổng nối tiếp Nếu gặp lỗi này, bạn cần đặt quyền cổng nối tiếp $ ls -l /dev/ttyACM0 nhận terminal dòng tương tự $ crw-rw root dialout 155, may 16.01 ttyACM0 "0" cuối ACM số khác nhiều mục nhập bị trả lại Dữ liệu cần "dialout" (chủ sở hữu nhóm tệp) Thêm người dùng vào nhóm $ sudo chmod a+rw /dev/ttyACM0 *** Xử lý tiếp tục gặp lỗi - Đi đến Arduino/libraries/Rosserial_Arduino_library/src/ros - Mở chọn edit tệp: msg.h - Tại dòng 40 sửa thành #include - Tại dòng 68 180, bỏ std:: trước memcpy Cài đặt gói ros_lib IDE Trong giao diện Arduino IDE chọn Sketch > Include Library > Manage Library Tìm kiếm rosserial cài đặt Sau cài xong tiến đến Sketch > Include Library nhìn thấy thư viện Rosserial Arduino tải xuống Thực chương trình: Kết nối bo mạch Arduino Mega với máy tính xách tay qua cáp USB xác nhận bo mạch xuất danh sách cổng nối tiếp có sẵn Arduino IDE (Ở cơng cụ tool-> Board, port) File > Examples > Rosserial Arduino Library > HelloWorld Nạp chương trình chạy thử Nếu thành cơng, mở terminal chạy roscore 91 Tại terminal 2: rostopic list Lúc terminal có /rosout rosout_agg chưa kết nối cổng serial Nhập dịng lệnh sau terminal $ rosrun rosserial_python serial_node.py /dev/ttyACM0 Tại terminal 2: nhập lại rostopic list, lúc thấy danh sách chủ đề thêm rostopic echo /chatter quan sát 3.3.6 Tạo launch file Các bước để tạo launch file Một cách để thực thi chương trình ROS, khởi chạy nút thời điểm ROS có cơng cụ gọi roslaunch cho phép bạn khởi chạy nhiều nút lúc Mở terminal đến gói mà muốn chạy Ví dụ đến gói hello_word: $ cd catkin_ws/src/hello_world Tạo folder tên launch: $ mkdir launch Tạo launch file bên launch folder $ cd launch $ gedit Ghi mã vào launch file lưu Dạng file .launch Ở lưu talker_listener.launch lưu catkin_ws/src/hello_world/launch Tệp khởi chạy tệp thực thi C++ pkg="hello_world" type="listener" pkg="hello_world" type="talker" Đối với tệp Python đặt tên dấu ngoặc kép sau type= 92 Ví dụ muốn chạy tệp có tên example.py ta nhập sau Để đảm bảo ROS tìm thấy code Cần thay đổi quyền tệp lệnh Python Ta làm sau: $ chmod + x example.py Thay đổi quyền tệp khởi chạy Mở terminal nhập: $ cd catkin_ws/src/hello_world/launch $ sudo chmod +x talker_listener.launch Chạy launch file $ roslaunch hello_world talker_listener.launch **** Đối với ROSLAUNCH tự khởi động ROSCORE không ROSRUN nên không cần khởi chạy ROSCORE**** Launch file tạo 93 94 CHƯƠNG 4: KẾT LUẬN VÀ ĐỀ XUẤT 4.1 Kết luận Trong đề tài này, chúng em thành công việc khởi tạo robot vi sai đơn giản đưa lên trình mơ thực chạy điều hướng tự động né vật cản Qua đó, chúng em hiểu liên quan đến đề tài như: - Hệ điều hành ROS, cách cài đặt phần mềm, ứng dụng có liên quan,… - Phân tích mơ hình động học robot dạng vi sai - Quy trình cài đặt sử dụng package ROS - Mô sử dụng package gazebo rviz - Can thiệp hiểu thuật toán RRT - Tiến hành điều hướng robot tự động né vật cản tức mơ - Khảo sát thơng số liên quan ảnh hưởng đến thuật tốn - Quy trình cài đặt, kết nối ros robot - Lấy liệu dạng đồ 2D từ RPLidar - Giải số lỗi sử dụng cài đặt gói ROS - Nghiên cứu thiết kế mơ hình, xuất vẽ lắp vẽ gia công robot 4.2 Hạn chế đề tài Trong trình thực đồ án tốt nghiệp, nhóm đồ án cố gắng hồn thiện việc mơ sử dụng gói, kết nối ros robot, thiết kế chế tạo mơ hình động học robot vi sai dạng bánh dẫn động bánh tự lựa cách tốt Tuy nhiên thời gian ngắn, việc mô phỏng, kết nối, thiết kế, chế tạo , gia cơng gặp nhiều khó khăn như: - Chưa sử dụng thành thạo hiểu rõ hết quy trình thiết kế, chế tạo cần thiết ros - Việc sử dụng package sử dụng mô chưa áp dụng cho robot thực - Thiết kế, lắp ráp mơ hình robot cịn gặp nhiều khó khan 95 4.3 Hướng phát triển đề tài Tuy gặp nhiều hạn chế trình làm để phát triển đề tài đạt thành công đồ án mức độ cao hơn, nhóm đồ án dự kiến hướng phát triển sau: - Nghiên thực việc kết nối sử dụng package mơ hình robot thực - Can thiệp sâu cải tiến thuật toán sử dụng - Nghiên cứu sử dụng nhiều thuật toán khác cho robot - Nghiên cứu phương pháp định vị nhằm đảm báo tính ổn định robot việc xác định vị trí robot đồ 2D nhiều loại robot môi trường khác - Nghiên cứu phương pháp điều hướng, tạo hiệu tốt trình di chuyển robot môi trường 96 TÀI LIỆU THAM KHẢO [1] R Barber, J Crespo, C Gomez, A C Hernamdez, M Galli (2018), “Mobile Robot Navigation in Indoor Environments: Geometric, Topological, and Semantic Navigation”, London, U.K.: IntechOpen, pp 1–25 [2] A Koubaa, H Bennaceur, I Chaari, S Trigui, A Ammar, M.-F Sriti, M M Alajlan, O Cheikhrouhou, Y Javed (2018), ‘‘Introduction to mobile robot path planning’’, Robot Path Planning and Cooperation, Studies in Computational Intelligence Cham, Switzerland: Springer, pp 3–12 [3] J.-H Park, U.-Y Huh (2016), ‘‘Path planning for autonomous mobile robot based on safe space’’, J Electr Eng Technol., Vol 11, pp 1441–1448 [4] D Xin, C Hua-Hua, G Wei-Kang (2005), ‘‘Neural network and genetic algorithm based global path planning in a static environment’’, J Zhejiang Univ.-Sci A, Vol 6, pp 549–554 [5] V Aenugu, P.-Y Woo (2012), ‘‘Mobile robot path planning with randomly moving obstacles and goal’’, Int J Intell Syst Appl., Vol 4, pp 1–15 [6] Siegwart, R., Nourbakhsh, I.R., Scaramuzza, D (2011), “Introduction to Autonomous Mobile Robots”, PHI Learning Private Limited, New Delhi [7] Yuan, Y., Su, W., Li, Z., Shi, G (2019), “Brain-computer interface-based stochastic navigation and control of a semiautonomous mobile robot in indoor environments”, IEEE Trans Cogn Dev Syst., Vol 11 (1), pp 129–141 [8] Song, K.-T., Chiu, Y.-H., Kang, L.-R., Song, S.-H., Yang, C.-A., Lu, P.-C., Ou, S.-Q (2018), “Navigation control design of a mobile robot by integrating obstacle avoidance and LiDAR SLAM”, IEEE International Conference on Systems, Man, and Cybernetics (SMC), Miyazaki, Japan, pp 1833–1838 [9] Cheein, F.A.A., Toibero, J.M., Sciascio, F.di., Carelli, R., Pereira, F.L (2010), “Monte Carlo uncertainty maps-based for mobile robot autonomous SLAM navigation”, IEEE International Conference on Industrial Technology, Vina del Mar, pp 1433–1438 [10] R N Wiki, "Robot Operating System Wiki," Navigation, [Online] Available: http://wiki.ros.org/navigation/Tutorials/RobotSetup [11] W C ROS, "Robot Operating System Wiki," Costmap 2D, [Online] Available: http://wiki.ros.org/costmap_2d.s 97 Lưu đồ thuật toán RRT 98 99 ... để thiết kế, chế tạo robot di động dạng vi sai bánh - Nghiên cứu phương pháp khám phá tự trị cho robot di động - Nghiên cứu phương pháp điều khiển tránh vật cho robot di động - Thiết kế chế tạo. .. kiến kết đạt - Hiểu cấu tạo robot di động dạng vi sai có - Nắm ngun lí hoạt động robot từ mơ robot phần mềm gazebo, rviz - Thiết kế, chế tạo mô hình robot di động, mơ theo sản phẩm thực tế Hoạt động. .. Cơ chế dẫn động Một giải pháp tiết kiệm chi phí cho việc điều hướng robot di động hệ thống truyền động vi sai Đây chế truyền động đơn giản cho robot di động để điều hướng nhà Robot dẫn động