Anteprima
Vedrai una selezione di 11 pagine su 49
Appunti integrati a slides completi della parte di ROS del corso annuale di Robotica Biomedica Pag. 1 Appunti integrati a slides completi della parte di ROS del corso annuale di Robotica Biomedica Pag. 2
Anteprima di 11 pagg. su 49.
Scarica il documento per vederlo tutto.
Appunti integrati a slides completi della parte di ROS del corso annuale di Robotica Biomedica Pag. 6
Anteprima di 11 pagg. su 49.
Scarica il documento per vederlo tutto.
Appunti integrati a slides completi della parte di ROS del corso annuale di Robotica Biomedica Pag. 11
Anteprima di 11 pagg. su 49.
Scarica il documento per vederlo tutto.
Appunti integrati a slides completi della parte di ROS del corso annuale di Robotica Biomedica Pag. 16
Anteprima di 11 pagg. su 49.
Scarica il documento per vederlo tutto.
Appunti integrati a slides completi della parte di ROS del corso annuale di Robotica Biomedica Pag. 21
Anteprima di 11 pagg. su 49.
Scarica il documento per vederlo tutto.
Appunti integrati a slides completi della parte di ROS del corso annuale di Robotica Biomedica Pag. 26
Anteprima di 11 pagg. su 49.
Scarica il documento per vederlo tutto.
Appunti integrati a slides completi della parte di ROS del corso annuale di Robotica Biomedica Pag. 31
Anteprima di 11 pagg. su 49.
Scarica il documento per vederlo tutto.
Appunti integrati a slides completi della parte di ROS del corso annuale di Robotica Biomedica Pag. 36
Anteprima di 11 pagg. su 49.
Scarica il documento per vederlo tutto.
Appunti integrati a slides completi della parte di ROS del corso annuale di Robotica Biomedica Pag. 41
Anteprima di 11 pagg. su 49.
Scarica il documento per vederlo tutto.
Appunti integrati a slides completi della parte di ROS del corso annuale di Robotica Biomedica Pag. 46
1 su 49
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

3) PIANIFICAZIONE CON CODICE PYTHON NELLO SPAZIO CARTESIANO

→ → →

Passaggi step 1 apri terminale e crea cartella scripts nel pacchetto tiago_moveit_tutorial

$ roscd tiago_moveit_tutorial

$ mkdir scripts

$ cp <path_source_folder>/plan_arm_torso_Ik.py scripts/

→ →

Step 2 copia e incolla nella cartella creata codice python plan_arm_torso_Ik.py il file python

è identico a quello visto prima ma cambia il modo in cui setto i valori dello state goal riporto qui

di seguito solo la parte di codice che varia In questo caso si va a selezionare da

terminale i valori del goal state, che

vengono codificati da questa funzione in

un geometry message.

→ →

step 3 rendi file eseguibile

$ chmod +x plan_arm_torso_ik.py

→ →

Step 4 ricompila il workspace e fai source

$ cd

$ cd tiago_public_ws

$ catkin build tiago_moveit_tutorial

$ source devel/setup.bash

→ →

Step 5 apri un secondo terminale e fai il source nel workspace

$ cd tiago_public_ws

$ source devel/setup.bash

→ →

Step 6 lancia Gazebo

$ roslaunch tiago_gazebo tiago_gazebo.launch public_sim:=true end_effector:=pal-gripper

→ → →

Step 7 apri terzo terminale runna il nodo per portare tiago nella configurazione desiderata

$ source devel/setup.bash

$ rosrun tiago_moveit_tutorial plan_arm_torso_ik_console.py 0.4 -0.3 0.26 -0.011 1.57 0.037

PLANNING CON OCTOMAP

Cosa è Octomap libreria e formato di dati usato in robotica per creare mappe 3D dell’ambiente

in modo efficiente e compatto molto usato per la percezione dello spazio e la pianificazione del

→ →

movimento nella creazione dell’ambiente suddivide lo spazio 3D in cubi permettendo di

→ → →

capire quale è lo spazio libero occupato e sconosciuto aggiungendo anche informazioni di

colore → → →

Passaggi step 1 apri primo terminale vai all’interno del workspace fai il source

$ cd tiago_public_ws

$ source devel/setup.bash

→ →

Step 2 lancia Gazebo per visualizzare l’ambiente esterno al robot

$ roslaunch tiago_gazebo tiago_gazebo.launch public_sim:=true end_effector:=palgripper

world:=tutorial_office gzpose:="-x 1.40 -y -2.79 -z -0.003 -R 0.0 -P 0.0 -Y 0.0"

use_moveit_camera:=true → →

Cosa cambia rispetto alle volte precedenti il mondo è tutorial_office gzpose con valori per

→ → →

specificare posizione e orientazione robot setta camera a true per usarla step 3 apri

secondo terminale per lanciare Rviz per integrare anche le info interne al robot

$ cd tiago_public_ws

$ source devel/setup.bash

$ roslaunch tiago_moveit_tutorial octomap_tiago.launch

→ →

Step 4 apri terzo terminale e lancia il topic throttle questo serve per portare a 2Hz la

frequenza di acquisizione della camera per ridurre complessità computazionale legata a point

cloud troppo pesanti

$ cd tiago_public_ws

$ source devel/setup.bash

$ rosrun topic_tools throttle messages /xtion/depth_registered/points

2/throttle_filtering_points/filtered_points

→ →

Step 5 aprire quarto terminale dove viene caricato un set di parametri per guidare testa del

robot

$ cd tiago_public_ws

$ source devel/setup.bash

$ rosparam load src/tiago_tutorials/tiago_moveit_tutorial/config/tiago_octomap_motions.yaml

→ →

Step 6 nello stesso terminale esegui head_look_around perché muovendo la testa può

completare la mappa

$ rosrun play_motion run_motion head_look_around

→ →

Step 7 nello stesso terminale esegui il nodo per fargli fare il movimento

$ rosrun play_motion run_motion unfold_arm

Step 8 sullo stesso terminale puoi definire la posizione e l’orientazione desiderata per l’end

effector

$ rosrun tiago_moveit_tutorial plan_arm_torso_ik_console.py 0.508 -0.408 0.832 0.005 -0.052

0.039

1) PICK AND PLACE → →

Viene pianificata una traiettoria per far prendere un oggetto a robot pick e una per

→ →

riposizionarlo non necessariamente nello stesso posto place la scelta della traiettoria

→ → →

migliore è randomica passaggi passaggi preliminari apri primo terminale e fare source e

andare nella cartella scripts contenuta nel pacchetto tiago_pick_demo scrivendo ls vedo che ci

→ →

sono 3 files python per ognuno nella prima linea metti 3 vicino a python nel file

“spherical_grasp_server.py” bisogna mettere “queue_size” = a 10 nel nodo publisher poi salva

→ → →

con ctrl + s questo file gestisce processo di presa robotica ovvero calcola posizioni attorno

→ →

oggetto filtra e ordina posizioni migliori traduce queste pose in movimenti validi per Moveit!

→ →

definisce anche posizioni per come rilasciare la presa

→ →

Step 1 apri secondo terminale per andare nel workspace e fare il source

$ cd tiago_public_ws

$ source devel/setup.bash

→ →

Step 2 nello stesso terminale lancia Gazebo

$ roslaunch tiago_pick_demo pick_simulation.launch

→ →

Step 3 apri terzo terminale e lancia questo comando

$ source devel/setup.bash

$ roslaunch tiago_pick_demo pick_demo.launch

→ → →

Questo lancia 4 nodi /aruco_single riconosce l’aruco marker sull’oggetto

→ →

/pick_client prepara robot a riconoscere e prendere oggetto dal codice python relativo al

nodo chiamato pick_client.py possiamo vedere che l’azione di pick è attivata da 3 passaggi

→ →

chiave identificazione dell’aruco marker trasformazione della pose del marker dal frame

→ → →

camera al frame di interesse invio della pose all’action server /pick_and_place_server

→ →

quello che pianifica e definisce le traiettorie di pick and place /rviz attiva ambiente di

→ → →

visualizzazione step 4 apri quarto terminale e lancia il seguente comando questo

permette di avviare il servizio gui_pick per iniziare l’operazione di presa quindi va a rilevare

→ →

oggetto usando un marker arcuco viene aggiunto oggetto alla scena virtuale e calcola le

prese possibili con Moveit!

$ source devel/setup.bash

$ rosservice call /gui_pick

COMANDI PRINCIPALI

ROS 2: NODI-TOPICS-SERVIZI

• Lanciare Gazebo in generale

$ cd ~/tiago_public_ws entra nella cartella del workspace ROS in cui è contenuto codice di tiago

$ catkin build è il sistema build di ROS, viene fatto se hai modificato il codice o aggiunto nuovi

pacchetti →

$ source devel/setup.bash dice a ROS dove trovare comandi, pacchetti e files

$ roslaunch tiago_gazebo tiago_gazebo.launch public_sim:=true end_effector:=pal-gripper

world:=empty inizializza l’ambiente fisico simulato, tiago_gazebo.launch è il file che inizializza

l’ambiente simulato, public_sim settato a true specifica che si tratta di una simulazione pubblica,

cioè di una configurazione standard già pronta, end_effector indica il tipo di end-effector che robot

userà, world setta l’ambiente dove si troverà robot, quindi vuoto in questo caso, in altri anche

scene predefinite tipo small_office.

• Runnare 1 o + nodi →

$ rosrun [nome_pacchetto][nome_nodo] 1 nodo

$ roslaunch [nome_pacchetto][nome_file].launch + nodi

• Per vedere grafo del sistema

$ rosrun rqt_graph rqt_graph posso vedere come sono connessi i nodi tra loro

• Come eseguire un servizio

$ rosservice call /[nome_servizio] lo esegue semplicemente

ROS 3: NAVIGAZIONE

• →

Come leggere file python nella navigazione prima vai nel workspace di tiago e fai source

$ cd catkin_ws/src

$ catkin_create_pgk custom_navigation rospy std_msgs geometry_msgs sensor_msgs actionlib

move_base_msgs con questo comando, insieme a quello sopra creo pacchetto

custom_navigation →

$ mkdir custom_navigation/scripts creo cartella scripts, e ci copio e incollo il file python

$ cd custom_navigation/scripts vado nella cartella creata

$ gedit [nome_file].py visualizzo codice python se già presente perché l’ho incollato io prima, se

non c’è ce lo mette

• →

Come rendere eseguibile file python fare questo DOPO aver letto/modificato file python

come visto prima →

$ chmod +x <path>/reading_laser.py rendo eseguibile il file, al posto di <path> scrivi percorso

del file →

$ catkin build custom_navigation aggiorno il workspace perché ho fatto modifiche ovvero ho

creato pacchetti/cartelle →

$ source devel/setup.bash già scritto →

$ rosrun custom_navigation [nome_file].py lancia file come un nodo, se modifico il file python,

devo salvare le modifiche con ctrl+s, poi devo usare nuovamente comando rosrun per rilanciare

file come nodo

• Come creare una mappa

(primo terminale) per lanciare Gazebo

$ cd /tiago_public_ws/

$ source devel/setup.bash

$ roslaunch tiago_2dnav_gazebo tiago_mapping.launch public_sim:=true

(secondo terminale) per creare mappa nell’effettivo

$ cd /tiago_public_ws/

$ source devel/setup.bash →

$ rosrun custom_navigation follow_wall.py serve per far navigare robot per creare mappa,

prima di usare file devo ovviamente renderlo eseguibile con passaggi visti prima

$ rosrun map_server map_saver salva la mappa mentre navigazione sta runnando

• Localizzazione del robot nell’ambiente

(primo terminale) per lanciare Gazebo

$ cd /tiago_public_ws/

$ source devel/setup.bash

$ roslaunch tiago_2dnav_gazebo tiago_navigation.launch public_sim:=true lost:=true

world:=small_office →

(secondo terminale) passaggi per la localizzazione vera e propria

$ cd /tiago_public_ws/

$ source devel/setup.bash →

$ rosservice call /global_localization “{}” chiama servizio che dice a AMCL che tutti i punti della

mappa hanno la stessa probabilità di essere occupati dal robot, le parentesi vengono lasciate vuote

quando il servizio non richiede dei parametri

$ rosrun key_teleop key_teleop.py per aiutare AMCL a portare robot nella pose giusta posso

usare questo comando per muovere robot da tastiera

$ rosservice call /move_base/clear_costmaps “{}” quando il robot è localizzato possiamo ripulire

la mappa dei costi, le parentesi vengono lasciate vuote quando il servizio non richiede dei

parametri

ROS 4: VISIONE

• →

Come leggere file python nella visione prima entra nel workspace di ti

Dettagli
A.A. 2024-2025
49 pagine
SSD Ingegneria industriale e dell'informazione ING-IND/34 Bioingegneria industriale

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher caterinafdifanti di informazioni apprese con la frequenza delle lezioni di Robotica biomedica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Firenze o del prof Cavallo Filippo.