1. Panoramica
L’architettura semplificata di frcobot_ros è mostrata nella figura seguente. Il lato del robot collaborativo fornisce un server XMLRPC e un server TCP.
Il server XMLRPC fornisce principalmente API di comando del robot per completare il movimento del robot e le funzioni di acquisizione dei valori di stato.
Il server TCP per il feedback di stato fornisce un feedback in tempo reale dello stato del robot con un periodo di 8 ms.
Sul lato PC dell’utente sono installati ROS e Moveit!, e frcobot_ros è stato compilato. In frcobot_ros, ogni pacchetto funzionale include la libreria lib delle API del robot, oltre a un client TCP che stabilisce la comunicazione con il server di feedback di stato del robot in frcobot_hw, acquisendo i dati di feedback dello stato del robot.
2. Installazione
Questo capitolo descrive come costruire frcobot_ros e l’ambiente di installazione richiesto.
2.1. Requisiti di Ambiente
L’ambiente consigliato per frcobot_ros è il seguente:
Nota
Ubuntu 18.04 LTS Bionic Beaver e ROS Melodic Morenia
Ubuntu 20.04 LTS Focal Fossa e ROS Noetic Ninjemys
Le seguenti istruzioni si applicano al sistema Ubuntu 20.04 LTS e ROS Noetic Ninjemys. Se si utilizza Melodic, sostituire noetic con melodic nei comandi seguenti.
2.2. Requisiti di Installazione ROS
Dopo aver installato il sistema Ubuntu, installare e configurare l’ambiente ROS Noetic.
Dopo aver configurato ROS Noetic, installare i seguenti ambienti necessari:
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. Compilazione del Pacchetto ROS
Dopo aver installato e configurato correttamente ROS Noetic, creare un’area di lavoro Catkin nella directory di propria scelta.
1mkdir -p ~/catkin_ws/src
2cd ~/catkin_ws
3catkin_init_workspace src
Quindi clonare la repository frcobot_ros da Gitee.
1cd ~/catkin_ws/src
2git clone https://gitee.com/fair-innovation/frcobot_ros.git
Costruire il pacchetto frcobot_ros
1cd ~/catkin_ws
2catkin_make
3echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
4source ~/.bashrc
Se si verificano errori, verificare che tutti i pacchetti menzionati nei requisiti di installazione ROS siano stati installati correttamente. Dopo la compilazione, copiare la libreria lib nell’ambiente lib di ROS (percorso: /opt/ros/noetic/lib) per consentire al programma di funzionare correttamente.
1# Qui il percorso predefinito di catkin_ws è "~". Se è diverso, sostituire "~" con il percorso effettivo.
2sudo cp ~/catkin_ws/src/frcobot_ros/frcobot_hw/lib/* /opt/ros/noetic/lib
3. Inizio Rapido
3.1. frcobot_hw
frcobot_hw fornisce principalmente le funzioni di base per la comunicazione con il robot collaborativo.
Nota
Contiene i messaggi (msg) di feedback dello stato del robot collaborativo
Fornisce demo di comandi per controllare il robot collaborativo
Fornisce nodi e Topic per il feedback dello stato del robot collaborativo
Consente di avviare rapidamente i nodi di stato e le demo di comandi tramite file launch
Il contenuto di frcobot_hw.launch è il seguente:
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>
Importante
È necessario assicurarsi che robot_ip e robot_port corrispondano all’IP e alla porta del robot collaborativo da controllare.
L’IP predefinito del robot di fabbrica è 192.168.58.2, e la porta di feedback dello stato per l’utente è 8083.
È possibile avviare rapidamente il nodo di feedback dello stato del robot e la demo dei comandi con il seguente comando:
1roslaunch frcobot_hw frcobot_hw.launch
Aprire un nuovo terminale e utilizzare il seguente comando per stampare e visualizzare i dati di feedback dello stato in tempo reale:
1rostopic echo /frcobot_status