The doogie_simulator stack provides a ROS interface communication to simulate Doogie Mouse plataform. For tutorials, please check doogie_gazebo/Tutorials on wiki.
Keywords: Micromouse, Gazebo, ROS
Author: Caio Amaral
Affiliation: BIR - Brazilian Institute of Robotics
Maintainer: Caio Amaral, [email protected]
- Kinetic: Built and tested under ROS Kinetic and Ubuntu 16.04
- doogie_base : ROS metapackage with all common packages for working with Doogie Mouse
- doogie_simulator
- Table of Contents
- Simulators Supported
- Installation
- Purpose of the Project
- License
- Bugs & Feature Requests
- doogie_gazebo : ROS package with all launchfiles required to simulate Doogie Mouse in Gazebo
Attention, if you haven't installed ROS yet, please check Ubuntu install of ROS Kinetic. Desktop-Full Install is the recommended one in order to work with this repository.
Building:
First, lets create a catkin workspace.
mkdir -p ~/doogie_ws/src
doogie_simulator depends on doogie_base metapackage. So let's clone it inside our workspace source and install it.
cd ~/doogie_ws/src
git clone http://github.com/doogie-mouse/doogie_base.git
cd ..
rosdep install --from-paths src --ignore-src -r -y
Then, clone doogie_simulator also in your workspace source.
git clone http://github.com/doogie-mouse/doogie_simulator.git
Now, just build your catkin workspace.
cd ~/doogie_ws
catkin_make
Don't forget to source your workspace before using it.
source devel/setup.bash
There are two launch files in simulation. The first one is to run the solver application. The second launch the simulation to send manual goals to the robot.
To launch de solver application, run
roslaunch doogie_gazebo sim_solver_application.launch
and to start the simulation, publish the actual pose of the robot in the maze
rostopic pub -1 /doogie/doogie_pose doogie_msgs/DoogiePose "orientation:
direction: 1
position:
row: 0
column: 0"
To launch the move base interface, run
roslaunch doogie_gazebo sim_move_base_interface.launch
To fill the first cell wall on rviz maze visualization, repeat the step above to publish the initial pose of the robot. Thus to move the robot, just send manually the goals (see DoogieMove.action to understand the goal message)
rostopic pub /doogie/move_base_action_server/goal doogie_msgs/DoogieMoveAcnGoal "header:
seq: 0
stamp:
secs: 0
nsecs: 0
frame_id: ''
goal_id:
stamp:
secs: 0
nsecs: 0
id: ''
goal:
direction: 0
cells: 1
turns: 0"
It is also possible send the goals by the axclient interface
rosrun actionlib axclient.py /doogie/move_base_action_server/goal
Doogie Mouse platform was originally developed in 2019 as an undergraduate thesis (Theoprax methodoly) at Centro Universitário SENAI CIMATEC in partnership with Brazillian Institute of Robotics, for teaching principles of artificial intelligence using high level framework for writing and reusing robot software.
It's a open source project and expects modifications and contributions from it's users.
Doogie Mouse Simulator source code is released under a Apache 2.0.
Please report bugs and request features using the Issue Tracker.