ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT - HÀN
Trang 1
ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
VÀ TRUYỀN THÔNG VIỆT-HÀN
🙟🕮🙝
Chủ nhiệm đề tài: TS Nguyễn Vũ Anh Quang
Trang 2
ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ
TRUYỀN THÔNG VIỆT-HÀN
Xác nhận của tổ chức chủ trì Chủ nhiệm đề tài
Trang 3MỤC LỤC DANH MỤC HÌNH III DANH MỤC CÁC CHỮ VIẾT TẮT IV
MỞ ĐẦU VI
1 Tổng quan tình hình nghiên cứu thuộc lĩnh vực của đề tài v
2 Tính cấp thiết của đề tài vi
3 Mục tiêu đề tài vi
4 Đối tượng và phạm vi nghiên cứu vi
5 Cách tiếp cận và phương pháp nghiên cứu vii
6 Nội dung nghiên cứu viii
7 Kết quả nghiên cứu viii
8 Phương thức chuyển giao kết quả nghiên cứu và địa chỉ ứng dụng viii
9 Tác động và lợi ích mang lại của kết quả nghiên cứu ix
CHƯƠNG 1.CÁC THUẬT TOÁN DẪN ĐƯỜNG 1
1.1 A* algorithm 1
1.2 Thuật toán Dijkstra’s 5
1.3 Time EBAND algorithm 6
1.4.Kết luận 8
CHƯƠNG 2.PHẦN MỀM MÔ PHỎNG GAZEBO VÀ ROS 9
2.1.ROS 9
2.2.GAZEBO 15
2.3.Kết luận 16
CHƯƠNG 3.MÔ PHỎNG VÀ ĐÁNH GIÁ HỆ THỐNG 17
3.1.Phương pháp 17
3.1.1 Độ Dài Đường Đi 17
3.1.2.Thời gian tính toán 17
Trang 43.2.Mô hình môi trường xe tự lái 18
3.3.Kết quả và thảo luận 21
3.4.Kết luận 23
TÀI LIỆU THAM KHẢO 24
PHỤ LỤC 1 BÀI BÁO CITA 26
PHỤ LỤC 2 THUYẾT MINH ĐỀ TÀI 30
PHỤ LỤC 3 HỢP ĐỐNG TRIỂN KHAI THỰC HIỆN 38
Trang 5DANH MỤC HÌNH
Hình 1.Định nghĩa node con và node cha 3
Hình 2 Lưu đồ thuật toán A*[12] 4
Hình 3 Vị trí và khoảng thời gian của ADVS trong hệ tọa độ toàn cục[] 8
Hình 4.Cấp độ hệ thống file 12
Hình 5 Cấu trúc điển hình của gói ROS 14
Hình 6 Giao diện thiết kế Gazebo 16
Hình 7 Nguyên lý mô phòng trong Gazebo[10] 16
Hình 8 Mô hình 3D một phần thiết kế 19
Hình 9 Sơ đồ kết nối các liên kết và các khớp nối 20
Hình 10 Một số hình ảnh trong quá trình xây dựng Map cho một số trường hợp 21
Hình 11 Một số hình ảnh Robot trong quá trình di chuyển 22
Hình 12 Độ dài đường đi 23
Hình 13 Thời gian tính toán 23
Trang 6
DANH MỤC CÁC CHỮ VIẾT TẮT
STT Tên viết tắt Chữ viết tắt Ghi chú
5 ROS Realtime operation system Hệ điều hành thời gian thực
8 SLAM Simultaneous localisation and
mapping
Công nghệ định vị và lập bản
đồ đồng thời
9 LIDAR Light detection and ranging Phát hiện và đo phạm vi
11 UDRF Unified Robotic Description
Format
Định dạng mô tả Robot đồng nhất
Adaptive Monte Carlo calization
Định vị sử dụng phương pháp MonteCarlo thích nghi
Band
Trang 7MỞ ĐẦU
1 Tổng quan tình hình nghiên cứu thuộc lĩnh vực của đề tài
Vấn đề lập lịch dẫn đường hay hoạch định dẫn đường [1-3] là chủ đề đang được quan tâm hiện nay trong lĩnh vực nghiên cứu điều hướng cho robot di động hoặc xe tự hành Robot
di động hay xe tự hành có thể tự tìm ra một con đường di chuyển tối ưu hoặc gần tối ưu từ điểm bắt đầu đến điểm kết thúc đồng thời tránh chướng ngại vật dựa trên một hoặc một số thao tác tự hành như tính toán tuyến đường đi ngắn nhất, thời gian di chuyển ngắn nhất, năng lượng tiêu tốn ít nhất, v.v trong phạm vi không gian di chuyển Phương pháp lập lịch dẫn đường có thể được chia thành 2 loại bao gồm lập lịch dựa trên thông tin bản đồ tổng thể (global map information) hoặc thông tin bản đồ cục bộ (local map information)
Đối với phương pháp lập lịch dẫn đường dựa trên bản đồ tổng thể, robot hay xe tự hành
có thể tạo ra đường đi trong một môi trường đã hoàn toàn biết trước (vị trí và hình dạng của chướng ngại vật được xác định trước) Với mô hình bản đồ tổng thể, việc tìm kiếm đường đi được thực hiện trên mô hình bản đồ tổng thể đã được thiết lập Do vậy, để thuật toán tối ưu có thể đưa ra đường đi tối ưu, trước tiên phải lập mô hình môi trường, sau đó xây dựng chiến lược hoạch định con đường Một số phương pháp tối ưu được đề xuất trong [4-7]
Khác với lập lịch dẫn đường dựa trên thông tin bản đồ tổng thể, phương pháp lập lịch dẫn đường dựa trên thông tin bản đồ cục bộ giả định rằng vị trí các chướng ngại vật trong môi trường là không xác định và robot hay xe tự hành chỉ nhận biết môi trường xung quanh và trạng thái của nó thông qua các cảm biến Robot hay xe tự hành chỉ có thể sử dụng thông tin môi trường cục bộ hiện tại của robot hay xe tự hành do cảm biến thu được để tìm đường đi tối
ưu mà không va chạm vào chướng ngại vật Điểm quan trọng trong phương pháp này đó là việc lập lịch dẫn đường đi cần được điều chỉnh trong thời gian thực Để tìm đường đi tối ưu có một số phương pháp được áp dụng như rolling window, artificial potential field và các thuật toán thông minh khác Do vậy, tối ưu hóa thuật toán tìm đường đi tối ưu kết hợp với một số
mô hình machine learning/deep learning nhằm làm tăng khả năng ghi nhớ đường đi Đồng thời dựa vào các thông số đường đi đã được học, từ đó robot hay xe tự hành có thể tính toán và tìm
Trang 8đường đi tối ưu hơn Một số phương pháp và kỹ thuật này được nêu trong các nghiên cứu 16]
[11-2 Tính cấp thiết của đề tài
Lập lịch dẫn đường (Path Planning) và thuật toán tránh vật thể (obstacle avoidance) là những phương pháp đang được áp dụng dành cho xe tự hành hay robot di động Hiện nay, có một số thuật toán tránh vật thể trong lập lịch dẫn đường được áp dụng như Bug algorithms, probabilistic road map (PRM), Artificial Potential Fields (APF), Bidirectional RRT, Vector Field Histogram (VFH), Fuzzy, and Genetic Algorithm Tuy nhiên, những thuật toán này mang nặng tính lý thuyết, để đánh giá hiệu năng của thuật toán này trong ứng dụng cụ thể như xe tự hành hay robot di động cần xây dựng mô hình cụ thể để đánh giá hiệu năng liên quan đến các yếu tố như thời gian xử lý, hay chiều dài đoạn đường cần di chuyển từ điểm xuất phát đến điểm đích đồng thời tránh các vật cản trên đường là những vấn đề cần được giải quyết Vì vậy, việc xây dựng mô hình và triển khai đánh giá hiệu năng một số thuật toán lập lịch đẫn dường dành cho xe tự hành là cần thiết Nhằm tạo môi trường giả lập xe tự hành, vận dụng đánh giá dựa trên môi trường giả lập mô phỏng tính hiệu quả của một số thuật toán lập lịch dẫn đường, đồn thời tạo môi trường học thuật nghiên cứu cho các giảng viên quan tâm đến công nghệ robotics
và tự hành Điều này có ý nghĩa đặc biệt là đối với cơ sở có chức năng đào tạo, nghiên cứu ứng dụng như Trường Đại học CNTT&TT Việt Hàn
4 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu
- Hệ điều hành robot (ROS/Robot Operating System);
Trang 9- Mô phỏng giả lập robot tự hành;
- Thuật toán lập lịch dẫn đường (A*, Dijkstra’s, EBAND)
Phạm vi nghiên cứu
- Thiết kế mô phỏng mô hình xe tự hành;
- Xử lý và phân tích các thông số, dữ liệu hành trình mô phỏng giả lập
5 Cách tiếp cận và phương pháp nghiên cứu
Cách tiếp cận
Từ việc thiết kế và xây dựng mô hình mô phỏng xe tự hành cùng với môi trường giả lập với Gazebo và giả lập điều khiển mô hình xe tự hành dựa trên ROS, đề tài sẽ lựa chọn thuật toán lập lịch dẫn đường phù hợp và tiến hành khảo sát mô phỏng chuyển động của mô hình
Từ các thông số, dữ liệu hành trình thu thập được, đề tài sẽ thực hiện đánh giá hiệu suất của thuật toán lập lịch dẫn đường để tìm kiếm những nhược điểm cần khắc phục của thuật toán Một số thuật toán lập lịch dẫn đường được lựa chọn như A*, Dijkstra’s, và EBAND
Phương pháp nghiên cứu
Phương pháp kế thừa, thu thập tài liệu: Tham khảo kết quả các công trình nghiên cứu trong và ngoài nước về một số thuật toán lập lịch dẫn dường liên quan nhằm kế thừa và phát triển cho đề tài
Phương pháp chuyên gia: Tích cực tham gia các hội thảo khoa học, và tiếp thu ý kiến phản biện của các chuyên gia trong cùng lĩnh vực nhằm nâng cao hiệu quả và tính thiết thực của đề tài Phương pháp này sẽ được áp dụng trong toàn bộ quá trình thực hiện từ khi xây dựng
đề cương đến từng nội dung công việc của đề tài và báo cáo tổng kết
Phương pháp giả lập: Sử dụng Gazebo để xây dựng giả lập môi trường và mô hình xe tự hành
Trang 10Phương pháp thực nghiệm khoa học: Dựa trên những lý thuyết về các thuật toán lập lịch dẫn đường nêu trên, áp dụng với mô hình giả lập và kiểm tra hiệu suất hoạt động của thuật toán
Phương pháp thống kê – đánh giá: Kết quả đánh giá được thực hiện nhiều lần trên cùng một bộ thông số nhằm đảm bảo tính khách quan và chính xác của đánh giá
6 Nội dung nghiên cứu
Nội dung 1: Tổng quan, so sánh các thuật toán lập lịch dẫn đường đang được áp dụng
trên thế giới cho xe tự hành
- Tổng quan về lập lịch dẫn đường và các thuật toán hiện có (A*, Dijkstra’s, và EBAND);
- Tổng hợp và so sánh ưu nhược điểm của các thuật toán lập lịch dẫn đường khác nhau hiện nay
Nội dung 2: Thiết kế và mô phỏng mô hình xe tự hành dựa trên phần mềm mô phỏng
Gazebo và kết nối với ROS
- Thiết kế, xây dựng mô hình xe tự hành và mô phỏng chuyển động trên Gazebo kết hợp điều khiển với ROS;
- Thiết kế, xây dựng bản đồ mô phỏng môi trường di chuyển và các chướng ngại vật;
- Sử dụng thuật toán lập lịch dẫn đường trong ROS để đánh giá ưu và nhược điểm của thuật toán
7 Kết quả nghiên cứu
Sản phẩm khoa học: 1 bài báo đăng trong hội thảo CITA 2023
Sản phẩm ứng dụng: Mô hình mô phỏng xe tự hành trên Gazebo
8 Phương thức chuyển giao kết quả nghiên cứu và địa chỉ ứng dụng
Phương thức chuyển giao: Bàn giao trực tiếp
Trang 11Địa chỉ ứng dụng Khoa Kỹ thuật máy tính và điện tử- Trường ĐH CNTT&TT Việt Hàn-
ĐH Đà Nẵng
9 Tác động và lợi ích mang lại của kết quả nghiên cứu
Đối với lĩnh vực giáo dục và đào tạo:
- Kết quả nghiên cứu của đề tài là cơ sở dữ liệu quan trọng có thể sử dụng, giảng dạy trong các môn học thuộc về lĩnh vực khoa học máy tính(như robotics, tự động hoá), điều khiển
tự động, điều hướng trong nhà trường;
- Mô hình, thuật toán tối ưu trong điều hướng, tự hành ứng dụng các công nghệ điều hướng tự động, có thể được sử dụng làm ví dụ mẫu cho các đồ án môn học để sinh viên tham khảo trong quá trình học tập và nghiên cứu tại nhà trường
Đối với lĩnh vực khoa học và công nghệ:
- Kết quả nghiên cứu của đề tài sẽ góp phần hỗ trợ và bổ sung các giải thuật tối ưu hơn cho thuật toán lập lịch dẫn đường;
- Kết quả nghiên cứu có thể làm tài liệu tham khảo cho công tác nghiên cứu các thuật toán lập lịch dẫn đường dành cho xe tự hành
Đối với phát triển kinh tế-xã hội:
Đối với tổ chức chủ trì và các cơ sở ứng dụng kết quả nghiên cứu:
- Nâng cao trình độ chuyên môn và trình độ nghiên cứu khoa học cho cán bộ nghiên cứu của nhà trường trong lĩnh vực áp dụng trí tuệ nhân tạo cho các ứng dụng trong đời sống;
- Góp phần tạo điều kiện nâng cao trình độ ứng dụng các giải pháp kỹ thuật tối ưu và công nghệ mới trong việc lập lịch dẫn đường dành cho xe tự hành;
Đẩy mạnh phối – kết hợp giữa nghiên cứu và ứng dụng các sản phẩm khoa học công nghệ vào việc phát triển xe tự hành trong thực tế
Trang 13
CHƯƠNG 1.CÁC THUẬT TOÁN DẪN ĐƯỜNG
Robot tự động thông minh nói chung và xe tự hành nói riêng được ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau như không gian, giao thông, công nghiệp và quốc phòng[8-9],v.v Robot di động hay xe tự hành (ADVs) cũng có thể thực hiện nhiều nhiệm vụ phức tạp như thu thập thông tin từ những môi trường mà con người khó có thể tiếp cận, cứu trợ thảm họa, tuần tra và hoạt động cứu hộ Do đó, cần có xe tự hành có thể di chuyển tự do trong một môi trường tĩnh hoặc động có khả năng điều hướng, lập trình trong quá trình di chuyển đảm bảo an toàn trong quá trình di chuyển đến vị trí mục tiêu, và tạo ra độ dài đường
đi tối ưu là mục tiêu chính trong quá trình lập lịch dẫn đường cho xe tự hành
Liên quan đến vấn đề này, các nhà nghiên cứu đã khám phá nhiều kỹ thuật lập kế hoạch đường đi điều hướng cho xe tự hành Sự phát triển của ADVs đã mang đến những thay đổi đáng kể cho ngành công nghiệp vận tải Với nhu cầu ngày càng tăng về hoạt động hiệu quả
và an toàn của xe tự động, thuật toán lập lịch đóng vai trò quan trọng trong việc đưa ra quyết định thời gian thực cho hoạt động của xe
Thời gian gần đây, ADVs đã thu hút sự chú ý đáng kể trong những năm gần đây do tiềm năng của chúng trong nhiều lĩnh vực khác nhau Một trong những thách thức quan trọng trong việc phát triển các phương tiện này là thiết kế thuật toán lập lịch hiệu quả và hiệu quả
để di chuyển trong môi trường phức tạp Các thuật toán khác nhau như A*, Dijkstra và EBAND, v.v đã được đề xuất và triển khai trong các phương tiện lái tự động Trong phạm
vi nghiên cứu của đề tài, chúng tôi tập trung vào việc đánh giá hiệu suất của các thuật toán lập lịch, như thuật toán A*, Dijkstra và EBAND, được sử dụng trong các xe tự hành Các thuật toán này có nhiệm vụ lập lịch, tìm đường đi tối ưu và tránh va chạm [9] Mục tiêu chính của đề tài là xây dựng mô hình và thực hiện đánh giá hiệu suất của các thuật toán lập lịch này cho xe tự động
1.1 A* algorithm
Thuật toán A* [14]được đề xuất bởi P E Hart, N J Nilsson và B Raphael vào năm
1968 A* là một thuật toán gọn nhẹ và hiệu quả Đây là thuật toán trí tuệ nhân tạo điển hình trong tìm kiếm So với các thuật toán trí tuệ nhân tạo khác, nó có nhiều ưu điểm về thời gian
Trang 14di chuyển, hiệu suất cao và dễ triển khai Do đó, thuật toán A* đã được sử dụng rộng rãi trong các lĩnh vực khác nhau Các khía cạnh trong quá trình lập kế hoạch đường đi trong ứng dụng của thuật toán A* đã được mô tả trong nhiều nội dung nghiên cứu
Thuật toán A* đã được cải tiến qua nhiều thập kỷ Hiện nay, thuật toán A* sử dụng hai phương pháp: giảm thời gian chạy của thuật toán và giảm không gian lưu trữ Thông thường, bằng cách cải tiến cách duyệt, thời gian chạy của thuật toán được giảm bằng cách thay đổi cách dữ liệu được lưu trữ, giảm không gian lưu trữ được A* tìm kiếm từ vị trí bắt đầu cục
bộ, thông qua quá trình duyệt toàn cục hoặc cục bộ Mặc dù A* là một thuật toán tìm kiếm toàn cục, nhưng nó không duyệt qua toàn bộ không gian toàn cục
Thuật toán A* sử dụng hàng đợi ưu tiên để lưu trữ danh sách các nút cần tìm kiếm Hàng đợi ưu tiên được sắp xếp theo tổng của chi phí từ nút xuất phát và chi phí ước tính để
đi đến nút đích
Thuật toán bắt đầu từ nút xuất phát và tìm kiếm các nút lân cận Đối với mỗi nút lận cận, thuật toán tính toán chi phí từ nút hiện tại đến nút lân cận và chi phí ước tính di chuyển
từ lân cận đến nút đích hay nút mục tiêu Tổng của hai chi phí này được sử dụng làm giá trị
ưu tiên để thêm nút lân cận vào danh sách Sau đó, thuật toán chọn nút có giá trị ưu tiên thấp nhất từ danh sách và tiếp tục tìm kiếm các nút lận cận khác của nó Quá trình này được lặp lại cho đến khi đi đến nút đích
Thuật toán A* đảm bảo tìm ra đường đi ngắn nhất nếu hàm heuristic thỏa mãn điều kiện chấp nhận được, có nghĩa là chi phí ước tính đến nút đích luôn nhỏ hơn hoặc bằng chi phí thực tế Thuật toán A* thường được sử dụng trong các xe tự hành để lập lịch tuyến đường, tránh va chạm và các nhiệm vụ tìm đường khác
Định nghĩa 1 Node con là mở rộng của node cha, node con luôn trỏ đến một node cha
duy nhất, node con luôn có một và chỉ một node cha
Định nghĩa 2 Node cha là node có thể mở rộng, node cha có thể mở rộng đến 8 node
con
Như được hiển thị trong Hình 1, vùng màu đỏ là node cha, vùng màu xanh là các node con
Trang 15
Hình 1.Định nghĩa node con và node cha
Hàm G(n) trong F(n) có thể được tính toán thực tế, nhưng H(n) không thể tính toán các giá trị thực tế, chỉ có thể tính toán các giá trị ước tính xấp xỉ Bằng cách chọn các hàm đánh giá H(n) khác nhau, dựa trên các kết quả khác nhau của giá trị F(n), việc tìm kiếm đường đi ngắn nhất và thời gian yêu cầu để chạy chương trình cũng khác nhau
Quá trình thực thi thuật toán A*
Thuật toán A* cần thiết lập hai bảng: bảng OPEN và bảng CLOSED Bảng OPEN lưu trữ tất cả các node đã được tạo ra nhưng chưa được kiểm tra Bảng CLOSED ghi lại các node đã đi qua Lưu đồ thuật toán A* được hiển thị trong Hình 2
Trang 16
]
Hình 2 Lưu đồ thuật toán A* [ 9 ]
Set the starting point to the first parent node and extends n
Initial OPEN table and CLOSED table; OPEN table is empty, the
starting point for adding CLOSED table
Respectivel y determine whether this n child node is in CLOSED table, If not, node fof adding OPEN table and calculate the G, H, F value of new add child nodes, if yes, don’t adding OPEN table
Select the minimum value of the node from OPEN F table, set it to
the pare nt node can be extended
The patent node that can be extended extending n new child node Removing OPEN tanle from the patent node, and adding CLOSED
table for the patrent node
Search along the direction of the pointer from the end node, until you find the starting point to termination Node of this process traversing is the optinal path with A* algorithm search
R e spectively determine whether this n child node is in CLOSED table, If not, n ode fof adding OPEN table and calculate the G, H, F value of new add child nodes, if yes, don’t adding OPEN table
Start
Determine wheter n new child node containning the destination node
Output the optinal path
End
Y
N
Trang 171.2 Thuật toán Dijkstra’s
Thuật toán Dijkstra [10] là một thuật toán phổ biến để tìm đường đi ngắn nhất giữa hai nút trong đồ thị Thuật toán bắt đầu bằng việc gán một khoảng cách dự kiến cho tất cả các nút từ nút xuất phát, ban đầu được thiết lập bằng 0 Sau đó, chọn nút có khoảng cách dự kiến nhỏ nhất và tìm kiếm các nút lân cận của nó Đối với mỗi nút lân cận, thuật toán cập nhật khoảng cách dự kiến nếu tìm thấy đường đi ngắn hơn từ nút xuất phát Thuật toán tiếp tục chọn nút có khoảng cách dự kiến nhỏ nhất và tìm kiếm các nút lân cận của nó cho đến khi
đi đến đích hoặc đã duyệt hết tất cả các nút Thuật toán sử dụng một cấu trúc dữ liệu gọi là hàng đợi ưu tiên để lưu trữ các nút với khoảng cách dự kiến của chúng, và đảm bảo tìm ra đường đi ngắn nhất khi thuật toán kết thúc Ý tưởng chính của thuật toán là lặp đi lặp lại việc tính toán khoảng cách ngắn nhất từ một điểm xuất phát đến điểm đích, đồng thời loại trừ các đường đi có khoảng cách dài hơn
Thuật toán Dijkstra được sử dụng rộng rãi trong các ứng dụng khác nhau như mạng lưới giao thôn, mạng máy tính và mạng xã hội, v.v Trong hệ thống xe tự hành, thuật toán Dijkstra thường được sử dụng để lập kế hoạch tuyến đường và tránh va chạm Đây là thuật toán hiệu quả khi đồ thị kiểu phân tán rời rạc, có nghĩa là có ít kết nối giữa các nút Tuy nhiên, hiệu suất của nó có thể giảm đi khi đồ thị phức tạp
Quá trình thực thi thuật toán Dijkstra’s
Thuật toán Dijkstra có thể giải quyết bài toán tìm đường đi ngắn nhất trên đồ thị vô hướng lẫn có hướng miễn là trọng số không âm
Ý tưởng cơ bản của thuật toán như sau:
Bước 1: Từ đỉnh gốc, khởi tạo khoảng cách tới chính nó là 0, khởi tạo khoảng cách nhỏ nhất ban đầu tới các đỉnh khác là +∞ Ta được danh sách các khoảng cách tới các đỉnh Bước 2: Chọn đỉnh a có khoảng cách nhỏ nhất trong danh sách này và ghi nhận Các lần sau sẽ không xét tới đỉnh này nữa
Trang 18Bước 3: Lần lượt xét các đỉnh b kề đỉnh a Nếu khoảng cách từ đỉnh gốc tới đỉnh b nhỏ hơn khoảng cách hiện tại đang được ghi nhận thì cập nhật giá trị và đỉnh kề a vào khoảng cách hiện tại của b
Bước 4: Sau khi duyệt tất cả đỉnh kề b của đỉnh a Lúc này ta được danh sách các khoảng cách tới các điểm đã được cập nhật Quay lại Bước 2 với danh sách này
Thuật toán kết thúc khi chọn được khoảng cách nhỏ nhất từ tất cả các điểm
1.3 Time EBAND algorithm
Thuật toán Timed Elastic Band (TEB) [11-12], được Rösmann đề xuất ban đầu và phát triển từ thuật toán Elastic Band, là một phương pháp tránh va chạm và tối ưu hóa quỹ đạo
So với các thuật toán lập kế hoạch đường đi cục bộ khác, thuật toán TEB có thể thêm hoặc
bỏ đi các ràng buộc tùy theo nhu cầu khác nhau Tối ưu hóa đa mục tiêu của thuật toán TEB chỉ phụ thuộc vào số cấu hình liên tiếp, dẫn đến cấu trúc thưa thớt của bài toán tối ưu hóa cơ bản Rösmann và cộng sự đề xuất sử dụng khung G2o để giải quyết hiệu quả vấn đề thưa thớt của thuật toán TEB dựa trên siêu đồ thị, từ đó cải thiện tốc độ tính toán Ngoài ra, ADVs được trang bị thuật toán TEB không thể vượt qua các chướng ngại vật trong môi trường phức tạp và động, dễ dẫn đến ADVs rơi vào cực tiểu cục bộ Để giải quyết vấn đề đó, Rösmann
và cộng sự đề xuất mở rộng kỹ thuật TEB bằng cách sử dụng lập kế hoạch quỹ đạo song song trong các topo không gian khác nhau Tuy nhiên, những phương pháp này chỉ xem xét
vị trí của chướng ngại vật mà không tính đến khả năng va chạm giữa các robot và chướng ngại vật xung quanh Thời gian sau, các nhà nghiên cứu đã đề xuất kỹ thuật TEB chủ động theo thời gian cho hệ thống điều hướng robot tự động di chuyển trong môi trường động
Về nguyên lý căn bản, Elastic Band (EB) là một thuật toán được sử dụng trong lập kế hoạch đường đi và tránh va chạm trong lĩnh vực tự hành nói chung Thuật toán này giúp điều hướng robot qua một môi trường có chướng ngại vật một cách an toàn
Thuật toán EB sử dụng một dãy các điểm kiểm soát để biểu diễn đường đi của robot Các điểm kiểm soát này được kết nối bởi các dải đàn hồi Thuật toán dựa trên nguyên tắc làm mềm các dải đàn hồi để đưa robot đi qua các chướng ngại vật mà không xảy ra va chạm
Trang 19Thuật toán EB hoạt động theo các bước lặp Trong mỗi bước, thuật toán sẽ tính toán các chướng ngại vật để điều chỉnh vị trí các điểm kiểm soát và độ đàn hồi của các dải đàn hồi Quá trình này tiếp tục cho đến khi được tìm thấy một đường đi an toàn và không va chạm cho robot
Thuật toán EB có ưu điểm là linh hoạt và có thể thích ứng với các môi trường khác nhau Nó cũng có khả năng tránh được các chướng ngại vật phức tạp và tạo ra các đường đi mượt mà cho robot di chuyển
Thuật toán TEB bao gồm các ràng buộc hình học dựa trên mô hình động học ADVS trong các ràng buộc đa mục tiêu Mô hình ADVS vi sai có ưu điểm là di chuyển thuận tiện,
và phạm vi ứng dụng rộng rãi Sẽ thuận tiện cho việc kiểm soát thời gian thực khi lập kế hoạch đường dẫn được thực hiện trong môi trường phân xưởng phức tạp, như thể hiện trong Phương trình (2) [12]
V
V t
u t
V t
Trong đó, 𝑉𝐿 và 𝑉𝑅 là tốc độ của bánh xe bên trái và bên phải của trục sau ADVs và 𝐷
là khoảng cách giữa hai bánh xe
Thuật toán TEB tăng thông tin về khoảng thời gian giữa các chuỗi trạng thái ADVs dựa trên thuật toán EB, như thể hiện trong Công thức (2), tạo điều kiện cho xe tự hành tăng tốc độ và gia tốc, và chọn đường đi nhanh nhất và thỏa mãn các ràng buộc khác Nguyên tắc
cơ bản là sửa đổi đường dẫn toàn cầu bằng mô hình quỹ đạo, biến đổi đường dẫn ban đầu được tìm kiếm thành một chuỗi quỹ đạo dựa trên thời gian rời rạc, như trong Hình 1 Số lượng điều kiện tối ưu thỏa mãn ràng buộc để điều khiển chuyển động của xe ADVS trong thời gian thực, như thể hiện trong Phương trình (3) [13]
Trang 20{ }, 1, 2 , { }, 1, 2 , 1
i i
Trang 21
CHƯƠNG 2.PHẦN MỀM MÔ PHỎNG GAZEBO VÀ ROS
Hệ thống robot nói chung hay xe tự hành nói riêng, ngày nay là một thiết bị phần cứng phức tạp được trang bị vô số cảm biến và máy tính mini hay hệ thống nhúng, hệ thống vi điều khiển được điều khiển bởi phần mềm phân tán phức tạp Robot phải điều hướng và thực hiện thành công các nhiệm vụ cụ thể trong nhiều môi trường biến đổi theo thời gian Tuy nhiên để xây dựng các trường thử nghiệm thực tế, cũng như để kiểm tra hành vi của robot trong nhiều điều kiện khác nhau cần tốn nhiều nguồn lực về thời gian cũng như tài chính Việc sử dụng môi trường mô phỏng hiện đại cho phép các nhà nghiên cứu thử nghiệm an toàn và tiết kiệm chi phí đối với các hệ thống robot cũng như xe tự hành đang trong giai đoạn nghiên cứu và phát triển
Mô phỏng làm giảm chu kỳ phát triển và có thể linh hoạt áp dụng cho các môi trường khác nhau Mặc dù thực tế vẫn có một số nền tảng phần mềm mô phỏng và điều khiển cho các hệ thống robot và xe tự hành, tuy nhiên ROS [13] cho phép xây dựng phần mềm điều khiển và điều hướng robot đáng tin cậy và mô phỏng Gazebo[14-15] cùng với thư viện RVis của ROS giúp quá trình tạo mô phỏng, kết quả có thể được triển khai trực tiếp tới phần cứng robot trong thực tế
Nội dung chương, chúng tôi tập trung mô tả các công cụ cũng như quy trình thiết kế và thay đổi môi trường để phát triển và mô phỏng xe tự hành sử dụng phần mềm ROS và Gazebo
2.1.ROS
Hệ điều hành ROS là một khung tham chiếu nguồn mở được sử dụng để xây dựng và quản lý các hệ thống robot nói chung và xe tự hành nói riêng ROS cung cấp tập hợp các thư viện phần mềm và công cụ giúp đơn giản hóa việc tạo ra các hệ thống robot và các vật thể phức tạp ROS được thiết kế như một hệ thống phân tán, với các nút giao tiếp với nhau qua mạng Các nút là các chương trình riêng lẻ thực hiện các tác vụ cụ thể, chẳng hạn như cảm biến, truyền động hoặc tính toán Các nút này có thể chạy trên các máy khác nhau, cho phép
Trang 22xử lý phân tán và giao tiếp trên một hệ thống robot ROS cung cấp bộ công cụ và thư viện phổ biến cho robot, bao gồm trình điều khiển cho các cảm biến và bộ truyền động thông thường, thuật toán để xử lý dữ liệu cảm biến và các công cụ để trực quan hóa và gỡ lỗi cho
hệ thống robot ROS cũng bao gồm hệ thống quản lý các gói, cho phép các nhà phát triển dễ dàng chia sẻ và sử dụng lại mã nguồn của các dự án ROS đã trở nên phổ biến đáng kể trong cộng đồng người máy và được sử dụng rộng rãi trong các ứng dụng nghiên cứu và thương mại Nó đã được sử dụng trong nhiều ứng dụng robot, bao gồm máy bay không người lái,
xe tự hành, robot công nghiệp và robot hình người
Nhìn chung, ROS là một khung linh hoạt và mạnh mẽ để xây dựng và quản lý các hệ thống robot phức tạp, cung cấp một cách tiêu chuẩn hóa để tạo, chia sẻ và sử dụng lại mã trong nhiều dự án[4] Hãy tưởng tượng rằng chúng ta sẽ chế tạo một robot di động tự động Dưới đây là một số lý do tại sao mọi người chọn ROS thay vì các nền tảng robot khác như Player, YARP, Orocos, MRPT, v.v
Khả năng cao cấp: ROS đi kèm với các khả năng sẵn sàng để sử dụng, ví dụ: các gói
SLAM và AMCL trong ROS có thể được sử dụng để thực hiện điều hướng tự động trong robot di động và gói MoveIt cho chuyển động lập kế hoạch của người thao tác robot Những khả năng này có thể được sử dụng trực tiếp trong phần mềm mà không gặp trở ngải nào Ngoài ra, ROS còn cung cấp nhiều tính năng để có thể cấu hình cao; và điềuchỉnh từng khả năng bằng các tham số khác nhau
Nhiều công cụ: ROS có rất nhiều công cụ để gỡ lỗi, trực quan hóa và thực hiện mô
phỏng Các công cụ như rqt_gui, RViz và Gazebo là một số công cụ nguồn mở mạnh để gỡ lỗi, trực quan hóa và mô phỏng
• Hỗ trợ các cảm biến và bộ truyền động cao cấp: ROS được tích hợp các trình điều
khiển thiết bị và gói giao diện của các cảm biến và bộ truyền động khác nhau trong robot Các cảm biến cao cấp bao gồm Velodyne-LIDAR, máy quét Laser, Kinect, v.v và các bộ truyền động như động cơ servo Dynamixel Chúng ta có thể giao tiếp các thành phần này với ROS mà không gặp bất kỳ rắc rối nào
Trang 23•Khả năng hoạt động giữa các nền tảng: Phần mềm trung gian truyền thông báo của
ROS cho phép giao tiếp giữa các nút khác nhau Các nút này có thể được lập trình bằng bất
kỳ ngôn ngữ nào Chúng ta có thể viết các nút hiệu năng cao bằng C++ hoặc C và các nút khác bằng Python hoặc Java
• Tính mô đun: Một trong những vấn đề có thể xảy ra trong hầu hết các ứng dụng
robot độc lập là nếu bất kỳ luồng nào của mã chính bị lỗi, toàn bộ ứng dụng robot có thể dừng lại Trong ROS, tình huống lại khác, chúng ta đang viết các nút khác nhau cho mỗi quy trình và nếu một nút gặp sự cố, hệ thống vẫn có thể hoạt động Ngoài ra, ROS cung cấp các phương pháp mạnh mẽ để tiếp tục hoạt động ngay cả khi bất kỳ cảm biến hoặc động cơ nào gặp sự cố
•Xử lý tài nguyên đồng thời: Xử lý tài nguyên phần cứng bằng nhiều quy trình luôn
là một trong những vấn đề cần quan tâm Hãy tưởng tượng, chúng ta muốn xử lý hình ảnh
từ máy ảnh để nhận diện khuôn mặt và phát hiện chuyển động, chúng tôi có thể viết lệnh dưới dạng một thực thể duy nhất có thể thực hiện cả hai hoặc chúng ta có thể viết thành các luồng đơn để xử lý đồng thời Nếu chúng ta muốn thêm nhiều hơn hai tính năng vào các luồng, ứng dụng sẽ trở nên phức tạp và khó gỡ lỗi Nhưng trong ROS, chúng ta có thể truy cập các thiết bị từ trình điều khiển ROS
Bất kỳ nút ROS nào cũng có thể thông báo hình ảnh từ trình điều khiển camera ROS
và mỗi nút có thể thực hiện các chức năng khác nhau Nó có thể làm giảm độ phức tạp trong tính toán và cũng tăng khả năng sửa lỗi của toàn bộ hệ thống
Tính cộng đồng cao: Khi chúng ta chọn thư viện hoặc khung phần mềm, đặc biệt là
từ cộng đồng nguồn mở, một trong những yếu tố chính cần được quan trước khi sử dụng đó
là cộng đồng nhà phát triển và hỗ trợ phần mềm Không có gì đảm bảo về sự hỗ trợ từ một công cụ mã nguồn mở Một số công cụ cung cấp hỗ trợ tốt và một số công cụ thì không Trong ROS, cộng đồng hỗ trợ đang hoạt động Có trang web để xử lý các truy vấn hỗ trợ từ người dùng (http://answers.ros.org)
Trang 24Tương tự như hệ điều hành, các các file ROS cũng được sắp xếp trên đĩa cứng theo một cấu trúc cụ thể Ở cấp độ này, chúng ta có thể thấy các file này được sắp xếp như thế nào trên đĩa
Biểu đồ sau đây cho thấy cách sắp xếp file và thư mục ROS trên đĩa:
• Package manifest: nằm bên trong một gói chứa thông tin về gói, tác giả, giấy phép, các thành phần phụ thuộc, cờ biên dịch, v.v Tệp package.xml bên trong gói ROS là tệp kê khai tập tin của gói đó
• Meta package: Thuật ngữ gói meta được sử dụng cho nhóm các gói cho mục đích đặc biệt Trong phiên bản ROS cũ như Electric và Fuerte, nó được gọi là ngăn xếp, nhưng sau đó ít sự dụng và các gói meta đã tồn tại Một trong những ví dụ về gói meta là ngăn xếp điều hướng ROS
•Beta packages manifest: Tương tự như bảng kê khai gói; sự khác biệt là nó có thể bao gồm các gói bên trong nó dưới dạng phụ thuộc thời gian chạy và khai báo thẻ xuất
Trang 25• Messages (.msg): Bản tin ROS là loại thông tin được gửi từ tiến trình ROS này sang tiến trình ROS khác Chúng ta có thể định nghĩa bản tin tùy chỉnh bên trong thư mục msg bên trong một gói (my_package/msg/ MyMessageType.msg) Phần mở rộng của tệp bản tin
là msg
• Services(.srv): Dịch vụ ROS là loại tương tác yêu cầu/trả lời giữa các quy trình Loại dữ liệu trả lời và yêu cầu có thể được xác định bên trong thư mục srv bên trong gói (my_package/srv/MyServiceType.srv)
• Repositories: Hầu hết các gói ROS được duy trì bằng việc sử dụng Hệ thống kiểm soát phiên bản VCS chẳng hạn như Git, subversion, mercurial, v.v Tập hợp các gói chia sẻ VCS chung có thể được gọi là repo Gói trong repo có thể được phát hành bằng cách sử dụng
công cụ tự động catkin có tên là Bloom
Trang 26• include/package_name: Thư mục này bao gồm các tiêu đề và thư viện mà chúng ta cần sử dụng bên trong gói
• scripts: Thư mục này chứa các tập lệnh Python có thể thực thi được Chúng ta có thể thấy hai ví dụ về mã nguồn trong sơ đồ khối
• src: Thư mục lưu mã nguồn C++ Chúng ta có thể thấy hai ví dụ về mã nguồn trong
sơ đồ khối
• launch: Thư mục chứa các tệp khởi chạy được sử dụng để khởi chạy một hoặc nhiều nút ROS
• msg: Thư mục chứa các định nghĩa thông báo tùy chỉnh
• srv: Thư mục chứa các định nghĩa dịch vụ
• action: Thư mục này chứa các định nghĩa hành động
• package.xml: Đây là file manifest của gói này
• CMakeLists.txt: Đây là tệp xây dựng CMake của gói này
Trang 272.2.GAZEBO
Gazebo [13] là một nền tảng mô phỏng 3D tiên tiến được sử dụng rộng rãi để phát triển
hệ thống tự động và người máy Môi trường mô phỏng cho các vật thể di chuyển mã nguồn
mở này cho phép các nhà phát triển thử nghiệm và tạo nguyên mẫu cho các hệ thống robot hay xe tự hành của họ trong một thế giới ảo có tính thực tế cao Gazebo mô hình thực tế các cảm biến, bộ truyền động vật lý, đồng thời được trang bị giao diện thân thiện với người dùng
để quản lý robot, máy bay không người lái và các hệ thống tự động khác Gazebo sử dụng công cụ vật lý Open Dynamics En-gine (ODE), đảm bảo mô phỏng chính xác động lực học của robot và tương tác với môi trường xung quanh Ngoài ra,
Gazebo có thể tương tác với ROS, được sử dụng để xây dựng và quản lý các hệ thống robot Với Gazebo, các nhà phát triển có quyền truy cập vào toàn bộ tính năng, bao gồm hỗ nhiều công cụ vật lý, các cảm biến khác nhau và các mô hình robot có thể tùy chỉnh Nền tảng này có thư viện phong phú bao gồm các plugin giúp nâng cao chức năng của nó, chẳng hạn như tạo địa hình, hình ảnh và thậm chí cả mô phỏng thời tiết Gazebo có khả năng mô phỏng các tình huống phức tạp liên quan đến nhiều robot, chướng ngại vật và các yếu tố môi trường, công cụ để kiểm tra và đánh giá các hệ thống robot trước khi triển khai
Gazebo là một nền tảng linh hoạt và mạnh mẽ được sử dụng để phát triển và thử nghiệm robot và ADV
Hình 6 Giao diện thiết kế Gazebo