PX4-Autopilot
PX4-Autopilot copied to clipboard
(new) GZ Feature tracker
Describe problem solved by the proposed feature
This is a feature tracker to achieve feature parity with gazebo classic.
Feed free to modify the issue to append the list or mark it as completed. If there is an issue/PR, please reference it.
Describe your preferred solution
The list of features that are missing in the new GZ is as follows:
Models
- [x] Fixedwing-advanced lift drag (https://github.com/PX4/PX4-Autopilot/pull/22167)
- [ ] Tiltrotor VTOL
- [x] Differential rover (https://github.com/PX4/PX4-Autopilot/pull/22402)
- [x] Ackermann Rover (https://github.com/PX4/PX4-Autopilot/pull/23383)
- [ ] Quadtailsitter
- [x] Omnicopter (https://github.com/PX4/PX4-Autopilot/pull/21818)
- [ ] USVs (Boats)
Worlds
- [ ] Ocean
- [x] Baylands
PX4 related Features
- [ ] Gimbal Control (https://github.com/PX4/PX4-Autopilot/pull/23382)
- [ ] Camera Manager / Video Streaming
- [ ] Camera triggering/geotagging
- [ ] Rotor failures
- [ ] Collision prevention
- [ ] Catapult launch
- [ ] Parachute/Flight termination
- [ ] Retractable landing gear
- [ ] Precision Landing (https://github.com/PX4/PX4-Autopilot/pull/23450)
Sensors
- [ ] Airspeed sensors
- [ ] Optical Flow sensor
- [ ] GPS yaw heading simulation
- [ ] Multi airspeed sensor
- [ ] Distance sensor
Actuators
- [ ] Wind influence for motor thrust
- [ ] Wind influence for lift and drag plugin
Simulation Features
- [ ] Faster than real-time simulation
- [x] Vehicle view tracking (https://github.com/PX4/PX4-Autopilot/pull/22808)
- [ ] MAVSDK SITL tests
- [ ] Multivehicle simulation
- [ ] Wind/Gust simulation
Describe possible alternatives
NA
Additional context
Add optical flow to the sensors list. I can help with creating the plugin architecture, I just need to find some time to do it.
Maybe add switching the MAVSD SITL tests to the new GZ as well. I can take care of it once we have faster than real-time.
-
Collision prevention/obstacle distance already exists in PX4 gz with the x500 lidar model: https://github.com/PX4/PX4-Autopilot/blob/1a0f97ebbd67870d4686ee7ebb6d38e11662eabc/src/modules/simulation/gz_bridge/GZBridge.cpp#L808
-
Catapult is just a Wrench publisher in GZ and a model would purely be for visual purposes. Easy to implement outside of PX4:
gz topic -t /world/default/wrench -m gz.msgs.EntityWrench -p 'entity:{name:"x_500",type:MODEL},wrench:{force: {x:32000,y:0,z:8500,}}' -n 100 -
Airspeed is in GZ garden, but not yet in a PX4 plugin: https://github.com/gazebosim/gz-sensors/blob/gz-sensors7/src/AirSpeedSensor.cc
Multivehicle simulation as in multiple PX4 capable vehicles or just one PX4 vehicle and another controlled externally?
@dirksavage88
Collision prevention/obstacle distance already exists in PX4 gz with the x500 lidar model:
I know, but does the test work?
Catapult is just a Wrench publisher in GZ and a model would purely be for visual purposes. Easy to implement outside of PX4: gz topic -t /world/default/wrench -m gz.msgs.EntityWrench -p 'entity:{name:"x_500",type:MODEL},wrench:{force: {x:32000,y:0,z:8500,}}' -n 100
We need to write a plugin that does it automatically on arm to make testing more convenient. It doesn't make sense to type that everytime you test it.
Airspeed is in GZ garden, but not yet in a PX4 plugin: https://github.com/gazebosim/gz-sensors/blob/gz-sensors7/src/AirSpeedSensor.cc
That is just the sensor implementation. We need to incorporate it into gz bridge and handle the airframe configs for it.
@dirksavage88
Collision prevention/obstacle distance already exists in PX4 gz with the x500 lidar model:
I know, but does the test work?
Catapult is just a Wrench publisher in GZ and a model would purely be for visual purposes. Easy to implement outside of PX4: gz topic -t /world/default/wrench -m gz.msgs.EntityWrench -p 'entity:{name:"x_500",type:MODEL},wrench:{force: {x:32000,y:0,z:8500,}}' -n 100
We need to write a plugin that does it automatically on arm to make testing more convenient. It doesn't make sense to type that everytime you test it.
Airspeed is in GZ garden, but not yet in a PX4 plugin: https://github.com/gazebosim/gz-sensors/blob/gz-sensors7/src/AirSpeedSensor.cc
That is just the sensor implementation. We need to incorporate it into gz bridge and handle the airframe configs for it.
By test, this is in reference to a unit test of some sort? I am not sure how tests were carried out in gazebo classic.
Maybe add distance sensors (rangefinders) to the sensor list.
@Jaeyoung-Lim Please see the following PR for faster than real time support
This is very nice!! Note, we need to make sure these things are documented. Feature parity also means "works out of the box", not "we added a distance sensor to the model, but actually it can only be used from ROS if you know what you are doing, maybe ...".
There seems to be a bug regarding the interaction of the Advanced Lift Drag plugin, and the windy world. where the advanced plane gets blown away before takeoff. make px4_sitl gz_advanced_plane_windy
might be added to this list?
https://github.com/PX4/PX4-Autopilot/issues/24064
@Claudio-Chies Lets keep bugs away from this thread and focus on missing features. Once the features are ported, bugs should be treated as is
I started on adding plugin support for gz, looking for input https://github.com/PX4/PX4-Autopilot/pull/24153
Hello, is there any planned support for HITL? This issue suggested it but it has gone stale. Thanks
This issue has been mentioned on Discussion Forum for PX4, Pixhawk, QGroundControl, MAVSDK, MAVLink. There might be relevant details there:
https://discuss.px4.io/t/px4-sync-q-a-feb-19-2025/43827/1
@Jaeyoung-Lim rotor plugin, last time I checked, was not bidirectional either. Not sure if this has been fixed meanwhile.
I'm very looking forward gz camera features. Come on....
Camera Manager / Video Streaming Camera triggering/geotagging
Worlds
- [ ] Ocean
- [x] Baylands
Hi @Jaeyoung-Lim, Can you have a look at (https://github.com/Roboticistprogrammer/PX4-gazebo-models/blob/ocean-world/worlds/ocean.sdf). I think some stuff needs to happen at the PX4 stratup script but maybe this could be a good starting point, feel free to let me know how to move forward to add this world file.
was wondering if there were any updates on potential HITL support for new gazebo? specifically interested in standard vtol frame