Enable selectively disabling sensors in the Gazebo bridge. (#25484)

* Initial plan

* Add configurable sensor subscription parameters

Co-authored-by: Tuxliri <3532595+Tuxliri@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Tuxliri <3532595+Tuxliri@users.noreply.github.com>
This commit is contained in:
Davide Iafrate 2025-08-26 20:00:47 +02:00 committed by GitHub
parent 6ec8dec63a
commit ec436d3be3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 101 additions and 15 deletions

View File

@ -90,32 +90,46 @@ int GZBridge::init()
}
// OPTIONAL:
if (!subscribeNavsat(false)) {
return PX4_ERROR;
if (_sim_gz_en_gps.get()) {
if (!subscribeNavsat(false)) {
return PX4_ERROR;
}
}
if (!subscribeAirPressure(false)) {
return PX4_ERROR;
if (_sim_gz_en_baro.get()) {
if (!subscribeAirPressure(false)) {
return PX4_ERROR;
}
}
if (!subscribeDistanceSensor(false)) {
return PX4_ERROR;
if (_sim_gz_en_lidar.get()) {
if (!subscribeDistanceSensor(false)) {
return PX4_ERROR;
}
}
if (!subscribeAirspeed(false)) {
return PX4_ERROR;
if (_sim_gz_en_aspd.get()) {
if (!subscribeAirspeed(false)) {
return PX4_ERROR;
}
}
if (!subscribeOpticalFlow(false)) {
return PX4_ERROR;
if (_sim_gz_en_flow.get()) {
if (!subscribeOpticalFlow(false)) {
return PX4_ERROR;
}
}
if (!subscribeOdometry(false)) {
return PX4_ERROR;
if (_sim_gz_en_odom.get()) {
if (!subscribeOdometry(false)) {
return PX4_ERROR;
}
}
if (!subscribeLaserScan(false)) {
return PX4_ERROR;
if (_sim_gz_en_lidar.get()) {
if (!subscribeLaserScan(false)) {
return PX4_ERROR;
}
}
// ESC mixing interface

View File

@ -194,6 +194,12 @@ private:
const float _vel_markov_time = 0.85f; // Velocity Markov process coefficient
DEFINE_PARAMETERS(
(ParamInt<px4::params::SIM_GPS_USED>) _sim_gps_used
(ParamInt<px4::params::SIM_GPS_USED>) _sim_gps_used,
(ParamInt<px4::params::SIM_GZ_EN_LIDAR>) _sim_gz_en_lidar,
(ParamInt<px4::params::SIM_GZ_EN_FLOW>) _sim_gz_en_flow,
(ParamInt<px4::params::SIM_GZ_EN_ASPD>) _sim_gz_en_aspd,
(ParamInt<px4::params::SIM_GZ_EN_BARO>) _sim_gz_en_baro,
(ParamInt<px4::params::SIM_GZ_EN_ODOM>) _sim_gz_en_odom,
(ParamInt<px4::params::SIM_GZ_EN_GPS>) _sim_gz_en_gps
)
};

View File

@ -39,3 +39,69 @@
* @group UAVCAN
*/
PARAM_DEFINE_INT32(SIM_GZ_EN, 0);
/**
* Enable laser/lidar sensors in Gazebo bridge
*
* @boolean
* @reboot_required true
* @group Simulation
* @value 0 Disabled
* @value 1 Enabled
*/
PARAM_DEFINE_INT32(SIM_GZ_EN_LIDAR, 1);
/**
* Enable optical flow sensor in Gazebo bridge
*
* @boolean
* @reboot_required true
* @group Simulation
* @value 0 Disabled
* @value 1 Enabled
*/
PARAM_DEFINE_INT32(SIM_GZ_EN_FLOW, 1);
/**
* Enable airspeed sensor in Gazebo bridge
*
* @boolean
* @reboot_required true
* @group Simulation
* @value 0 Disabled
* @value 1 Enabled
*/
PARAM_DEFINE_INT32(SIM_GZ_EN_ASPD, 1);
/**
* Enable barometer/air pressure sensor in Gazebo bridge
*
* @boolean
* @reboot_required true
* @group Simulation
* @value 0 Disabled
* @value 1 Enabled
*/
PARAM_DEFINE_INT32(SIM_GZ_EN_BARO, 1);
/**
* Enable odometry in Gazebo bridge
*
* @boolean
* @reboot_required true
* @group Simulation
* @value 0 Disabled
* @value 1 Enabled
*/
PARAM_DEFINE_INT32(SIM_GZ_EN_ODOM, 1);
/**
* Enable GPS/NavSat sensor in Gazebo bridge
*
* @boolean
* @reboot_required true
* @group Simulation
* @value 0 Disabled
* @value 1 Enabled
*/
PARAM_DEFINE_INT32(SIM_GZ_EN_GPS, 1);