neurali:gazebo_realizzare_un_world
Table of Contents
Realizzare un world
Termini
- world: insieme di robot, oggetti, parametri ambientali e proprietà fisiche
- static/dinamic: si può specificare nel formato .sdf il seguente tag. Tali elementi non si muovono, non hanno parametri inerziali, ma possono collidere. Viceversa possono anche muoversi
<static>true</static>
Oggetti
creare cartella e avviare gazebo (non è indispensabili usare due comandi separati)
mkdir ~/build_world_tutorial; cd ~/build_world_tutorial gzserver gzclient
per aggiungere oggetti, si può usare il menu insert (model database)
- tab insert
Ci sono anche strumenti per la traslazione/rotazione (trascinare l'oggetto tenendo premuto il tasto x,y oppure z)
Al termine
- File→save .sdf
- File→load .sdf
Proprietà scena
Phisics
- enable physics
- real time update rate (hertz)
- max step size (sec)
- il prodotto permette di eseguire eventi temporalmente accelerati
- gravity
- solver (iteration, Successive Over-Relaxation)
- constraints (Constraint Force Mixing, Error Reduction Parameter)
Terreno simulato
requisiti
sudo apt-get install gdal-bin libgdal-dev libgdal1h python-gdal
DEM (Digital Elevation Model) è un termine generico utilizzato per indicare il terreno, ma non corrisponde ad un formato di dati. Gazebo supporta solo formato raster data (griglia di quote) GDAL.
- come ottenere path e row
- come ottenere dem partendo da path e row
Il formato ESRI (ASCII) non è supportato, come convertirlo? gdaltransform? gdaltraslate? ogr2ogr?
Problema: si può simulare una palla che rotola?
esempio che riduce la risoluzione
gdalwarp -ts 129 129 file-in.dem file-out.dem
<?xml version="1.0" ?> <sdf version="1.4"> <world name="default"> <!-- A global light source --> <include> <uri>model://sun</uri> </include> <model name="miamappa"> <static>true</static> <link name="link"> <collision name="collision"> <geometry> <miamappa> <uri>file:/path/to/vulcano.dem</uri> <size>150 150 50</size> <pos>0 0 0</pos> </miamappa> </geometry> </collision> <visual name="visual_abcedf"> <geometry> <miamappa> <texture> <diffuse>file://media/materials/textures/dirt_diffusespecular.png</diffuse> <normal>file://media/materials/textures/flat_normal.png</normal> <size>1</size> </texture> <texture> <diffuse>file://media/materials/textures/grass_diffusespecular.png</diffuse> <normal>file://media/materials/textures/flat_normal.png</normal> <size>1</size> </texture> <texture> <diffuse>file://media/materials/textures/fungus_diffusespecular.png</diffuse> <normal>file://media/materials/textures/flat_normal.png</normal> <size>1</size> </texture> <blend> <min_height>2</min_height> <fade_dist>5</fade_dist> </blend> <blend> <min_height>4</min_height> <fade_dist>5</fade_dist> </blend> <uri>file://path/to/vulcano.dem</uri> <size>150 150 50</size> <pos>0 0 0</pos> </miamappa> </geometry> </visual> </link> </model> </world> </sdf>
neurali/gazebo_realizzare_un_world.txt · Last modified: 2020/06/08 22:20 by 127.0.0.1