MỞ ĐẦU Hiện nay thế giới đang chạy theo xu hướng tự động hóa trên tất cả lĩnh vực. Và công nghệ xe tự lái được dự báo sẽ trở thành một trang thiết bị tiêu chuẩn của mọi chiếc xe trong tương lai. Hãng phân tích thị trường Garner dự đoán, tới năm 2023 sẽ có khoảng 3 triệu chiếc xe trang bị công nghệ tự lái lăn bánh trên đường. Tới năm 2030, con số này có thé lên tới hơn 50% thị trường xe điện toàn cầu.
Chính vì thé cuộc đua nghiên cứu phát triển xe tự lái của các tập đoàn ô tô và công nghệ trên thế giới khá sôi động như Google, Tesla, Toyota.với mức đầu tư hàng chục tỷ USD hay mới đây nhật có thé kế đến việc thành lập liên doanh phát triển nền tang 6 tô tự lái trị giá 4 tỷ USD của Hyundai Motor Group và Aptiv Plc ( năm 2019), hay thỏa thuật đầu tư vào công ty Argo AI — một công ty khởi nghiệp về xe tự lái của hai ông lớn ngành sản xuất 6 tô là Ford và Volkswagen lên đến 7 tỷ USD. Ở một diễn biến khác trong nước, tập đoàn công nghệ hàng đầu của Việt Năm là FPT cũng đã đầu tư vào phát triển công nghệ cho xe tự lái từ năm 2016, đến nay đã đạt được cấp độ 3/6 cấp độ dành cho xe tự lái hiện nay. Và trong tương lai sẽ còn được đầu tư và phát triển hướng đến xây dựng thành công nén tảng dành cho xe tự hành đạt 6/6 cap độ. Từ những số liệu trên, nhóm nhận thấy tiềm năng phát triển của mảng xe tự hành này.
Tuy nhiên các xe tự hành trước đây thường chỉ dùng camera kết hợp trí tuệ nhân tạo dé vận hành thường bị ảnh hưởng rat lớn của yếu tố thời tiết, ánh sáng và không hoạt động hiểu quả nếu thời kiện môi trường thay đổi. Nhận ra được yếu điểm đó của việc dùng camera trong xe tự hành, nhóm đã tìm hiểu và đề xuất dùng cảm biến LIDAR trong xe tự hành. Từ đó, nhóm được thành lập và thực hiện đề tài: “Xây dựng robot tự hành quét bản d6 trong nhà và tránh vật cản”. Tinh hình nghiên cứu trong nước 1.
Mô hình xe tự hành của Công ty FPT Software [1] Sau nhiều năm làm việc với các hãng xe trên thế giới và rút ra nhiều kinh nghiệm, công ty đã quyết định sử dụng kinh nghiệm và sử dụng trí tuệ của FPT dé dau tư vào dự án xe tự lái và phát triển FPT Automatic Driving Platform. Cốt lõi của nên tảng là sử dụng công nghệ AI, Deep Learning, Behavior cloning, nghĩa là xe sẽ học lái như con người đồng thời có thé nhận định vật cản và đưa ra quyết định lái xe. Tháng 4/2019, Hình 1.1 là chiếc xe tự lái đầu tiên của FPT đã được thử nghiệm tại Ecopack, với phần cứng của công ty Yamaha. Phần mềm của xe phát triển bởi đội ngũ kỹ sư của FPT.
Tuy nhiên chiếc xe chỉ dừng lại ở cấp độ 3/6 của xe tự hành và Hình 1.1: Xe tự hành của tập đoàn FPT [1] 1. Mô hình xe tự hành trong nhà dùng stereo camera Đề tài thực hiện vào tháng 6/2018 của sinh viên Phan Minh Trí dưới sự hướng dẫn của tiến sĩ Nguyễn Vĩnh Hảo thuộc trường Dai học Bách khoa Hồ Chí Minh — ĐHQG Hồ Chí Minh. [2] Đề tài hướng đến xây dựng mô hình xe tự hành trong nhà có khả năng tự hành và tránh né vật cản dựa vào stereo camera. Việc sử dung camera dé dung ban đồ và triển khai điều hướng trên bản đồ đã dựng khá tốt.
Thông số sai số cho phép là robot sẽ đến đích trong phạm vi đường tròn bán kính 20cm và góc lệch là 0. Tuy nhiên, vì đặc tính của phương pháp là từ hai ảnh của camera cho ra ảnh độ sâu thì môi trường phải có nhiều đặc trưng (vi dụ như đặc trưng góc cạnh) dé có thé ra chính xác hơn; bên cạnh đó, vì đây là xử lý ảnh nên chất lượng ảnh cũng như độ sáng của môi trường cũng ảnh hưởng đến chất lượng của của ảnh độ sâu.2 là mô hình hoàn thiện của robot tự hành trong nhà sử dụng cảm biến Stereo Camera. Kích thước khung xe là 35x35x45cm. Mô hình sử dụng 2 động co DC để hoạt động.
Tình hình nghiên cứu ở nước ngoài Hình 1.3: Mô hình robot Turtlebot3 Waffle Pi and Burger Hình 1.3 là những mô hình đã được thương mai hóa trên thế giới của hãng ROBOTIS đến từ Hàn Quốc [3]. Với sản phâm này người dùng chỉ cần sử dụng linh kiện và lập trình theo hướng dẫn của nhà sản xuất thì đã có thể có một mô hình robot hoàn thiện có kha năng tự di chuyển trong không gian nhỏ. Kết luận Có rât nhiêu công nghệ và mô hình xe tự hành trong nước và ngoài nước như đã dé cập ở trên, van còn rat nhiều mô hình robot tự hành với những công nghệ khác nhau. Các mô hình xe tự hành trước đây đa số sử dụng công nghệ xử lý ảnh kết hợp trí tuệ nhân tạo và máy học dé tránh né vật cản và tìm đường ổi, tuy nhiên những xe tự hành nay bi ảnh hưởng của yếu tố môi trường rất lớn như ánh sáng, thời tiết,.
Hiện nay việc áp dụng công nghệ quét vào trong xe tự hành là hướng đi mới cho xe tự hành, đó cũng là lý do nhóm quyết định đề xuất hướng tiếp cận công nghệ quét vào robot tự hành. So sánh những đề tài: Bảng 1.1: Bảng đánh giá các mô hình tự hành Mô hình Turtlebot3 Đề tài sử Mục tiêu đề Burger [3] dụng Stereo tài nhóm Camera [2] thực hiện Tiêu chí Ảnh hướng | Ít chịu tác động | Chịu ảnh Mô hình của môi của yêu tố môi | hưởng nhiều không bị phụ trường trường. của yếu tổ ánh | thuộc vào môi sáng. Khả năng xác | Vật cản kích Vat can kích Vat can kich định vật thể | thước thước thước xung quanh | 20x20x20cm 20x20x30cm | 30x30x30cm Chi phí Chi phí cao Chi phí cao Chi phí hợp lý Xây dựng ban | Bản đồ đặc Ban đồ thiếu | Bản đồ đặc do so hóa trưng góc cạnh đặc trưng góc trưng góc TỐ ràng.
Sai so cho N.a Sai số trong Sai số trong phép phạm vi 20cm, phạm vi góc lệch là 0. Từ bảng đánh giá Bảng 1.1 nhóm quyết định nghiên cứu, thiết kế và xây dựng một robot sử dụng cảm biến LiDAR dé quét phạm vi không gian nhỏ của môi trường trong nhà, từ đó số hóa thành bản đồ 2D. Sau khi xây dựng được bản đồ số hóa 2D, robot có thé thực hiện di chuyên tự động trong không gian vừa được số hóa và thực hiện tránh né vật cản. Đề tài có tên là “Xây dựng robot tự hành quét ban đồ trong nhà và tránh né vật cản.
CƠ SỞ LÍ THUYET VÀ THUC NGHIEM 2. Tổng quan về ROS 2. ROS là gì ? Robot Operating System — ROS là hệ điều hành mã nguồn mở dành cho robot, là một framework được dùng rất rộng rãi trong lĩnh vực robotic với nhiều ưu điểm. Nó tạo ra một nền tảng phần mềm có thể hoạt động trên rất nhiều robot khác nhau mà không cần sự thay đổi quá nhiều trong chương trình phần mềm.
ROS được bat dau với ý tưởng tạo ra sự thuận tiện là có thé chia sé dé dang và có thể được sử dụng lại trên những phần cứng robot khác nhau mà không cần phải xây dựng lại từ đầu. Việc xây dựng lại từ đầu cho một nền tảng robot riêng biệt sẽ tốn rất nhiều thời gian và công sức; bên cạnh đó, việc ứng dụng lại những thành quả của việc nghiên cứu trước đó dé xây dựng những thuật toán cao hơn cũng gặp rat nhiều khó khăn. ROS cung cấp, hỗ trợ các dịch vụ (services) như một hệ điều hành như phần cứng trừu tượng (hardware abtraction), kiểm soát các thiết bị cấp thấp (low-level device control), thực thi (implementation) các chức năng phô biến, tin nhắn (message) qua lại giữa các quá trình, và quản lý gói. Ngoài ra, nó cũng cung cấp nhiều công cụ và thư viện cho việc tham khảo, biên dịch, viết và chạy chương trình trên nhiều máy khác nhau.
Việc chạy các chuỗi quy trình (processes) dựa trên ROS được thé hiện dưới kiến trúc graph, biéu diễn mối quan hệ của các thành phan trong hệ điều hành. ROS thực thi một số loại giao tiếp khác nhau như giao tiếp kiểu RPC dạng đồng bộ thông qua services, truyền dit liệu bất đồng bộ thông qua topics và lưu trữ đữ liệu trên Parameter Server. ROS không phải là một framework thời gian thực, nhưng thông qua nó ta có thể viết chương trình thời gian thực.1 thé hiện sự phân bố của cộng đồng phát triển ROS trên thế giới. Vì ROS là một hệ điều hành mã nguồn mở nên thu hút sự quan tâm của cộng đồng rất lớn, đồng nghĩa với việc các công cụ, thư viện sẽ được xây dựng và phát triển phong phú.
Hiện nay, mô hình robot đã và đang được xây dựng trên hệ điều hành này với nhiều ứng dụng có tính thực tiễn cao. Mô hình ROS Mô hình ROS gồm có ba tang: Filesystem, Computation Graph, và Community. Bên cạnh đó, ROS định nghĩa hai kiểu đặt tên (Names): Package Resource Names và Graph Resource Names. Tầng ROS Filesystem Filesystem chủ yếu là các nguồn tài nguyên ROS được thực thi trên bộ nhớ lưu trữ hệ thống, bao gồm: Packages: là đơn vị chính dé tổ chức phần mềm trên ROS.
Một package có thé chứa các nodes (ROS runtime processes), các thư viện đặc thù của ROS, các file cài đặt hoặc bất cứ file nào cho việc tô chức. Cấu trúc của một package được mô tả ở Hình 2. Mục đích của package là để tạo ra tập hợp chương trình có kích thước nhỏ nhất dé có thé dé dàng sử dụng lại.2: Cấu trúc Package trong ROS Metapackages: là một package chuyên biệt, dùng để phục vụ cho việc thể hiện mối quan hệ một nhóm các package khác với nhau. Metapackage thường được dùng như nơi dé giữ các tương thích ngược cho việc chuyên đổi sang rosbuild Stacks.
Package Manifests: là một bang mô tả về một package như tên, version, mô ta, thông tin license,. Manifests được quản lý bởi một file tên là manifests. Stacks: khi chúng ta kết hợp các package với nhau với một vài chức năng thì được gọi là Stack (Hình 2. Trong ROS, có rất nhiều stack với công dụng khác nhau.
Tương tự Package, nơi chứa thông tin về stack gọi là Stack Manifests. 10 Mục tiêu của việc dùng Stack là để đơn giản hóa cho quá trình chia sẻ chương trình ứng dụng. Message types: là mô tả của một thông điệp được gửi qua lại g1ữ các quá trình, được lưu trữ dưới dạng my_package/msg/MyMessageType.