If your are like me, you’ve invested an insane amount of hours constructing Gazebo robot models for integration with ROS. Creating a new minimal working robot model often involves recycling old projects or utilizing online examples. This, however, proves time-consuming due to various reasons:
- establishing a minimal model requires cleaning out all the junk code from recycled projects
- need to always relearn/remember Gazebo and ROS plugins specific problems and all the weird ways of handling them
- encountering a slow turnaround time, as even a simple coordinate change in URDF necessitates restarting Gazebo, which can be time-intensive even on high-performance computers.
- Gazebos fairly vague and unclear of defining errors are not helping
- remembering all the standards when creating the Gazebo and description packages inside of the ROS workspace
- I could go on and on, you get the idea…
A potential solution could be to a user-friendly tool that streamlines the establishment of a minimal working example by generating fully standardized and ROS-compatible packages for the most common ROS robots (e.g., differential drive, Ackermann, simple arms). Visualizing the tool, one might imagine a user interface where, by selecting a robot type and adjusting parameters, users can instantly preview the rendered robot. I imagine the tool could look something like this:
While the demo focuses on basic design adjustments, future iterations could include adding sensors (e.g., lidars, cameras, buttons) or even 3D renders of the robot. Once satisfied with the design, users could generate and download two ROS packages (Gazebo and description) that can be seamlessly imported into their ROS workspace. The exported robot would already include implemented links, joints, controllers, and macros, making it readily executable.
This would not completely eliminate the mentioned problems above, but would at least drastically lower the time needed to get a minimal working example upon which the user can build extensions. This would also lower the entry barrier for beginners and provide a solid, standardized template for making simulated robots.
I am curious to know if the community is aware of existing tools that address similar challenges. Additionally, I am keen to understand if others in the community encounter similar problems in Gazebo robot modeling (or ones that haven’t been mentioned here). Feedback about usefulness of such a tool along with any other comments would be very welcome.