I don't have a physical robot but I would like to test the performance of my C++ code for odometry, SLAM, and path planning. Are there any good simulation software where I can test my algorithm implementation?
There are quite a lot options for this, each with different features, strengths and weaknesses. A few examples:
- Gazebo (as mentioned by edwinem): very well known in the robotics community, some would say it's a little bit dated
- Microsoft Airsim (also mentioned by edwinem): originally developed for autonomous drones and autonomous driving, uses the unreal engine for high image quality (experimental support for Unity)
- NVIDIA Isaac SDK: a "newcomer" with a lot of manpower from NVIDIA in the background where the focus is more on indoor applications, also has the ability to work with ROS. It uses the Unity engine for high quality image rendering (Unreal support was planned, but doesn't seem to get pursued at the moment)
- webots: general purpose simulator with quite a few robot models included, has C++ and Python APIs and is known to work with ROS
- robotbenchmark: builds on webots and allows you to develop your skills in different challenges presented on the website (note: the robot is programmed in Python, not C++)
If you want to test everything together then you need to setup a simulator like Gazebo(integrates well with ROS which I assume you are using). Other options could be Airsim, or some custom simulator. These options though and are more involved in required setup on your part.
For path planning I would take a look at what OMPL integrates into, and setup your code in the same way.