Il Servo Controller Raspberry Pi Dynamixel (o DSC) di MYBOTHSHOP, esattamente come suggerisce il nome, è una scheda appositamente progettata per il controllo dei servomotori Dynamixel tramite Raspberry Pi. La scheda è dotata di un potente uC AT644P-20AU, di un buffer tri-state Texas Instruments per l’interfaccia half-duplex e di un modulo step-down integrato per l’alimentazione di tutti i componenti con una sola fonte di tensione. Ulteriori informazioni sull’installazione e l’utilizzo sono disponibili ai seguenti link:
Guide rapida in tedesco
Guida rapida in inglese
In questo articolo ci occuperemo esclusivamente dell’integrazione del DSC con ROS (Robot Operating System).
Lista di tutti i componenti richiesti
- Oltre al DSC di MYBOTSHOP sono richiesti i seguenti componenti:
- Raspberry Pi, oppure PC con convertitore FTDI UART USB
- Fonte di tensione a 7,4 - 11,1V (Alimentatore da laboratorio o batteria LiPo 2-3S)
- Servomotore Dynamixel con interfaccia Half-Duplex (per esempio AX12A, AX18A, XM430-W210-T, eccetera)
- Cavo Dynamixel a 3 pin / Quando si utilizzano servomotori della serie X di Dynamixel sarà necessario un adattatore per il cavo
Scaricare i pacchetti software
Abbiamo inserito i nostri pacchetti software sia su GitHub che sul nostro Server. Questi archivi sono suddivisi in due cartelle principali. Nella prima cartella si trovano tutte le implementazioni di Arduino, come per esempio l’integrazione del DSC nell’IDE Arduino e il firmware ROS. Nella seconda, invece, si trova il ROS Node.
È necessario scaricare sia la cartella Arduino che la cartella ROS e decomprimerle. Il file servo_board deve essere decompresso e inserito in catkin_ws/src.
Cose da fare prima della messa in servizio
Chiediamo a tutti i nostri lettori/clienti di leggere attentamente la nostra Guida Rapida in modo da evitare malfunzionamenti dovuti ad un uso improprio del dispositivo. In particolare, si prega di prestare attenzione alle avvertenze di pericolo contenute in questa guida.
Dal momento che i computer convenzionali non dispongono di un'interfaccia UART, si consiglia di utilizzare un convertitore FTDI e di collegarlo al computer tramite l’intestazione pin inferiore del DSC. Se si utilizza un Raspberry Pi, invece, il DSC deve essere semplicemente inserito nell'intestazione GPIO.
IDE Arduino
Per completare il caricamento dello sketch Arduino (firmware ROS) e la compilazione di tutte le librerie Arduino richieste, è necessario possedere Arduino IDE completo. Si prega di scaricare i pacchetti dalla Pagina Download di Arduino e di non eseguire l’installazione con il seguente comando: apt-get install Arduino
Se dopo l’avvio dell’IDE Arduino non è stato trovato alcun board manager, significa che non è stato installato l'IDE Arduino corretto.
Successivamente sarà necessario installare i pacchetti ROS Serial, in modo da far comunicare il Raspberry Pi/Computer con il DSC di MYBOTSHOP. Utilizzare i seguenti comandi:
- sudo apt-get install ros-[VERSION]-rosserial-arduino
- sudo apt-get install ros-[VERSION]-rosserial
Per creare uno Workspace:
- cd /src
- git clone
- cd ..
- catkin_make
I seguenti comandi genereranno le librerie Arduino:
- cd /libraries
- rm -rf ros_lib
- rosrun rosserial_arduino make_libraries.py .
A questo punto sarà possibile integrare la scheda servo controller (DSC) di MYBOTSHOP nell’IDE Arduino e compilare e caricare il firmware ROS. Consultare la Guida Rapida per maggiori informazioni.
ROS Node
Ora che il lato Arduino è stato impostato, il pacchetto DSC ROS può essere compilato e avviato. Estrarre il Pacchetto ROS da catkin_ws/src e proseguire con il caricamento.
- cd catkin_ws
- catkin_make
Adesso il DSC è operativo ed è possibile collegare i servomotori Dynamixel.
Se ROS non è stato creato nella start routine, deve essere avviato con roscore. Seguire questi comandi (con relativi commenti):
roslaunch servo_board dsc.launch //Stabilisce una connessione tra ROS e il DSC
rostiopic list //Mostra la lista completa dei comandi
rostopic echo /mydata //Per visualizzare posizione, temperatura e tensione operativa dei servomotori collegati
rostopic hz /mydata //Mostra i tempi di esecuzione del Subscriber
rostopic /j1/command std_msgs/Float64 [Position] //Controllo dei servomotori
Config/Con.yaml
Un altro elemento che distingue il DSC dagli altri servo controller DYNAMIXEL è il nostro file di configurazione (servo_board / config / con.yaml), che offre la possibilità di suddividere i servomotori in gruppi. Nell’immagine sottostante viene mostrato il file citato sopra: in questo caso sono state create tre classi (j1,j2,j3), a ciascuna delle quali sono stati assegnati diversi servomotori. Il numero di servomotori da assegnare ad ogni classe può essere regolato secondo le proprie esigenze o a seconda dell’ambito di applicazione.
Inoltre, la riga use_lib: "false" del file permette di utilizzare la comunicazione tramite il Node o di implementare i controlli.