This ROS catkin package provides all launchfiles required in order to simulate Doogie Mouse in Gazebo.
Keywords: Micromouse, IEEE, Gazebo, ROS
Author: Caio Amaral
Affiliation: BIR - Brazilian Institute of Robotics
Maintainer: Caio Amaral, [email protected]
The doogie_gazebo package has been tested under ROS Kinetic and Ubuntu 16.04 using Gazebo 7.0.0 (the one that comes with ROS Kinetic Desktop-full installation).
- gazebo_ros (provides all ROS message and service publishers for interfacing with Gazebo through ROS),
- gazebo_ros_control (package to integrate ros_control to Gazebo)
- gazebo_plugins (package to provide independent Gazebo plugins for sensors, models, etc.),
- doogie_description (package with doogie URDF),
- doogie_control (package with doogie ros controllers);
If you use this work in an academic context, please cite the following publication(s):
-
C. Amaral, M. Santos Meneses: DOOGIE MOUSE: UMA PLATAFORMA OPEN SOURCE PARA APLICAÇÃO DE ALGORITMOS INICIAIS DE INTELIGÊNCIA ARTIFICIAL EM ROBÓTICA MÓVEL. V SIINTEC International Symposium on Innovation and Technology, 2019. (PDF)
@inproceedings{Doogie2019, author = {Amaral, C. and Santos Meneses, M. }, booktitle = {V SIINTEC International Symposium on Innovation and Technology}, title = {{DOOGIE MOUSE: UMA PLATAFORMA OPEN SOURCE PARA APLICAÇÃO DE ALGORITMOS INICIAIS DE INTELIGÊNCIA ARTIFICIAL EM ROBÓTICA MÓVEL}}, publisher = {CIMATEC}, year = {2019} }
- robot_launch.launch: spawn Doogie Mouse at Gazebo empty.world
-
Arguments to set Doogie Mouse spawn
-
robot_name:
specifie a nickname for Doogie Mouse when in gazebo.- Default:
doogie
- Default:
-
x:
set x position coordinate where the robot will be spawned.- Default:
0.0
- Default:
-
y:
set y position coordinate where the robot will be spawned.- Default:
0.0
- Default:
-
z:
set z position coordinate where the robot will be spawned.- Default:
0.02
--> This will probably change to '0.0' in final version
- Default:
-
-
Arguments to set Maze spawn
- **
maze_name:
**specifie wich maze will be loaded and its name.
- **
-
Arguments to set Gazebo World
-
paused:
start Gazebo in a paused state.- Default:
false
.
- Default:
-
use_sim_time:
tells if nodes will use time published at /clock.- Default:
true
- Default:
-
gui:
load Gazebo user interface display.- Default:
true
- Default:
-
debug:
start Gazebo Server (gzserver) at debug mode using gdb.- Default:
false
- Default:
-
physics:
specifie wich physics engine will be used by Gazebo.- Default:
ode
- Default:
-
verbose:
run gzserver and Gazebo Client (gzclient)in verbose mode (i.e, printing errors and warnings to the terminal).- Default:
false
- Default:
-
world_name:
tells gazebo which world will be loaded.- Default:
worlds/empty_world
- Default:
Note: the world_name path is with respect to GAZEBO_RESOURCE_PATH environmental variable.
-
-
maze_launch.launch: Only spawn the maze inside simulation, needs Gazebo launch before using it.
-
Arguments to set Maze spawn
maze_name:
specifie wich maze will be loaded and its name.
-
doogie_gazebo uses gazebo_ros_control to provide simulation some of the default controllers used by ROS. The ros_controllers used in this simulation are:
- move_base_controller (diff_drive_controller/DiffDriveController)
- joint_publisher (joint_state_controller/JointStateController)
Futhermore, this package also uses some sensors plugins from gazebo_plugins. Currently it's only using:
- gazebo_ros_range (plugin used here to simulate the IR sensors)
gazebo_ros_control and each of the gazebo_plugins used here in the simulation was previously declared in Doogie Mouse's URDF, check doogie_description, and defined in doogie_control.
-
/move_base_controller/cmd_vel
: (geometry_msgs/Twist)Publish linear (m/s) and angular (rad/s) Doogie's velocity, by default it's using diff_drive_controller. This is the one used to move Doogie Mouse in Gazebo by controlling its velocity.
-/move_base_controller/odom
: (nav_msgs/Odometry)
Publish Doogie's current estimated position and velocity.
-
/joint_states
: (sensor_msgs/JoinState)Publish Doogie's wheels position (rad) and velocity (rad/s). This is the one used to read Doogie Mouse velocity data.
gazebo_ros provides its own communication interface, for more details you may refer to: