Pixhawk, Gazebo, Ardupilot and QGroundControl

Hello everybody,

We are trying to make a rover, which will avoid the obstacles and go to the commanded point (GPS data). Before testing with the real rover (which is not ready yet), we want to use some simulations, and hardware in the loop data. I have been searching all over the Internet, there are many useful documents for any keyword I write, but I lack a (high level) planning: In what order, should I learn them?

Should I learn Gazebo (with ROS) first, then learn how to simulate Ardupilot in Gazebo, and finally to use QGroundControl with Gazebo (hardware in the loop)?

I am really lost in this abundant world of information. Any little insight is appreciated.

Thank you…

For help doing this with ArduPilot, better to ask at discuss.ardupilot.org

Actually, connecting QGC and simulating Ardupilot in Gazebo is very simple work compared to using ROS (unless you modify the source code).
However, normally those 3 works all correlated with each others. In common setting, Ardupilot(or PX4) communicates with QGC via mavlink. So, it is hard to recommend what should be done first; they are just a kind of set.
In my case, I first managed to simulate PX4 in Gazebo, and tried to connect it QGC. If you are not planning to operate rover in offboard, you may not need further knowledge about ROS at this point.

Thank you, I did it!

Thanks for the explanation. Your order of progress (simulate px4 in Gazebo, then connect it to QGC) makes a good sense. In the real robot, since we will use GPS and a Lidar sensor (for obstacle avoidance), I thought some ROS programming would be necessary. I also believed that in order to use Gazebo properly, we have to use ROS. In that case, do you think all I need is just a basic understanding of the language? I guess ROS has an Python API, but there is no direct control of Gazebo with Python I suppose.

Sorry for confusion. I don’t know why but I misunderstand you want to simulate example rover. If you want to simulate entirely new system like custom controller, you’re right. ROS programming is required. Of course, you can detour via other tools, such as MATLAB. Although you still need to send the command using mavlink, it does not require ROS knowledge if sensor information is available.
In case of language, I’m sorry but I don’t know much about python. I normally use C for ROS programming.

No problem at all & thank you very much. Hopefully, I will ask more specific questions as I get deeper into the subject. Our purpose is first to simulate the rover with lidar in Gazebo, then I think we will follow the path you described before (pixhawk and beyond).