ROBOWORKS Robofleet Orin Nano x3 ROS Robot 

ROBOWORKS Robofleet Orin Nano x3 ROS Robot

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 thứ nhất chủ yếu 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ài đặt giao tiếp nhiều máy ROS, bao gồm cấu trúc ROS của giao tiếp nhiều máy 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 cách sử dụng cụ thể của gói chức năng tạo hì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 việc điều khiển cộng tác trong quá trình 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 đội hình là thuật toán điều khiển nhiều tác nhân tạo 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 bằng cách 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 việc điều khiển đội hình nhiều robot làm ví dụample, cộng 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ối quan hệ toán học nhất định được thỏa mãn giữa các vị trí của mỗi robot. Các phương pháp hình thành chủ yếu được chia thành kiểm soát đội hình tập trung và kiểm soát độ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 kiểm soát đội hình phân tán chủ yếu bao gồm phương pháp lãnh đạo-người theo dõi, 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 người dẫn đầu-người theo dõi trong phương pháp điều khiển đội hình phân tán để thực hiện quá trình điều khiển đội hình nhiều robot. Một robot trong đội hình được chỉ định làm người lãnh đạo và các robot khác được chỉ định làm nô lệ để đi theo người chỉ huy. Thuật toán sử dụng quỹ đạo chuyển động của robot dẫn đầu để thiết lập tọa độ cho các robot sau theo dõi với hướng và tốc độ nhất định. Bằng cách điều chỉnh độ lệch vị trí so với tọa độ theo dõi, người theo dõi cuối cùng sẽ giảm độ lệch giữa người theo dõi và tọa độ theo dõi dự kiến ​​về 0 để đạt được mục tiêu của động lực hình thà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ế 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ởi 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 ra lực hấp dẫn cho robot. Bằng cách này, nó điều khiển chuyển động của robot dưới tác động kết hợp giữ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à vận tốc góc của tín hiệu Slave. Sau đó, nó tăng hoặc giảm vận tốc tuyến tính và vận tốc góc tùy theo yêu cầu tránh chướng ngại vật. Khi khoảng cách giữa người theo dõi Slave và chướng ngại vật càng gần thì lực đẩy của chướng ngại vật đối với người theo dõi Slave càng lớn. Trong khi đó sự thay đổi của vận tốc tuyến tính và sự biến đổi vận tốc góc lớn hơn. Khi chướng ngại vật càng gần phía trước của người theo Slave thì lực đẩy của chướng ngại vật đối với người theo Slave càng lớ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à sự biến thiên 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ế thế nhân tạo sẽ cải thiện được lời giải

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 đa robot. Khi không xác định được vị trí tương đối của nhiều robot, 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 thuận lợi cho việc thiết lập kết nối. Kiến trúc phân tán ROS và truyền thông mạng rất mạnh mẽ. Nó không chỉ thuận tiện cho việc liên lạc giữa các quá trình mà còn thuận tiện cho việc liên lạc 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 nhiệm vụ chính như xử lý dữ liệu được hoàn thành ở phía máy chủ. Các máy nô lệ chịu trách nhiệm nhận dữ liệu môi trường được thu thập bởi các cảm biến khác nhau. Máy chủ ở đây là người quản lý chạy nút Master trong ROS. Khung giao tiếp đa tác nhân hiện tại 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.

Thiết lập giao tiếp đa tác nhân

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 wifi cục bộ bằng cách chạy trình quản lý nút Master. Nói chung, một trong những robot được chỉ định làm chủ 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à nô lệ.

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 làm trung tâm chuyển tiếp thông tin. Tất cả các robot đều đượ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 robot chính và chạy trình quản lý nút Master. Các robot khác được chỉ định làm nô lệ và chạy trình quản lý nút chính từ máy chủ.

Quyết định chọn tùy chọn nào tùy thuộc vào yêu cầu dự án của bạn. Nếu số lượng robot cần giao tiếp không nhiều thì nên sử dụng Phương án 1 vì nó tiết kiệm chi phí và dễ thiết lập. Khi số lượng robot ở mức lớn, nên sử dụng Phương án 2. Hạn chế về khả năng 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 vấn đề này.

Xin lưu ý rằng khi thực hiện giao tiếp đa tác nhân, nếu máy ảo được sử dụng làm ROS phụ, chế độ mạng của nó cần được đặt thành chế độ cầu nối.

Định cấu hình các 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ần phải đặt các biến môi trường cho giao tiếp đa tác nhân. Biến môi trường này được cấu hình trong .bashrc file trong thư mục chính. Chạy lệnh gedit ~/.bashrc để khởi chạy nó. Xin lưu ý rằng cả .bashrc files của master và Slave trong giao tiếp đa tác nhân cần được cấu hình. Điều cần thay đổi là các địa chỉ IP ở cuối file. Hai dòng là ROS_MASTER_URI và ROS_HOSTNAME, như 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 nô lệ ROS .bashrc file cần phải 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ộ.

Thiết lập giao tiếp đa tác nhân

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:

  1. Hoạt động của chương trình phụ ROS phụ thuộc vào chương trình chính ROS của thiết bị chính ROS.
    Chương trình chính ROS phải khởi chạy trước trên thiết bị chính trước khi thực thi chương trình phụ trên thiết bị phụ.
  2. Đị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.
  3. ROS_HOSTNAME trong cấu hình môi trường file .bashrc không được khuyến khích sử dụng localhost. Nên sử dụng một địa chỉ IP cụ thể.
  4. 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.
  5.  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.
  6. 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ộ.
  7. 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ủ
    roscore #khởi chạy dịch vụ ROS
    rosrun Turtlesim Turtlesim_node #khởi chạy giao diện Turtlesim
    b.
    Chạy trốn khỏi nô lệ
    rosrun Turtlesim Turtle_teleop_key #khởi chạy nút điều khiển bàn phím cho Turtlesim

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

Quy trình dưới đây giải thích cách định cấu hình rô-bốt để tự động kết nối với mạng chủ hoặc mạng bộ định tuyến.

Thiết lập kết nối Wifi tự động cho Jetson Nano

  1. Kết nối Jetson Nano qua công cụ điều khiển từ xa VNC hoặc trực tiếp tới 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, sau đó nhấp vào “Chỉnh sửa kết nối..”
    Thiết lập giao tiếp đa tác nhân
  2. Nhấp vào nút + trong Kết nối mạng:
    Thiết lập giao tiếp đa tác nhân
  3. 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…”:
    Thiết lập giao tiếp đa tác nhân
  4. 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 “Tên kết nối” và SSID. Chọn “Máy khách” trong menu thả xuống “Chế độ” và chọn “wlan0” trong menu thả xuống “Thiết bị”.
    Thiết lập giao tiếp đa tác nhân
  5. Trong Bảng điều khiển, nhấp vào tùy chọn “Chung” và chọn “Tự động kết nối với mạng này…”. Đặt mức độ ưu tiên kết nối thành 1 trong tùy chọn “Ưu tiên kết nối để tự động kích hoạt”. Chọn tùy chọn “Tất cả người dùng có thể kết nối với mạng này”. Khi tùy chọn được đặt thành 0 trong “Ưu tiên kết nối để tự động kích hoạt” cho các wifi khác, điều này có nghĩa đây là mạng wifi được ưu tiên trước đây.
    Thiết lập giao tiếp đa tác nhân
  6. Nhấp vào tùy chọn “Bảo mật Wi-Fi” trong Bảng điều khiển. Chọn “WPA & WPA2 Personal” trong trường “Bảo mật”. Sau đó nhập mật khẩu Wifi vào
    Thiết lập giao tiếp đa tác nhân

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 thì có thể nguyên nhân là do tín hiệu wifi yếu. Để tránh sự cố này, bạn có thể chọn xóa tất cả các tùy chọn wifi đã kết nối trước đó. Chỉ giữ lại mạng wifi do máy chủ hoặc bộ định tuyến tạo.

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 thức”. Sau đó nhấp vào “Thêm”, điền địa chỉ IP của máy nô lệ vào trường “Địa chỉ”. Điền vào “24” trong trường “Netmask”. Điền vào phân đoạn mạng IP trong “Cổng”. Thay đổ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à sửa địa chỉ IP. Sau khi hoàn thành 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 đó.

Thiết lập giao tiếp đa tác nhân

Sau khi tất cả các cài đặt được định cấu hình, hãy nhấp vào “lưu” để lưu cài đặt. 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ú:

  1. Địa chỉ IP được đặt ở đây phải giống với địa chỉ IP được đặt trong .bashrc file trong Phần 2.1.
  2. Địa chỉ IP của master và mỗi Slave phải là duy nhất.
  3. Địa chỉ IP chính và phụ phải nằm trong cùng một phân đoạn mạng.
  4. 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.
  5. Sau khi cài đặt được định cấu hình, 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 và 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 

Thiết lập trong Jetson TX1 gần giống như trong Jetson Nano ngoại trừ một ngoại lệ là Jetson TX1 nên chọn thiết bị “wlan1” trong “Device” trong bảng điều khiển cài đặt mạng.

Thiết lập giao tiếp đa tác nhân

CÀI ĐẶT ĐỒNG BỘ HÓA ĐA Agent

Trong dự án hình thành nhiều tác nhân, cài đặt đồng bộ hóa thời gian của nhiều tác nhân là một bước quan trọng. Trong quá trình hình thành sẽ phát sinh nhiều vấn đề do thời gian hệ thống của mỗi robot không đồng bộ. Đồng bộ hóa thời gian đa tác nhân được chia thành hai tình huống, đó là tình huống cả robot chủ và robot phụ đều được kết nối với mạng và tình huống 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 cấu hình giao tiếp đa tác nhân, nếu máy chủ và máy phụ có thể kết nối mạng thành cô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 để đạt được sự đồng bộ hóa thời gian.

Khắc phục sự cố mất kết nối mạng 

Sau khi định cấu hình giao tiếp đa tác nhân, nếu thiết bị chính và thiết bị phụ không thể kết nối thành công với mạng thì cần phải đồng bộ hóa thời gian theo cách thủ công. Chúng ta sẽ sử dụng lệnh date để hoàn tất việc 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 xuống 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 tới tất cả]/[Phát tất cả], nhập lệnh sau. Sau đó sử dụng công cụ terminator để thiết lập cùng thời gian cho master và Slave.

Thiết lập đồng bộ hóa đa tác nhân

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 đặt tên duy nhất cho mỗi robot phụ để tránh sai sót. Dành cho người yêu cũample, Số 1 cho nô lệ1 và số 2 cho nô lệ2, 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. Dành cho người yêu cũample, chủ đề radar của nô lệ 1 là: /slave1/scan và nút LiDAR của nô lệ 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ác đội hình khác nhau, chỉ cần sửa đổi tọa độ mong muốn của robot nô lệ. Slave_x và Slave_y là tọa độ x và y của Slave với master là điểm tham chiếu ban đầu. Mặt trước của bản gốc 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 cài đặt hoàn tất, tọa độ TF Slav1 sẽ được cấp làm tọa độ dự kiến ​​của Slave.

Nếu có một chủ và hai nô lệ, có thể thiết lập đội hình sau:

  1. Đội hình theo chiều ngang: Bạn có thể đặt tọa độ của nô lệ ở bên trái thành: Slave_x:0, Slave_y: 0.8 và tọa độ của nô lệ ở bên phải thành: Slave_x:0, Slave_y:-0.8.
  2. 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.
  3. Độ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 nô lệ theo mặc định là tọa độ dự kiến. Trước khi chạy chương trình, chỉ cần đặt robot nô lệ gần tọa độ dự kiến ​​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 file được đặt tên là Turn_on_wheeltec_robot.launch trong gói Wheeltec_multi, như trong Hình 4-1-3.

Gói Ros đa tác nhân

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.

Gói Ros đa tác nhân

Cấu hình vị trí 

Trong mô hình đa tác nhân, vấn đề đầu tiên cần giải quyết là vị trí của chủ và nô lệ. Bậc thầy 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 để định cấu hình vị trí của bản gốc.

Vì máy chủ và máy phụ 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ủ chính đã khởi chạy bản đồ từ gói điều hướng 2D, nên tất cả các máy phụ đều có thể sử dụng cùng một bản đồ trong cùng một trình quản lý nút. Do đó, nô lệ không cần tạo bản đồ. Trong Wheeltec_slave.launch, chạy định vị Monte Carlo (định vị amcl), các nô lệ có thể định cấu hình vị trí của mình bằng cách sử dụng bản đồ do chủ tạo.

Gói Ros đa tác nhân

Cách tạo đội hình và duy trì đội hình 

Trong quá trình chuyển động 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 mình 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 đội hình.

Nút Slave_tf_listener giới hạn tốc độ phụ để tránh tốc độ quá cao do tính toán của nút sẽ gây ra hàng loạt tác động. Giá trị cụ thể có thể được sửa đổi trong Wheeltec_slave.launch.

Gói Ros đa tác nhân

Các tham số liên quan của thuật toán hình thành như sau:

Gói Ros đa tác nhân

Tránh chướng ngại vật trong đội hình

Trong đội hình đa tác nhân, chủ nhân có thể sử dụng nút move_base để hoàn thành việc tránh chướng ngại vật. Tuy nhiên, việc khởi tạo nô lệ không sử dụng nút move_base. Tại thời điểm này, nút multi_avoidance cần được gọi trong chương trình nô lệ. Nút tránh chướng ngại vật được bật theo mặc định trong gói. Nếu cần, tính năng tránh chướng ngại vật có thể được đặt thành “false” để vô hiệu hóa nút tránh chướng ngại vật.

Gói Ros đa tác nhân

Một số thông 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à Dangerous_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, nô lệ sẽ điều chỉnh vị trí của mình để tránh chướng ngại vật. Khi chướng ngại vật nằm trong khoảng cách nguy hiểm, nô lệ sẽ lái xe tránh xa chướng ngại vật.

Gói Ros đa tác nhân

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 nô lệ.
roslaunch Wheeltec_multi Wheeltec_slave.launch

Bước 3: Mở nút điều khiển bàn phím từ bản gốc hoặc sử dụng cần điều khiển để điều khiển từ xa chuyển động của bản gốc.
roslaunch Wheeltec_robot_rc bàn phím_teleop.launch

Bước 4: (Tùy chọn) Quan sát chuyển động của robot từ Rviz.
Rviz

Ghi chú

  1. Đả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.
  2. Khi điều khiển chủ nhân 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 khuyến nghị là 0.2m/s, tốc độ góc dưới 0.3rad/s. Khi chủ đang rẽ, nô lệ càng ở xa chủ thì tốc độ tuyến tính càng lớn. Do giới hạn về tốc độ tuyến tính và tốc độ góc trong gói nên khi xe nô lệ không thể đạt tốc độ yêu cầu, đội hình sẽ hỗn loạn. Nhìn chung, tốc độ tuyến tính quá cao có thể dễ dàng làm hỏng robot.
  3. Khi số lượng nô lệ 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ế, rất dễ gây ra sự chậm trễ và ngắt kết nối liên lạc đa tác nhân đáng kể. Sử dụng bộ định tuyến có thể giải quyết tốt vấn đề này.
  4. Cây TF của đội hình nhiều robot (2 nô lệ) là: rqt_tf_tree
  5. 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 Orin Nano x3 ROS Robot [tập tin pdf] Hướng dẫn sử dụng
Orin Nano x3, Robot Robofleet ROS, Robofleet ROS, Robot, Robofleet Orin Nano x3 Robot ROS, Robofleet Orin Nano x3, Robot Orin Nano x3 ROS, Orin Nano x3

Tài liệu tham khảo

Để lại bình luận

Địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu *