Question for classification and connection for GCS and simulator

Hi, all.

Due to my lack of knowledge, I would like to ask classification and connection for GCS and simulator

1 . Classification of GCS and Simulator
From my understanding,

  1. GCS can be…
    QGroundControl (
    or MAVproxy (

  2. Simulator can be…
    Gazebo (
    or jMAVsim (

2 . Connection of GCS and Simulator
For SITL, they are connected as follows. Then how about HITL?
-> GCS - Simulator - PX4 for SITL

3 . Does MAVproxy work well with PX4? Of course, I am not talking about Ardupilot (Definitely, QGroundControl seems to work)

In the case of Gazebo the simulator connects directly to PX4, and GCS connects to PX4 independently.

MAVproxy works for things like forwarding mavlink packets, but the GCS features are fairly Ardupilot specific.

Thank you. then,
1 . Is the connection “QGroundControl - jMAVsim - PX4 for SITL” correct?
2 . For HITL, is “QGroundControl - jMAVsim - PX4 for HITL” correct?
(although I think PX4 firmware includes HITL functions)

I’m not completely sure about the jmavsim details, but I believe it’s different for SITL vs HIL.

With PX4 running in SITL it connects directly to jMavsim over Mavlink. QGC connects to PX4 over Mavlink (UDP).
In HIL jMavsim connects to the pixhawk (mavlink over usb serial) and then QGC connects to jMavsim.

Is it possible to setup HITL with Gazebo and QGC as well?