User Tools

Site Tools


neurali:gazebo_connessione_ros

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
neurali:gazebo_connessione_ros [2016/02/26 03:04]
profpro
neurali:gazebo_connessione_ros [2020/06/08 22:20] (current)
Line 1: Line 1:
 +====== Connessione con ROS ======
  
 +Gazebo **non è** più un [[neurali:ROS packages|package]] di ROS: a partire da Gazebo 1.9 e ROS 7 (hydro), Gazebo non dipende più da [[neurali:ROS]]
 +
 +http://gazebosim.org/tutorials?tut=ros_roslaunch&cat=connect_ros
 +
 +
 +===== rosurun e roslaunch =====
 +
 +[[neurali:gazebo_connessione_ros#rosrun]] nome_package nome_nodo
 +
 +roslaunch è un comando che evita (con un piccolo file di testo.launch)  di ripetere molte volte rosrun...
 +
 +;;;Obiettivo: avviare tramite ROS la simulazione Gazebo di un file world e depositarci dentro un robot;;;
 +
 +;;;;Prerequisito: sapere cosa è un;;;; [[neurali:ros_packages]] ;;;;ROS e cosa è;;;; [[neurali:ROS catkin]]
 +
 +  - dopo aver inizializzato la shell (potrebbe essere necessario inizializzare le var. di ambiente)
 +    - <code>source /opt/ros/indigo/setup.bash</code>
 +  - (eventualmente) dopo aver avviato roscore
 +    - <code>  source ~/catkin_ws/devel/setup.bash
 +  roscore</code>
 +  - si può avviare con roslaunch il pacchetto gazebo_ros (di ros) contenente l'avvio del file world
 +     - <code>roslaunch gazebo_ros file.launch</code>
 +   - e poi depositare il robot dentro
 +     - <code>rosrun gazebo_ros spawn_model -file `rospack find MYROBOT_description`/urdf/MYROBOT.urdf -urdf -x 0 -y 0 -z 1 -model MYROBOT</code>
 +  - oppure, meglio ancora, si può avviare direttamente un file.launch che contiene tutto: world e robot
 +
 +
 +In merito a questo ultimo caso, bisogna ricordare che il  pacchetto gazebo_ros contiene uno script python (spawm_model) che si raccomanda di usare quando si deve inserire in simulazione un nuovo robot basato su modello URDF. 
 + Ricodando  
 +  * dove si deve trovare il file MYROBOT.urdf 
 +    *   ~/catkin_ws/src/MYROBOT_description/urdf/MYROBOT.urdf
 +  * di aggiungere questo testo in ~/catkin_ws/src/MYROBOT_gazebo/launch/YOUROBOT.launch 
 +    * <code><node name="spawn_urdf" pkg="gazebo_ros" type="spawn_model" args="-file $(find baxter_description)/urdf/baxter.urdf -urdf -z 1 -model baxter" /></code>
 +
 +;;;Si avvierà sia world che robot;;;
 +
 +NOTA: se lavorassi solo con Gazebo potrei mettere il file.urdf nella cartella ~/.gazebo ma ciò non è bene se voglio lavorare dentro ROS: lo metto nel package
 +
 +====Editing the World File Within Gazebo=====
 +
 +You can insert additional models into your robot's world file and use the File->Save As command to export your edited world back into your ROS package.
 +----
 +
 +http://gazebosim.org/tutorials?tut=ros_overview
 +
 +
 +The best way to use Gazebo launch files is to simply inherent/include the master "empty world" launch file located in the gazebo_ros package.
 +an example: 
 +  - package.xml <del>(invece di manifest.xml)</del>
 +  - CMakeLists.txt
 +
 +  <build_depend>gazebo_ros</build_depend>
 +  <run_depend>gazebo_ros</run_depend>
 +
 +<code>
 +cmake_minimum_required(VERSION 2.8.3)
 +project(YOURROBOT_gazebo_plugins)
 +
 +find_package(catkin REQUIRED COMPONENTS
 +  gazebo_ros
 +)
 +
 +# Depend on system install of Gazebo
 +find_package(gazebo REQUIRED)
 +
 +include_directories(include ${catkin_INCLUDE_DIRS} ${GAZEBO_INCLUDE_DIRS} ${SDFormat_INCLUDE_DIRS})
 +
 +# Build whatever you need here
 +add_library(...) # TODO
 +
 +catkin_package(
 +    DEPENDS
 +      gazebo_ros
 +    CATKIN_DEPENDS
 +    INCLUDE_DIRS
 +    LIBRARIES
 +)
 +</code>
 +
 +===== rosrun =====
 +
 +http://gazebosim.org/tutorials?tut=ros_roslaunch&cat=connect_ros
 +
 +dopo aver inizializzato la shell (potrebbe essere necessario inizializzare le var. di ambiente)
 +  source /opt/ros/indigo/setup.bash
 +
 +(eventualmente) dopo aver avviato roscore
 +
 +  source ~/catkin_ws/devel/setup.bash
 +  roscore
 +
 +si può avviare Gazebo usando il pacchetto gazebo_ros in ros
 +
 +<code>
 +rosrun gazebo_ros gazebo
 +rosrun gazebo_ros gzserver
 +rosrun gazebo_ros gzclient
 +rosrun gazebo_ros spawn_model
 +rosrun gazebo_ros perf
 +rosrun gazebo_ros debug
 +roslaunch gazebo_ros empty_world.launch
 +</code>
 +
 +e si può testare 
 +
 +  rostopic list
 +
 +  rosservice list
neurali/gazebo_connessione_ros.txt · Last modified: 2020/06/08 22:20 (external edit)