neurali:ros_struttura_modello
Struttura modello
Si tratta di un file .sdf (xml) che parte con un tag <model> (segue esempio)
http://sdformat.org/spec?ver=1.5&elem=collision#surface_friction
Domanda: esiste un software Model Editor nella versione 6 di Gazebo?
un model è composto da link che sono congiunti da join:
- links, può essere un pezzo di una catena oppure una ruota, cioè elementi che hanno proprietà fisiche
- a sua volta contiene elementi collision e visual. Ridurre i link inutili, se non mobili, sostituendoli con collision (domanda: ma collision non si trovava dentro un link?)
- collision objects, contenuti in ogni link, contengono la descrizione della geometria per le collisioni. Può essere un mesh di triangoli o una forma unica
- visuals, rende visibile un link
- inertials, descrivono momento di inerzia e massa del link, sono proprietà dinamiche del link parametri inerziali
- sensors, raccolgono dati dal world e li inviano al plugin sensor
- plugins, libreria esterna che controlla un model plugin
- joints, punti di congiunzione di due links, stabilisce relazione gerarchica ed eredita proprietà fisiche dal link padre (es: asse di rotazione). Esiste la joint di tipo “revolute” di cui si deve definire asse di rotazione e limiti.
Un link figlio può essere specificato usando il nome del modello come “namespace” <child>hokuyo::pezzo</child>
Usare <include> dentro un file .sdf permette di aggiungere parti esterne (esistenti), come un sensore laser (hokuyo)
<?xml version='1.0'?> <sdf version="1.4"> <model name="my_model"> <pose>0 0 0.5 0 0 0</pose> <static>true</static> <!--trip --> <link name="link"> <inertial> <mass>1.0</mass> <inertia> <!-- interias are tricky to compute --> <!-- http://answers.gazebosim.org/question/4372/the-inertia-matrix-explained/ --> <ixx>0.083</ixx> <!-- for a box: ixx = 0.083 * mass * (y*y + z*z) --> <ixy>0.0</ixy> <!-- for a box: ixy = 0 --> <ixz>0.0</ixz> <!-- for a box: ixz = 0 --> <iyy>0.083</iyy> <!-- for a box: iyy = 0.083 * mass * (x*x + z*z) --> <iyz>0.0</iyz> <!-- for a box: iyz = 0 --> <izz>0.083</izz> <!-- for a box: izz = 0.083 * mass * (x*x + y*y) --> </inertia> </inertial> <collision name="collision"> <geometry> <box> <size>1 1 1</size> </box> </geometry> </collision> <visual name="visual"> <geometry> <box> <size>1 1 1</size> </box> </geometry> </visual> </link> </model> </sdf>
neurali/ros_struttura_modello.txt · Last modified: 2020/06/08 22:20 by 127.0.0.1