1. Omówienie

Szybka architektura frcobot_ros jest pokazana na poniższym rysunku. Strona robota współpracującego udostępnia serwer XMLRPC i serwer TCP.

  • Serwer XMLRPC udostępnia głównie API instrukcji robota do realizacji funkcji ruchu robota i pobierania wartości stanu.

  • Serwer TCP sprzężenia zwrotnego stanu zapewnia informację zwrotną o stanie robota w czasie rzeczywistym, z okresem sprzężenia zwrotnego wynoszącym 8 ms.

Na komputerze użytkownika zainstalowano ROS i Moveit!, skompilowano frcobot_ros. W każdym pakiecie funkcjonalnym frcobot_ros znajdują się biblioteki lib API robota oraz klient TCP komunikujący się z serwerem informacji zwrotnej o stanie robota we frcobot_hw, który pobiera dane informacji zwrotnej o stanie robota.

../_images/frcobot_ros.png

2. Instalacja

W tym rozdziale opisano, jak zbudować frcobot_ros oraz wymagane środowisko instalacyjne.

2.1. Wymagania środowiskowe

Zalecane środowisko dla frcobot_ros jest następujące:

Informacja

  • Ubuntu 18.04 LTS Bionic Beaver i ROS Melodic Morenia

  • Ubuntu 20.04 LTS Focal Fossa i ROS Noetic Ninjemys

Poniższe instrukcje dotyczą systemu Ubuntu 20.04 LTS i ROS Noetic Ninjemys. W przypadku korzystania z Melodic, należy zastąpić noetic w podanych poleceniach przez melodic.

2.2. Wymagania instalacyjne ROS

Po zainstalowaniu systemu Ubuntu, zainstaluj i skonfiguruj środowisko ROS Noetic.

Po skonfigurowaniu ROS Noetic, zainstaluj następujące wymagane środowisko:

1echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
2source ~/.bashrc
3sudo apt-get install -y \
4    ros-noetic-rosparam-shortcuts \
5    ros-noetic-ros-control \
6    ros-noetic-ros-controllers \
7    ros-noetic-moveit \
8    libxmlrpcpp-dev

2.3. Kompilacja pakietów ROS

Po prawidłowej instalacji i konfiguracji ROS Noetic, utwórz obszar roboczy Catkin w wybranym katalogu.

1mkdir -p ~/catkin_ws/src
2cd ~/catkin_ws
3catkin_init_workspace src

Następnie sklonuj bibliotekę frcobot_ros z Gitee.

1cd ~/catkin_ws/src
2git clone https://gitee.com/fair-innovation/frcobot_ros.git

Zbuduj pakiety frcobot_ros

1cd ~/catkin_ws
2catkin_make
3echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
4source ~/.bashrc

Jeśli pojawią się błędy, sprawdź, czy wszystkie pakiety z wymagań instalacyjnych ROS zostały pomyślnie zainstalowane. Po zakończeniu kompilacji skopiuj biblioteki lib do środowiska lib ROS (ścieżka: /opt/ros/noetic/lib), aby program mógł działać poprawnie.

1# Tutaj domyślna ścieżka catkin_ws to „~”. W przypadku innej ścieżki, zmień „~” na rzeczywistą ścieżkę
2sudo cp ~/catkin_ws/src/frcobot_ros/frcobot_hw/lib/* /opt/ros/noetic/lib

3. Szybki start

3.1. frcobot_hw

frcobot_hw udostępnia głównie podstawowe funkcje komunikacji z robotem współpracującym.

Informacja

  • Zawiera komunikaty zwrotne o stanie robota współpracującego

  • Udostępnia przykładowe instrukcje sterowania robotem współpracującym

  • Udostępnia węzeł informacji zwrotnej o stanie robota współpracującego i Topic

  • Możliwe jest szybkie uruchomienie węzła stanu i przykładowych instrukcji za pomocą pliku launch

Zawartość frcobot_hw.launch jest następująca:

 1<launch>
 2
 3    <!-- params -->
 4    <param name="robot_ip" type="string" value="192.168.58.2"/>
 5    <param name="robot_port" type="int" value="8083"/>
 6
 7    <!-- frcobot status node -->
 8    <node pkg="frcobot_hw" type="frcobot_status_node" name="frcobot_status_node" output="screen" />
 9
10    <!-- frcobot control demo -->
11    <node pkg="frcobot_hw" type="frcobot_cmd_demo" name="frcobot_cmd_demo" output="screen" />
12
13</launch>

Ważne

  • robot_ip i robot_port muszą być zgodne z adresem IP i portem sterowanego robota współpracującego.

  • Domyślny adres IP robota z fabryki to 192.168.58.2, a port informacji zwrotnej o stanie użytkownika to 8083.

Za pomocą następującego polecenia można szybko uruchomić funkcję węzła informacji zwrotnej o stanie robota i przykładowe instrukcje.

1roslaunch frcobot_hw frcobot_hw.launch

Otwórz nowy terminal, a za pomocą następującego polecenia możesz wyświetlić i sprawdzić dane informacji zwrotnej o stanie w czasie rzeczywistym.

1rostopic echo /frcobot_status