I'm trying to develop a simulation in Gazebo of my existing ROS-controlled bot. It occurs to me that it would be nice to be able to use the same control/mapping/planning software on the real machine or Gazebo, with only a difference in launch files.
I've written an SDF file by hand that roughly models my bot, and a launch file that (apparently) allows me to keyboard-teleop (though it's not clear that there's any actual feedback control happening).
However, to write this, I had to selectively ignore parts of many tutorials I found that referred to <gazebo>
tags and URDF/.xacro files. Am I doing this wrong? Should I not have a models/gunnar
subdirectory (symlinked into ~/.gazebo/models
)? Should I have some set of .xacro,
.xml, and .gazebo files, derived from my current .sdf and .config files? How should my launch file change? And my environment variables?
Various pieces of information available in many incomplete or outdated tutorials disagree on these points, and the Gazebo documentation seems to be much more complete for the C++ interface.
For that matter, do I have to use ros_control
? How much of my current move_base
stack will I need to rewrite to so that the simulation and the real bot are drop-in replacements for each other, API-wise?