feat: BlueROV2 Heavy updated control (attitude and position) and model (#25052)

* rft: clean merge to PX4

* fix: formatting

* fix: extra line

* fix: moved submarine out of "is_ground_vehicle", added proper check for center-throttle

* feat: updated gazebo models to include bluerov update

* fix: use 'is_uuv_vehicle', remove FW_MM/LLC from uuv build

* fix: added saturation to thrust and torque messages via param

* doc: updated parameters documentation for uuv

* fix: formatting

* feat: matching hardware reference

* fix: thrusters kg

* rft: removed commented lines

* fix: update gz reference given hw setup

* fix: hardware references

* fix: recommendations

* fix: updated settings to match hardware

* rft: check only for fixed and rotary wing for high throttle

Co-authored-by: Daniel Agar <daniel@agar.ca>

* fix: commit oupsie

* fix: format

* rft: remove is_uuv

* fix: hw parameters, uuv build target for v6x

* feat: added support for D-pad attitude changes in stabilized position control

* fix: position setpoint update and parametrized trajectory age and att change

* fix: format

* fix: removed duplicated call to check_validity_setpoint

* fix: setpoint update on arming logic

* fix: setpoint initialization for stabilized mode

---------

Co-authored-by: Daniel Agar <daniel@agar.ca>
This commit is contained in:
Pedro Roque
2025-07-23 10:29:22 -07:00
committed by GitHub
co-authored by Daniel Agar
parent 09fe34af0e
commit e14eea5615
23 changed files with 2891 additions and 201 deletions
@@ -0,0 +1,138 @@
#!/bin/sh
#
# @name BlueROV2 Heavy
#
# @type UUV
#
# @maintainer Pedro Roque <padr@kth.se>
# @maintainer Nicola De Carli <ndc@kth.se>
#
# Source PX4 parameters and configuration
. ${R}/etc/init.d/rc.uuv_defaults
PX4_SIMULATOR=${PX4_SIMULATOR:=gz}
PX4_GZ_WORLD=${PX4_GZ_WORLD:=underwater}
PX4_SIM_MODEL=${PX4_SIM_MODEL:=uuv_bluerov2_heavy}
param set-default SIM_GZ_EN 1
# Set parameters using `param` utility for SITL
param set-default CA_AIRFRAME 7
param set-default CA_METHOD 0
param set-default MAV_TYPE 12
param set-default SENS_EN_GPSSIM 1
param set-default SENS_EN_BAROSIM 1
param set-default SENS_EN_MAGSIM 1
param set-default COM_ARM_CHK_ESCS 0 # We don't have ESCs
param set-default FD_ESCS_EN 0 # We don't have ESCs - but maybe we need this later?
# Set proper failsafes
param set-default COM_ACT_FAIL_ACT 0
param set-default COM_LOW_BAT_ACT 0
param set-default NAV_DLL_ACT 0
param set-default GF_ACTION 1
param set-default NAV_RCL_ACT 1
param set-default COM_POSCTL_NAVL 2
# disable attitude failure detection
param set-default FD_FAIL_P 0
param set-default FD_FAIL_R 0
param set-default CA_ROTOR_COUNT 8
param set-default CA_R_REV 255
param set-default CA_ROTOR0_AX -1
param set-default CA_ROTOR0_AY 1
param set-default CA_ROTOR0_AZ 0
param set-default CA_ROTOR0_KM 0
param set-default CA_ROTOR0_PX 0.14
param set-default CA_ROTOR0_PY 0.10
param set-default CA_ROTOR0_PZ 0.06
#param set-default CA_ROTOR0_PZ 0.0
param set-default CA_ROTOR1_AX -1
param set-default CA_ROTOR1_AY -1
param set-default CA_ROTOR1_AZ 0
param set-default CA_ROTOR1_KM 0
param set-default CA_ROTOR1_PX 0.14
param set-default CA_ROTOR1_PY -0.10
param set-default CA_ROTOR1_PZ 0.06
#param set-default CA_ROTOR1_PZ 0.0
param set-default CA_ROTOR2_AX 1
param set-default CA_ROTOR2_AY 1
param set-default CA_ROTOR2_AZ 0
param set-default CA_ROTOR2_KM 0
param set-default CA_ROTOR2_PX -0.14
param set-default CA_ROTOR2_PY 0.10
param set-default CA_ROTOR2_PZ 0.06
#param set-default CA_ROTOR2_PZ 0.0
param set-default CA_ROTOR3_AX 1
param set-default CA_ROTOR3_AY -1
param set-default CA_ROTOR3_AZ 0
param set-default CA_ROTOR3_KM 0
param set-default CA_ROTOR3_PX -0.14
param set-default CA_ROTOR3_PY -0.10
param set-default CA_ROTOR3_PZ 0.06
param set-default CA_ROTOR4_AX 0
param set-default CA_ROTOR4_AY 0
param set-default CA_ROTOR4_AZ 1
param set-default CA_ROTOR4_KM 0
param set-default CA_ROTOR4_PX 0.12
param set-default CA_ROTOR4_PY 0.22
param set-default CA_ROTOR4_PZ 0
param set-default CA_ROTOR5_AX 0
param set-default CA_ROTOR5_AY 0
param set-default CA_ROTOR5_AZ 1
param set-default CA_ROTOR5_KM 0
param set-default CA_ROTOR5_PX 0.12
param set-default CA_ROTOR5_PY -0.22
param set-default CA_ROTOR5_PZ 0
param set-default CA_ROTOR6_AX 0
param set-default CA_ROTOR6_AY 0
param set-default CA_ROTOR6_AZ 1
param set-default CA_ROTOR6_KM 0
param set-default CA_ROTOR6_PX -0.12
param set-default CA_ROTOR6_PY 0.22
param set-default CA_ROTOR6_PZ 0
param set-default CA_ROTOR7_AX 0
param set-default CA_ROTOR7_AY 0
param set-default CA_ROTOR7_AZ 1
param set-default CA_ROTOR7_KM 0
param set-default CA_ROTOR7_PX -0.12
param set-default CA_ROTOR7_PY -0.22
param set-default CA_ROTOR7_PZ 0
param set-default SIM_GZ_EC_FUNC1 101
param set-default SIM_GZ_EC_FUNC2 102
param set-default SIM_GZ_EC_FUNC3 103
param set-default SIM_GZ_EC_FUNC4 104
param set-default SIM_GZ_EC_FUNC5 105
param set-default SIM_GZ_EC_FUNC6 106
param set-default SIM_GZ_EC_FUNC7 107
param set-default SIM_GZ_EC_FUNC8 108
param set-default SIM_GZ_EC_MIN1 1100
param set-default SIM_GZ_EC_MIN2 1100
param set-default SIM_GZ_EC_MIN3 1100
param set-default SIM_GZ_EC_MIN4 1100
param set-default SIM_GZ_EC_MIN5 1100
param set-default SIM_GZ_EC_MIN6 1100
param set-default SIM_GZ_EC_MIN7 1100
param set-default SIM_GZ_EC_MIN8 1100
param set-default SIM_GZ_EC_MAX1 1900
param set-default SIM_GZ_EC_MAX2 1900
param set-default SIM_GZ_EC_MAX3 1900
param set-default SIM_GZ_EC_MAX4 1900
param set-default SIM_GZ_EC_MAX5 1900
param set-default SIM_GZ_EC_MAX6 1900
param set-default SIM_GZ_EC_MAX7 1900
param set-default SIM_GZ_EC_MAX8 1900
@@ -115,6 +115,8 @@ px4_add_romfs_files(
50000_gz_rover_differential
60002_gz_uuv_bluerov2_heavy
71001_gz_atmos
71002_gz_spacecraft_2d
@@ -22,7 +22,7 @@
. ${R}etc/init.d/rc.uuv_defaults
param set-default MAV_1_CONFIG 102
# param set-default MAV_1_CONFIG 102
param set-default BAT1_A_PER_V 37.8798
param set-default BAT1_CAPACITY 18000
@@ -30,53 +30,93 @@ param set-default BAT1_V_DIV 11
param set-default BAT1_N_CELLS 4
param set-default BAT_V_OFFS_CURR 0.33
# Set parameters using `param` utility for SITL
param set-default CA_AIRFRAME 7
param set-default CA_METHOD 0
param set-default MAV_TYPE 12
# Board rotation: set to direct replacement of RPi with PX4
# with forward facing vehicle forward
param set-default SENS_BOARD_ROT 16
# Set proper failsafes
param set-default COM_ACT_FAIL_ACT 0
param set-default COM_LOW_BAT_ACT 0
param set-default NAV_DLL_ACT 0
param set-default GF_ACTION 1
param set-default NAV_RCL_ACT 1
param set-default COM_POSCTL_NAVL 2
# disable attitude failure detection
param set-default FD_FAIL_P 0
param set-default FD_FAIL_R 0
param set-default CA_ROTOR_COUNT 8
param set-default CA_R_REV 255
param set-default CA_ROTOR0_AX 1
param set-default CA_ROTOR0_AY -1
param set-default CA_ROTOR0_AZ 0
param set-default CA_ROTOR0_KM 0
param set-default CA_ROTOR0_PX 0.5
param set-default CA_ROTOR0_PY 0.3
param set-default CA_ROTOR0_PZ 0.2
param set-default CA_ROTOR0_PX 0.14
param set-default CA_ROTOR0_PY 0.10
param set-default CA_ROTOR0_PZ 0.06
param set-default CA_ROTOR1_AX 1
param set-default CA_ROTOR1_AY 1
param set-default CA_ROTOR1_AZ 0
param set-default CA_ROTOR1_KM 0
param set-default CA_ROTOR1_PX 0.5
param set-default CA_ROTOR1_PY -0.3
param set-default CA_ROTOR1_PZ 0.2
param set-default CA_ROTOR1_PX 0.14
param set-default CA_ROTOR1_PY -0.10
param set-default CA_ROTOR1_PZ 0.06
param set-default CA_ROTOR2_AX 1
param set-default CA_ROTOR2_AY 1
param set-default CA_ROTOR2_AZ 0
param set-default CA_ROTOR2_KM 0
param set-default CA_ROTOR2_PX -0.5
param set-default CA_ROTOR2_PY 0.3
param set-default CA_ROTOR2_PZ 0.2
param set-default CA_ROTOR2_PX -0.14
param set-default CA_ROTOR2_PY 0.10
param set-default CA_ROTOR2_PZ 0.06
param set-default CA_ROTOR3_AX 1
param set-default CA_ROTOR3_AY -1
param set-default CA_ROTOR3_AZ 0
param set-default CA_ROTOR3_KM 0
param set-default CA_ROTOR3_PX -0.5
param set-default CA_ROTOR3_PY -0.3
param set-default CA_ROTOR3_PZ 0.2
param set-default CA_ROTOR3_PX -0.14
param set-default CA_ROTOR3_PY -0.10
param set-default CA_ROTOR3_PZ 0.06
param set-default CA_ROTOR4_AX 0
param set-default CA_ROTOR4_AY 0
param set-default CA_ROTOR4_AZ -1
param set-default CA_ROTOR4_KM 0
param set-default CA_ROTOR4_PX 0.5
param set-default CA_ROTOR4_PY 0.5
param set-default CA_ROTOR4_PX 0.12
param set-default CA_ROTOR4_PY 0.22
param set-default CA_ROTOR4_PZ 0
param set-default CA_ROTOR5_AX 0
param set-default CA_ROTOR5_AY 0
param set-default CA_ROTOR5_AZ 1
param set-default CA_ROTOR5_KM 0
param set-default CA_ROTOR5_PX 0.5
param set-default CA_ROTOR5_PY -0.5
param set-default CA_ROTOR5_PX 0.12
param set-default CA_ROTOR5_PY -0.22
param set-default CA_ROTOR5_PZ 0
param set-default CA_ROTOR6_AX 0
param set-default CA_ROTOR6_AY 0
param set-default CA_ROTOR6_AZ 1
param set-default CA_ROTOR6_KM 0
param set-default CA_ROTOR6_PX -0.5
param set-default CA_ROTOR6_PY 0.5
param set-default CA_ROTOR6_PX -0.12
param set-default CA_ROTOR6_PY 0.22
param set-default CA_ROTOR6_PZ 0
param set-default CA_ROTOR7_AX 0
param set-default CA_ROTOR7_AY 0
param set-default CA_ROTOR7_AZ -1
param set-default CA_ROTOR7_KM 0
param set-default CA_ROTOR7_PX -0.5
param set-default CA_ROTOR7_PY -0.5
param set-default CA_ROTOR7_PX -0.12
param set-default CA_ROTOR7_PY -0.22
param set-default CA_ROTOR7_PZ 0
param set-default PWM_MAIN_FUNC1 101
param set-default PWM_MAIN_FUNC2 102
@@ -86,3 +126,30 @@ param set-default PWM_MAIN_FUNC5 105
param set-default PWM_MAIN_FUNC6 106
param set-default PWM_MAIN_FUNC7 107
param set-default PWM_MAIN_FUNC8 108
param set-default PWM_MAIN_MIN1 1100
param set-default PWM_MAIN_MIN2 1100
param set-default PWM_MAIN_MIN3 1100
param set-default PWM_MAIN_MIN4 1100
param set-default PWM_MAIN_MIN5 1100
param set-default PWM_MAIN_MIN6 1100
param set-default PWM_MAIN_MIN7 1100
param set-default PWM_MAIN_MIN8 1100
param set-default PWM_MAIN_MAX1 1900
param set-default PWM_MAIN_MAX2 1900
param set-default PWM_MAIN_MAX3 1900
param set-default PWM_MAIN_MAX4 1900
param set-default PWM_MAIN_MAX5 1900
param set-default PWM_MAIN_MAX6 1900
param set-default PWM_MAIN_MAX7 1900
param set-default PWM_MAIN_MAX8 1900
param set-default PWM_MAIN_DIS1 1500
param set-default PWM_MAIN_DIS2 1500
param set-default PWM_MAIN_DIS3 1500
param set-default PWM_MAIN_DIS4 1500
param set-default PWM_MAIN_DIS5 1500
param set-default PWM_MAIN_DIS6 1500
param set-default PWM_MAIN_DIS7 1500
param set-default PWM_MAIN_DIS8 1500
+2 -2
View File
@@ -16,6 +16,6 @@ control_allocator start
uuv_att_control start
#
# Start UUV Land Detector.
# Start UUV Position Controller.
#
land_detector start rover
uuv_pos_control start
@@ -9,3 +9,21 @@ set VEHICLE_TYPE uuv
# MAV_TYPE_SUBMARINE 12
param set-default MAV_TYPE 12
# Set micro-dds-client to use ethernet and IP-address 192.168.0.1
param set-default UXRCE_DDS_AG_IP -1062731775
# Disable preflight disarm to not interfere with external launching
param set-default COM_DISARM_PRFLT -1
param set-default CBRK_SUPPLY_CHK 894281
param set-default COM_ARM_HFLT_CHK 0
#Missing params
param set-default CP_DIST -1.0
# Default to MoCap fusion
param set-default ATT_EXT_HDG_M 2
param set-default EKF2_EV_CTRL 15
param set-default EKF2_EV_DELAY 5
param set-default EKF2_GPS_CTRL 0
param set-default EKF2_HGT_REF 3