PX4-Autopilot icon indicating copy to clipboard operation
PX4-Autopilot copied to clipboard

(new) GZ Feature tracker

Open Jaeyoung-Lim opened this issue 1 year ago • 8 comments

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

Jaeyoung-Lim avatar Aug 22 '24 19:08 Jaeyoung-Lim

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.

dakejahl avatar Aug 22 '24 19:08 dakejahl

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.

mrpollo avatar Aug 22 '24 19:08 mrpollo

  1. 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

  2. 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

  3. 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 avatar Aug 23 '24 12:08 dirksavage88

@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.

Jaeyoung-Lim avatar Aug 23 '24 15:08 Jaeyoung-Lim

@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.

dirksavage88 avatar Aug 29 '24 19:08 dirksavage88

Maybe add distance sensors (rangefinders) to the sensor list.

Myzhe avatar Oct 01 '24 19:10 Myzhe

@Jaeyoung-Lim Please see the following PR for faster than real time support

dirksavage88 avatar Oct 07 '24 14:10 dirksavage88

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 ...".

hamishwillee avatar Oct 09 '24 06:10 hamishwillee

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 avatar Dec 06 '24 09:12 Claudio-Chies

@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

Jaeyoung-Lim avatar Dec 06 '24 11:12 Jaeyoung-Lim

I started on adding plugin support for gz, looking for input https://github.com/PX4/PX4-Autopilot/pull/24153

dakejahl avatar Dec 25 '24 03:12 dakejahl

Hello, is there any planned support for HITL? This issue suggested it but it has gone stale. Thanks

martinbaer avatar Jan 22 '25 03:01 martinbaer

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

DronecodeBot avatar Feb 19 '25 16:02 DronecodeBot

@Jaeyoung-Lim rotor plugin, last time I checked, was not bidirectional either. Not sure if this has been fixed meanwhile.

Pedro-Roque avatar Feb 19 '25 16:02 Pedro-Roque

I'm very looking forward gz camera features. Come on....

Camera Manager / Video Streaming Camera triggering/geotagging

maponarooo avatar Feb 25 '25 02:02 maponarooo

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.

Roboticistprogrammer avatar Mar 28 '25 13:03 Roboticistprogrammer

was wondering if there were any updates on potential HITL support for new gazebo? specifically interested in standard vtol frame

garret695 avatar Jul 14 '25 14:07 garret695