ROBOWORKS Robofleet THUẬT TOÁN ĐA TÁC NHÂN
Thông số kỹ thuật
- Tên sản phẩm: ROBOWORKS
- Phiên bản: 20240501
- Biên soạn bởi: Wayne Liu & Janette Lin
- Ngày: 1 Tháng 5 2024
Thông tin sản phẩm
ROBOWORKS là hệ thống đa tác nhân cho phép triển khai nhiều thuật toán khác nhau để phối hợp và giao tiếp với robot.
Câu hỏi thường gặp
H: Tôi phải làm gì nếu robot không thể tự động kết nối với Wifi?
A: Nếu robot không tự động kết nối, hãy thử rút và cắm lại card mạng rồi thử kết nối lại.
BẢN TÓM TẮT
Tài liệu này chủ yếu giải thích cách sử dụng gói chức năng hình thành nhiều robot có tên là Wheeltec_multi.
Tài liệu này được chia thành bốn phần:
- Phần đầu tiên chủ yếu nói về việc giới thiệu phương pháp hình thành nhiều robot;
- phần thứ hai chủ yếu mô tả các thiết lập giao tiếp đa máy ROS, bao gồm giao tiếp đa máy xây dựng ROS và các vấn đề có thể gặp phải trong quá trình giao tiếp ROS;
- phần thứ ba chủ yếu mô tả các bước hoạt động của đồng bộ hóa thời gian nhiều máy;
- phần thứ tư trình bày chi tiết về cách sử dụng cụ thể của gói chức năng hình thành nhiều máy.
Mục đích của tài liệu này là giới thiệu về hệ thống robot đa tác nhân và cho phép người dùng bắt đầu dự án hình thành nhiều robot một cách nhanh chóng.
GIỚI THIỆU THUẬN TÁC ĐA TÁC NHÂN
Thuật toán hình thành đa tác nhân
Gói ROS này trình bày một vấn đề điển hình của nhiều tác nhân trong điều khiển hợp tác trong quá trình lái xe hình thành. Hướng dẫn này đặt nền tảng cho sự phát triển trong tương lai về chủ đề này. Thuật toán điều khiển hình thành đề cập đến một thuật toán điều khiển nhiều tác nhân để hình thành một đội hình cụ thể để thực hiện một nhiệm vụ. Hợp tác đề cập đến sự hợp tác giữa nhiều tác nhân sử dụng một mối quan hệ ràng buộc nhất định để hoàn thành một nhiệm vụ. Lấy ổ đĩa hình thành nhiều robot làm ví dụample, sự hợp tác có nghĩa là nhiều robot cùng nhau tạo thành một đội hình mong muốn. Bản chất của nó là một mối quan hệ toán học nhất định được thỏa mãn giữa các vị trí của từng robot. Các phương pháp hình thành chủ yếu được chia thành điều khiển đội hình tập trung và điều khiển đội hình phân tán. Các phương pháp điều khiển đội hình tập trung chủ yếu bao gồm phương pháp cấu trúc ảo, phương pháp lý thuyết đồ họa và phương pháp dự đoán mô hình. Các phương pháp điều khiển đội hình phân tán chủ yếu bao gồm phương pháp dẫn đầu-theo sau, phương pháp dựa trên hành vi và phương pháp cấu trúc ảo.
Gói ROS này áp dụng phương pháp leader-follower trong phương pháp điều khiển đội hình phân tán để thực hiện điều khiển đội hình nhiều robot. Một robot trong đội hình được chỉ định là robot dẫn đầu, và các robot khác được chỉ định là slaves để đi theo robot dẫn đầu. Thuật toán sử dụng quỹ đạo chuyển động của robot dẫn đầu để thiết lập tọa độ để các robot theo sau theo dõi với một hướng và tốc độ nhất định. Bằng cách hiệu chỉnh độ lệch vị trí so với tọa độ theo dõi, cuối cùng các robot theo sau sẽ giảm độ lệch giữa robot theo sau và tọa độ theo dõi dự kiến xuống bằng không để đạt được mục tiêu của điều khiển đội hình. Theo cách này, thuật toán tương đối ít phức tạp hơn.
Thuật toán tránh chướng ngại vật
Một thuật toán tránh chướng ngại vật phổ biến là phương pháp trường thế năng nhân tạo. Chuyển động của robot trong môi trường vật lý được coi là chuyển động trong trường lực nhân tạo ảo. Chướng ngại vật gần nhất được xác định bằng LiDAR. Chướng ngại vật cung cấp trường lực đẩy để tạo lực đẩy cho robot và điểm mục tiêu cung cấp trường hấp dẫn để tạo lực hấp dẫn cho robot. Theo cách này, nó điều khiển chuyển động của robot dưới tác động kết hợp của lực đẩy và lực hút.
Gói ROS này là một cải tiến dựa trên phương pháp trường thế năng nhân tạo. Đầu tiên, thuật toán hình thành tính toán vận tốc tuyến tính và góc của Slave follower. Sau đó, nó tăng hoặc giảm vận tốc tuyến tính và góc theo yêu cầu tránh chướng ngại vật. Khi khoảng cách giữa Slave follower và chướng ngại vật gần hơn, lực đẩy của chướng ngại vật đối với Slave follower lớn hơn. Trong khi đó, sự thay đổi của vận tốc tuyến tính và các biến thể vận tốc góc lớn hơn. Khi chướng ngại vật gần phía trước của Slave follower hơn, lực đẩy của chướng ngại vật đối với Slave follower trở nên lớn hơn (lực đẩy phía trước là lớn nhất và lực đẩy bên là nhỏ nhất). Kết quả là, các biến thể của vận tốc tuyến tính và vận tốc góc lớn hơn. Thông qua phương pháp trường thế năng nhân tạo, nó cải thiện giải pháp khi robot có thể ngừng phản ứng trước chướng ngại vật. Điều này phục vụ mục đích tránh chướng ngại vật tốt hơn.
CÀI ĐẶT GIAO TIẾP ĐA ĐẠI DIỆN
Giao tiếp đa tác nhân là một trong những bước quan trọng để hoàn thành đội hình nhiều robot. Khi vị trí tương đối của nhiều robot không được biết, các robot cần chia sẻ thông tin của nhau thông qua giao tiếp để tạo điều kiện thiết lập kết nối. Kiến trúc phân tán ROS và giao tiếp mạng rất mạnh mẽ. Nó không chỉ thuận tiện cho giao tiếp giữa các quy trình mà còn cho giao tiếp giữa các thiết bị khác nhau. Thông qua giao tiếp mạng, tất cả các nút có thể chạy trên bất kỳ máy tính nào. Các tác vụ chính như xử lý dữ liệu được hoàn thành ở phía máy chủ. Các máy phụ có trách nhiệm tiếp nhận dữ liệu môi trường do nhiều cảm biến thu thập. Máy chủ ở đây là trình quản lý chạy nút Master trong ROS. Khung giao tiếp đa tác nhân hiện tại là thông qua trình quản lý nút và trình quản lý tham số để xử lý giao tiếp giữa nhiều robot.
Các bước thiết lập liên lạc đa tác nhân
- Thiết lập ROS Controls trong cùng một mạng
- Có 2 cách thiết lập Điều khiển ROS Master/Slave trong cùng một mạng.
Lựa chọn 1:
Master Host tạo ra một mạng wifi cục bộ bằng cách chạy trình quản lý Master node. Nói chung, một trong những robot được chỉ định là master sẽ tạo ra mạng wifi này. Các robot hoặc máy ảo khác tham gia mạng wifi này với tư cách là slave.
Tùy chọn 2:
Mạng wifi cục bộ được cung cấp bởi bộ định tuyến của bên thứ ba như một trung tâm chuyển tiếp thông tin. Tất cả các robot được kết nối với cùng một bộ định tuyến. Bộ định tuyến cũng có thể được sử dụng mà không cần kết nối internet. Chọn một trong các robot làm chủ và chạy trình quản lý nút chủ. Các robot khác được chỉ định là nô lệ và chạy trình quản lý nút chủ từ chủ.
Quyết định lựa chọn tùy chọn nào phụ thuộc vào yêu cầu của dự án. Nếu số lượng robot cần giao tiếp không nhiều, nên sử dụng Tùy chọn 1 vì nó tiết kiệm chi phí và dễ thiết lập. Khi số lượng robot lớn, nên sử dụng Tùy chọn 2. Hạn chế về sức mạnh tính toán của bộ điều khiển chính ROS và băng thông wifi tích hợp hạn chế có thể dễ dàng gây ra sự chậm trễ và gián đoạn mạng. Bộ định tuyến có thể dễ dàng khắc phục những sự cố này. Xin lưu ý rằng khi thực hiện giao tiếp nhiều tác nhân, nếu máy ảo được sử dụng làm máy phụ ROS, chế độ mạng của máy ảo đó cần được đặt thành chế độ cầu nối.
Cấu hình biến môi trường Master/Slave
Sau khi tất cả các máy chủ ROS đều nằm trong cùng một mạng, các biến môi trường cho giao tiếp đa tác nhân cần được thiết lập. Biến môi trường này được cấu hình trong tệp .bashrc trong thư mục chính. Chạy lệnh gedit ~/.bashrc để khởi chạy nó. Xin lưu ý rằng cả tệp .bashrc của máy chủ và máy phụ trong giao tiếp đa tác nhân đều cần được cấu hình. Những gì cần thay đổi là các địa chỉ IP ở cuối tệp. Hai dòng là ROS_MASTER_URI và ROS_HOSTNAME, như thể hiện trong Hình 2-1-4. ROS_MASTER_URI và ROS_HOSTNAME của máy chủ ROS đều là IP cục bộ. ROS_MASTER_URI trong tệp .bashrc của máy phụ ROS cần được thay đổi thành địa chỉ IP của máy chủ trong khi ROS_HOSTNAME vẫn là địa chỉ IP cục bộ.
Giao tiếp đa máy ROS không bị hạn chế bởi phiên bản phát hành ROS. Trong quá trình giao tiếp đa máy, người ta cần lưu ý những điều sau:
- Hoạt động của chương trình ROS slave phụ thuộc vào chương trình ROS master của thiết bị ROS master. Chương trình ROS master phải khởi chạy trước trên thiết bị master trước khi thực hiện chương trình slave trên thiết bị slave.
- Địa chỉ IP của máy chủ và máy phụ trong giao tiếp nhiều máy cần phải nằm trong cùng một mạng. Điều này có nghĩa là địa chỉ IP và mặt nạ mạng con nằm trong cùng một mạng.
- ROS_HOSTNAME trong tệp cấu hình môi trường .bashrc không được khuyến khích sử dụng localhost. Nên sử dụng địa chỉ IP cụ thể.
- Trong trường hợp địa chỉ IP phụ không được đặt chính xác, thiết bị phụ vẫn có thể truy cập ROS master nhưng không thể nhập thông tin điều khiển.
- Nếu máy ảo tham gia giao tiếp đa tác nhân, chế độ mạng của nó cần được đặt thành chế độ cầu nối. Không thể chọn IP tĩnh cho kết nối mạng.
- Giao tiếp nhiều máy không thể view hoặc đăng ký các chủ đề thuộc loại dữ liệu tin nhắn không tồn tại cục bộ.
- Bạn có thể sử dụng bản demo mô phỏng Rùa Nhỏ để xác minh xem giao tiếp giữa các robot có thành công hay không:
- a. Chạy khỏi chủ
- rescore #khởi chạy dịch vụ ROS
- rostrum turtles turtlesim_node #launch turtles giao diện
- b. Chạy trốn khỏi nô lệ
- chạy lại turtles turtle_teleop_key #khởi chạy nút điều khiển bàn phím cho turtles
- a. Chạy khỏi chủ
Nếu bạn có thể điều khiển chuyển động của rùa từ bàn phím trên máy phụ, điều đó có nghĩa là giao tiếp chính/phụ đã được thiết lập thành công.
Kết nối Wifi tự động trong ROS
Các quy trình dưới đây giải thích cách cấu hình robot để tự động kết nối với mạng máy chủ hoặc mạng bộ định tuyến.
Thiết lập kết nối Wifi tự động cho Jetson Nano
- Kết nối Jetson Nano qua công cụ điều khiển từ xa VNC hoặc trực tiếp vào màn hình máy tính. Nhấp vào biểu tượng wifi ở góc trên bên phải rồi nhấp vào “Chỉnh sửa kết nối..”
- Nhấp vào nút + trong Kết nối mạng:
- Trong cửa sổ “Chọn loại kết nối”, nhấp vào menu thả xuống và nhấp vào nút “Tạo…”:
- Trong Control Panel, nhấp vào tùy chọn Wifi. Nhập tên Wifi để kết nối vào trường “Connection Name” và SSID. Chọn “Client” trong menu thả xuống “Mode” và chọn “wlan0” trong menu thả xuống “Device”.
- Trong Control Panel, nhấp vào tùy chọn “General” và chọn “Automatically connect to this network…”. Đặt mức độ ưu tiên kết nối thành 1 trong tùy chọn “Connection priority for auto-activation”. Chọn tùy chọn “All users may connect to this network”. Khi tùy chọn được đặt thành 0 trong “Connection priority for auto-activation” cho mạng wifi khác, điều này có nghĩa đây là mạng wifi được ưu tiên trong quá khứ.
- Nhấp vào tùy chọn “Wi-Fi Security” trong Control Panel. Chọn “WPA & WPA2 Personal” trong trường “Security”. Sau đó nhập mật khẩu Wi-Fi vào trường “Password”.
Ghi chú: Nếu robot không thể tự động kết nối với mạng wifi sau khi khởi động khi mức ưu tiên wifi được đặt thành 0, có thể do vấn đề về tín hiệu wifi yếu. Để tránh vấn đề này, bạn có thể chọn xóa tất cả các tùy chọn wifi đã kết nối trong quá khứ. Chỉ giữ lại mạng wifi do máy chủ hoặc bộ định tuyến tạo ra. Nhấp vào tùy chọn “Cài đặt IPv4” trong bảng điều khiển cài đặt mạng. Chọn tùy chọn “Thủ công” trong trường “Phương pháp”. Sau đó nhấp vào “Thêm”, điền địa chỉ IP của máy phụ vào trường “Địa chỉ”. Điền “24” vào trường “Mặt nạ mạng”. Điền phân đoạn mạng IP vào “Cổng”. Đổi ba chữ số cuối của phân đoạn mạng IP thành “1”. Mục đích chính của bước này là cố định địa chỉ IP. Sau khi hoàn tất lần đầu tiên, địa chỉ IP sẽ không thay đổi khi kết nối với cùng một WIFI sau đó.
Sau khi tất cả các thiết lập được cấu hình, hãy nhấp vào "lưu" để lưu các thiết lập. Sau khi lưu thành công, robot sẽ tự động kết nối với mạng của máy chủ hoặc bộ định tuyến khi bật nguồn.
Ghi chú:
- Địa chỉ IP được đặt ở đây phải giống với địa chỉ IP được đặt trong tệp .bashrc ở Phần 2.1.
- Địa chỉ IP của master và mỗi Slave phải là duy nhất.
- Địa chỉ IP chính và phụ phải nằm trong cùng một phân đoạn mạng.
- Bạn phải đợi máy chủ hoặc bộ định tuyến gửi tín hiệu WiFi trước khi robot nô lệ có thể bật nguồn và tự động kết nối với mạng WiFi.
- Sau khi thiết lập xong, nếu robot không thể tự động kết nối với WiFi khi bật, vui lòng cắm và rút card mạng rồi thử kết nối lại.
Thiết lập kết nối Wifi tự động cho Raspberry Pi
Quy trình dành cho Raspberry Pi giống như Jetson Nano.
Thiết lập kết nối Wifi tự động cho Jetson TX1
Việc thiết lập trong Jetson TX1 gần giống như trong Jetson Nano với một ngoại lệ là Jetson TX1 phải chọn thiết bị “wlan1” trong “Thiết bị” trong bảng điều khiển cài đặt mạng.
CÀI ĐẶT ĐỒNG BỘ HÓA ĐA Agent
Trong dự án hình thành nhiều tác nhân, thiết lập đồng bộ thời gian nhiều tác nhân là một bước quan trọng. Trong quá trình hình thành, nhiều vấn đề sẽ phát sinh do thời gian hệ thống không đồng bộ của mỗi robot. Đồng bộ thời gian nhiều tác nhân được chia thành hai tình huống, cụ thể là tình huống mà cả robot chủ và robot tớ đều được kết nối với mạng và tình huống mà cả hai đều bị ngắt kết nối khỏi mạng.
Kết nối mạng chủ/phụ thành công
Sau khi giao tiếp đa tác nhân được cấu hình, nếu máy chủ và máy tớ có thể kết nối thành công với mạng, chúng sẽ tự động đồng bộ hóa thời gian mạng. Trong trường hợp này, không cần thực hiện thêm hành động nào nữa để đạt được đồng bộ hóa thời gian.
Khắc phục sự cố mất kết nối mạng
Sau khi cấu hình giao tiếp đa tác nhân, nếu thiết bị chủ và thiết bị tớ không thể kết nối thành công với mạng, cần phải đồng bộ hóa thời gian thủ công. Chúng ta sẽ sử dụng lệnh date để hoàn tất cài đặt thời gian.
Đầu tiên, cài đặt công cụ terminator. Từ công cụ terminator, sử dụng công cụ chia cửa sổ để đặt các terminal điều khiển của master và Slave vào cùng một cửa sổ terminal (nhấp chuột phải để đặt cửa sổ chia đôi và đăng nhập vào máy chủ và máy phụ bằng ssh trong các cửa sổ khác nhau) .
- sudo apt-get install terminator # Tải terminator để chia cửa sổ terminal
Nhấp vào nút ở trên cùng bên trái, chọn tùy chọn [Phát sóng đến tất cả]/[Phát sóng tất cả] và nhập lệnh sau. Sau đó sử dụng công cụ kết thúc để đặt cùng thời gian cho thiết bị chính và thiết bị phụ.
- sudo date -s “2022-01-30 15:15:00” # Thiết lập thời gian thủ công
GÓI ROS ĐA ĐẠI LÝ
Giới thiệu gói ROS
Thiết lập tên nô lệ
Trong gói chức năng wheeltec_multi, cần phải đặt tên duy nhất cho mỗi robot phụ để tránh lỗi. Ví dụample, số 1 cho slave1 và số 2 cho slave2, v.v. Mục đích của việc đặt các tên khác nhau là để nhóm các nút đang chạy và phân biệt chúng theo các không gian tên khác nhau. Ví dụample, chủ đề radar của slave 1 là/slave1/scan và nút LiDAR của slave 1 là/slave1/laser.
Thiết lập tọa độ nô lệ
Gói wheeltec_multi có thể triển khai các đội hình tùy chỉnh. Khi cần các đội hình khác nhau, chỉ cần sửa đổi tọa độ mong muốn của các rô-bốt phụ. Slave_x và slave_y là tọa độ x và y của nô lệ với master là điểm tham chiếu ban đầu. Mặt trước của master là hướng dương của tọa độ x và phía bên trái là hướng dương của tọa độ y. Sau khi hoàn tất cài đặt, một tọa độ TF slave1 sẽ được phát hành làm tọa độ mong đợi của slave. Nếu có một master và hai slave, có thể thiết lập đội hình sau:
- Cấu hình theo chiều ngang: Bạn có thể đặt tọa độ của slave bên trái thành slave_x:0, slave_y: 0.8 và tọa độ của slave bên phải thành slave_x:0, slave_y:-0.8.
- Hình thành cột: Tọa độ của một nô lệ có thể được đặt thành: Slave_x:-0.8, Slave_y:0 và tọa độ của nô lệ khác có thể được đặt thành: Slave_x:-1.8, Slave_y:0.
- Đội hình tam giác: Tọa độ của một nô lệ có thể được đặt thành: Slave_x:-0.8, Slave_y: 0.8 và tọa độ của nô lệ khác có thể được đặt thành: Slave_x:-0.8, Slave_y:-0.8.
Các đội hình khác có thể được tùy chỉnh khi cần thiết.
Ghi chú:
- Khoảng cách khuyến nghị giữa hai robot được đặt thành 0.8 và không nên thấp hơn 0.6. Khoảng cách giữa nô lệ và chủ được khuyến nghị đặt dưới 2.0. Càng ở xa chủ, tốc độ tuyến tính của nô lệ càng lớn khi chủ quay. Do giới hạn của tốc độ tối đa, tốc độ của nô lệ sẽ bị lệch nếu không đáp ứng được yêu cầu. Đội hình robot sẽ trở nên hỗn loạn.
Khởi tạo vị trí nô lệ
- Vị trí ban đầu của slave là tọa độ mong đợi theo mặc định. Trước khi chạy chương trình, chỉ cần đặt robot slave gần tọa độ mong đợi của nó để hoàn tất quá trình khởi tạo. Chức năng này được thực hiện bởi nút pose_setter trong tệp có tên turn_on_wheeltec_robot.launch trong gói wheeltec_multi, như thể hiện trong Hình 4-1-3.
Nếu người dùng muốn tùy chỉnh vị trí ban đầu của Slave, họ chỉ cần đặt giá trị Slave_x và Slave_y như trong Hình 4-1-4 trong Wheeltec_slave.launch. Các giá trị Slave_x và Slave_y sẽ được chuyển đến Turn_on_wheeltec_robot.launch và được gán cho nút pose_setter. Chỉ cần đặt robot vào vị trí tùy chỉnh trước khi chạy chương trình.
Cấu hình vị trí
Trong đội hình đa tác nhân, vấn đề đầu tiên cần giải quyết là vị trí của máy chủ và máy tớ. Máy chủ sẽ xây dựng bản đồ 2D trước. Sau khi tạo và lưu bản đồ, hãy chạy gói điều hướng 2D và sử dụng thuật toán định vị Monte Carlo thích ứng (định vị amcl) trong gói điều hướng 2D để cấu hình vị trí của máy chủ. Vì máy chủ và máy tớ nằm trong cùng một mạng và chia sẻ cùng một trình quản lý nút, nên máy chủ đã khởi chạy bản đồ từ gói điều hướng 2D, tất cả các máy tớ có thể sử dụng cùng một bản đồ trong cùng một trình quản lý nút. Do đó, máy tớ không cần phải tạo bản đồ. Trong wheeltec_slave.launch, hãy chạy định vị Monte Carlo (định vị amcl), các máy tớ có thể cấu hình vị trí của chúng bằng cách sử dụng bản đồ do máy chủ tạo ra.
Cách tạo đội hình và duy trì đội hình
Trong quá trình di chuyển hình thành, chuyển động chính có thể được điều khiển bằng Rviz, bàn phím, điều khiển từ xa và các phương pháp khác. Slave tính toán tốc độ của nó thông qua nút slave_tf_listener để kiểm soát chuyển động của nó và đạt được mục tiêu của hình thành. Nút slave_tf_listener giới hạn tốc độ của slave để tránh tốc độ quá mức do tính toán của nút, điều này sẽ gây ra một loạt các tác động. Giá trị cụ thể có thể được sửa đổi trong wheeltec_slave.launch.
Các tham số liên quan của thuật toán hình thành như sau:
Thông tin tránh chướng ngại vật
Trong đội hình đa tác nhân, master có thể sử dụng nút move_base để hoàn tất việc tránh chướng ngại vật. Tuy nhiên, việc khởi tạo slave không sử dụng nút move_base. Tại thời điểm này, cần phải gọi nút multi_avoidance trong chương trình slave. Nút tránh chướng ngại vật được bật theo mặc định trong gói. Nếu cần, avoidance có thể được đặt thành “false” để vô hiệu hóa nút tránh chướng ngại vật.
Một số tham số liên quan của nút tránh chướng ngại vật được hiển thị trong hình bên dưới, trong đó safe_distance là giới hạn khoảng cách an toàn của chướng ngại vật và danger_distance là giới hạn khoảng cách nguy hiểm của chướng ngại vật. Khi chướng ngại vật nằm trong khoảng cách an toàn và khoảng cách nguy hiểm, slave sẽ điều chỉnh vị trí của nó để tránh chướng ngại vật. Khi chướng ngại vật nằm trong phạm vi nguy hiểm, slave sẽ lái xe ra khỏi chướng ngại vật.
Quy trình hoạt động
Nhập lệnh thực hiện
Chuẩn bị trước khi bắt đầu hình thành đa tác nhân:
- Master và Slave kết nối với cùng một mạng và thiết lập giao tiếp đa tác nhân một cách chính xác
- Master xây dựng trước bản đồ 2D và lưu nó
- Master được đặt ở điểm bắt đầu của bản đồ và Slave được đặt gần vị trí khởi tạo (vị trí hình thành nô lệ mặc định)
- Sau khi đăng nhập từ xa vào Jetson Nano/Raspberry Pi, hãy thực hiện đồng bộ hóa thời gian.
ngày sudo -s “2022-04-01 15:15:00”
- Bước 1: Mở bản đồ 2D từ bản gốc.
roslaunch Turn_on_wheeltec_robot Navigation.launch
- Bước 2: Chạy chương trình hình thành từ tất cả các slave.
roslaunch Wheeltec_multi Wheeltec_slave.launch
- Bước 3: Mở nút điều khiển bàn phím từ máy chủ hoặc sử dụng cần điều khiển để điều khiển từ xa chuyển động của máy chủ.
khởi chạy lại wheeltec_robot_rc keyboard_teleop.launch
- Bước 4: (Tùy chọn) Quan sát chuyển động của robot từ Rviz.
Rviz
Ghi chú:
- Đảm bảo hoàn thành thao tác đồng bộ hóa thời gian trước khi thực hiện chương trình.
- Khi điều khiển master của đội hình đa tác nhân, tốc độ góc không được quá nhanh. Tốc độ tuyến tính được khuyến nghị là 0.2m/s, tốc độ góc dưới 0.3rad/s. Khi master đang rẽ, slave càng xa master thì tốc độ tuyến tính càng cần thiết. Do giới hạn về tốc độ tuyến tính và tốc độ góc trong gói, khi xe slave không thể đạt được tốc độ yêu cầu, đội hình sẽ hỗn loạn. Nhìn chung, tốc độ tuyến tính quá mức có thể dễ dàng làm hỏng robot.
- Khi số lượng slave nhiều hơn một, do băng thông wifi trên bo mạch của máy chủ ROS bị hạn chế, dễ gây ra sự chậm trễ đáng kể và ngắt kết nối liên lạc giữa nhiều agent. Sử dụng bộ định tuyến có thể giải quyết tốt vấn đề này.
- Cây TF của đội hình nhiều robot (2 nô lệ) là: rqt_tf_tree
- Sơ đồ mối quan hệ nút của đội hình nhiều robot (2 nô lệ) là: rqt_graph
Tài liệu / Tài nguyên
![]() |
ROBOWORKS Robofleet THUẬT TOÁN ĐA TÁC NHÂN [tập tin pdf] Hướng dẫn sử dụng Thuật toán đa tác nhân Robofleet, Robofleet, Thuật toán đa tác nhân, Thuật toán tác nhân, Thuật toán |