Chương 1 trình bày tổng quan về robot di động và việc lập quỹ đạo cho robot di động trong môi trường nhà máy.2 mô tả vai trò của robot di động trong nhà máy. Bài toán lập quỹ đạo cho robot di động được trình bày ở phần 1.3 trình bày các nghiên cứu trong và ngoài nước về việc lập quỹ đạo cho robot di động trong môi trường truyền thông không dây. Từ đó đưa ra những lập luận xây dựng hướng nghiên cứu của luận án ở phần 1. Cuối cùng là phần kết luận chương.1 Bài toán lập quỹ đạo cho robot di động Trong suốt nhiều thập kỷ qua, lĩnh vực robot luôn được quan tâm, không ngừng phát triển và có ảnh hưởng lớn đến cuộc sống của con người [12].
Trong các nhà máy hiện đại, robot di động với khả năng di chuyển linh hoạt đóng một vai trò quan trọng trong các ứng dụng công nghiệp như robot vận chuyển hàng hóa, và các robot phục vụ các khâu chính trong dây chuyền sản xuất [13]. Chính vì vậy, robot di động đã và đang được nhiều nhà nghiên cứu cũng như các doanh nghiệp trong và ngoài nước quan tâm. Nhìn chung, cấu trúc của điều khiển chuyển động cho một Robot di động có thể chia ra 3 giai đoạn: Định vị, lập quỹ đạo chuyển động (Localization and Path Planning), điều khiển bám quỹ đạo (Trajectory Tracking), và điều khiển động cơ robot (Motor Control) như Hình 1. Dựa trên các tín hiệu trả về từ Lidar hoặc/và camera 3D, robot sẽ thực hiện việc định vị, bản đồ hóa và xác định các vật cản động và tĩnh trong môi trường làm việc.
Dựa trên bản đồ đã biết trước cùng với các tín hiệu thu về từ các cảm biến, bộ xử lý trung tâm thực hiện lập quỹ đạo chuyển động cho robot bằng một thuật toán nào đó. Sau đó, robot sẽ thực hiện di chuyển theo quỹ đạo đã tính toán bằng các thuật toán điều khiển bám quỹ đạo. Các tín hiệu điều khiển bám quỹ đạo được đưa đến điều khiển các động cơ thực thi yêu cầu đảm bảo cho robot hoàn thành nhiệm vụ. Như vậy, có nhiều vấn đề cần quan tâm trong hệ thống điều khiển của robot AMR.
Tuy nhiên, việc điều khiển chuyển động cho robot di động có hai vấn đề chính cần quan tâm đó là 7 Hình 1.1: Sơ đồ tổng quan hệ thống điều khiển robot di động, trong đó, qr là vị trí của robot, qe là sai số vị trí của robot, [τl , τa ]T là mô men đặt vào động cơ, v̄ và w̄ lần lượt là vận tốc dài và vận tốc góc của robot [1]. lập quỹ đạo chuyển động và thiết kế bộ điều khiển bám quỹ đạo. Ở luận án này, NCS quan tâm đến bài toán lập quỹ đạo (path planning hay trajectory planning) cho robot di động. Đây là lĩnh vực được quan tâm với số lượng lớn công trình nghiên cứu trong nhiều thập kỷ qua.
Đầu tiên, việc lập quỹ đạo cho robot với mục đích là tìm ra quỹ đạo tốt nhất giúp robot có thể di chuyển đến đích mà không xảy ra va chạm. Hệ thống lập quỹ đạo cho robot bao gồm hai giai đoạn: lập quỹ đạo toàn cục (global planner) và lập quỹ đạo cục bộ (local planner). Quỹ đạo toàn cục làm nhiệm vụ xác định vị trí hiện tại của robot và mục tiêu cần di chuyển đến sau đó tìm ra quỹ đạo tốt nhất trên cơ sở xem xét các chướng ngại vật tĩnh từ bản đồ. Cụ thể, phần lập quỹ đạo toàn cục cho robot sử dụng thông tin về bản đồ môi trường, vị trí robot từ hệ thống nhận thức.
Do đó tính chính xác khi lập quỹ đạo toàn cục phụ thuộc đáng kể vào hiệu năng của kỹ thuật SLAM (Simultaneous Localization and Mapping) được sử dụng. Trước tiên, robot cần xác định được vị trí của nó trong bản đồ tại thời điểm hiện tại. Lúc này, robot sẽ có những nhận thức về môi trường xung quanh, đặc biệt là bản đồ bao gồm những vật cản tĩnh đã xác định được ở hệ thống nhận thức. Tiếp đến, vị trí đích được xác định và được đặt trong vùng phạm vi đã xác định của bản đồ.
Từ đó, các thuật toán lập quỹ đạo sẽ tính toán để đảm bảo robot có thể di chuyển tới vị trí đích với quãng đường ngắn nhất. Việc tối ưu quỹ đạo chuyển động cho robot được nghiên cứu 8 Số lượng bài báo Hình 1.2: Số lượng các công trình nghiên cứu về lập quỹ đạo cho robot dựa trên số liệu từ Engineering Village [2]. nhằm nâng cao các chỉ số như quãng đường di chuyển, thời gian di chuyển, độ mượt mà khi di chuyển, hay năng lượng tiêu hao khi di chuyển của robot. Quỹ đạo toàn cục sẽ được đưa vào làm quỹ đạo tham chiếu cho phần lập quỹ đạo cục bộ để đảm bảo robot có thể di chuyển tới vị trí đích.
Bởi vì, ngoài các chướng ngại vật tĩnh thì khi robot di chuyển còn có thể có những chướng ngại vật động xuất hiện. Khi đó cần kết hợp dữ liệu đọc từ cảm biến để lập quỹ đạo cục bộ nhằm tránh các chướng ngại vật động. Chính vì vậy việc lập quỹ đạo cục bộ còn có thể hiểu là thuật toán tránh vật cản động. Có nhiều thuật toán lập quỹ đạo chuyển động cho robot di động được đề xuất và áp dụng như thuật toán Dijkstra, A*, D*, thuật toán di truyền GA (Genetic Algorithm),.
Cần nhấn mạnh thêm rằng việc lập quỹ đạo cho robot là một trong những vấn đề quan trọng của điều khiển robot. Bắt đầu từ giữa những năm 1960, vấn đề này đã nhận được sự quan tâm của các nhà nghiên cứu. Việc lập quỹ đạo cho robot trong một môi trường làm việc được mô tả là việc tìm quỹ đạo tối ưu hoặc cận tối ưu từ điểm ban đầu cho đến điểm đích đến để đạt hiệu quả về quãng đường, thời gian, năng lượng hay các yếu tố khác [14]. Một quỹ đạo tốt không chỉ tiết kiệm thời gian di chuyển mà còn giảm được các vấn đề về hao mòn và đầu tư chi phí cho robot.
Do đó, đã có nhiều thuật toán lập quỹ đạo cho robot được nghiên cứu và đề xuất.2 chỉ ra số lượng công bố liên quan đến việc lập quỹ đạo cho robot di động, số liệu được lấy từ Engineering Village [2]. Có nhiều tiêu chí để đánh giá quỹ đạo của robot di động như thời gian di chuyển, 9 quãng đường di chuyển, tổng mức năng lượng tiêu thụ,. Đối với robot di động, việc di chuyển thường xuyên dẫn đến việc phải trang bị các nguồn pin tháo rời. Do đó, mức năng lượng tiêu thụ của nguồn pin gắn trên thân robot là một vấn đề cần quan tâm.
Các robot di động cần nguồn năng lượng lớn cho hệ thống cảm biến, hệ thống điều khiển và hệ thống chuyển động. Do đó, trong bất kỳ ứng dụng nào, robot di động cũng đều được kỳ vọng có hiệu suất sử dụng pin cao để tăng thời gian làm việc của robot. Trên thực tế, yêu cầu về nguồn pin sử dụng cho robot cũng ngày càng tăng lên, dẫn đến việc tăng chi phí tại khâu này. Điều này gây ra một áp lực lớn cho các nhà thiết kế robot trong việc phát triển hệ thống nâng cao hiệu quả sử dụng nguồn pin và một áp lực khác lên người sử dụng khi vận hành hệ thống.
Chính vì vậy, tối ưu năng lượng tiêu thụ là một vấn đề lớn cần quan tâm. Để tối thiểu mức năng lượng tiêu thụ và tăng cường hiệu quả sử dụng năng lượng cho robot, các vấn đề liên quan đến thiết kế phần cứng và phát triển phần mềm đều đã được đề xuất. Trong đó, việc tối ưu quỹ đạo là một trong những giải pháp. Thuật toán Dijkstra được đề xuất bởi E.
Đây là một trong những thuật toán cổ điển để giải quyết bài toán tìm đường đi ngắn nhất từ một điểm cho trước tới tất cả các điểm còn lại trong đồ thị có trọng số không âm. Trọng số không âm của các cạnh nối hai đỉnh gần nhau trong đồ thị có thể chính là khoảng cách giữa chúng hoặc có thể xem xét đến các yếu tốt khác liên quan đến việc di chuyển dọc cạnh. Thuật toán Dijkstra ban đầu dựa trên một chiến lược tham lam để tìm đường đi ngắn nhất. Thuật toán chỉ quan tâm đến quãng đường ngắn nhất mà không quan tâm đến tính khả thi của giải pháp.
Thuật toán Dijkstra là một giải pháp phù hợp cho môi trường tĩnh hoặc cho việc lập quỹ đạo toàn cục. Dijkstra cũng có thể được ứng dụng trong môi trường động. Trong trường hợp này, thông tin về môi trường không được biết hoàn toàn, do đó thông tin về các đỉnh và các vật cản động được tính toán trong quá trình di chuyển. Tuy nhiên, chỉ sử dụng thuật toán Dijkstra sẽ không thể thực hiện được trong môi trường động.
Năm 1968, các tác giả của [17] đã đề xuất thuật toán A*. Thuật toán A* được phát triển dựa trên thuật toán Dijkstra. Bắt đầu từ một điểm xác định, trọng số đánh giá điểm hiện tại được cập nhật trên cơ sở lấy điểm có trọng số nhỏ nhất. Điểm quan trọng của thuật toán A* là hàm đánh giá vị trí điểm n f (n) = g(n) + h(n), (1.1) 10 trong đó g(n) thể hiện chi phí của đường đi cho đến điểm hiện tại n, và h(n) là hàm đánh giá chi phí nhỏ nhất đi từ điểm hiện tại đến đích.
Mục tiêu của thuật toán A* là thiết kế đánh giá được chi phí cho hàm f (n) từ vị trí ban đầu đến vị trí đích qua điểm n. Khoảng cách Euclidean giữa hai điểm thường được sử dụng làm giá trị của h(n). Trong khi đó, giá trị của g(n) là một hằng số, do đó, giá trị của hàm f (n) chủ yếu phụ thuộc vào h(n). Khi càng gần điểm đích thì giá trị h(n) càng nhỏ, theo đó, giá trị của f (n) cũng nhỏ dần.
Kết quả là sẽ tạo ra quỹ đạo với khoảng cách nhỏ nhất. Thuật toán A* yêu cầu thông tin vị trí đích và tìm kiếm dọc theo đường hướng đến đích. Do đó, việc tìm đường bằng thuật toán A* sẽ có hiệu quả cao hơn so với thuật toán Dijkstra. Với sự phát triển của trí thông minh nhân tạo, thuật toán A* được cải tiến và điều chỉnh cho phù hợp với nhiều ứng dụng khác nhau bao gồm cả thuật toán tìm đường cho robot, giao thông thông minh, lý thuyết đồ thị và điều khiển tự động [18].
Nhìn vào biểu thức (1.1) ta thấy có một sự đánh đổi giữa tốc độ tính toán và sai số của thuật toán A*. Để tăng tốc độ tính toán cần có bộ nhớ đủ lớn, nếu không tốc độ tính toán sẽ giảm.