From ffff79b3069ca9b707ea4a3a38c109fc3afe08eb Mon Sep 17 00:00:00 2001 From: chfriedrich98 Date: Thu, 25 Sep 2025 16:07:46 +0200 Subject: [PATCH] rover: add hiwonder rover airframes --- .../init.d/airframes/50002_hiwonder_tracked | 45 ++++++++++++++++++ .../init.d/airframes/51002_hiwonder_ackermann | 46 +++++++++++++++++++ .../init.d/airframes/52001_hiwonder_mecanum | 43 +++++++++++++++++ .../init.d/airframes/CMakeLists.txt | 3 ++ 4 files changed, 137 insertions(+) create mode 100644 ROMFS/px4fmu_common/init.d/airframes/50002_hiwonder_tracked create mode 100644 ROMFS/px4fmu_common/init.d/airframes/51002_hiwonder_ackermann create mode 100644 ROMFS/px4fmu_common/init.d/airframes/52001_hiwonder_mecanum diff --git a/ROMFS/px4fmu_common/init.d/airframes/50002_hiwonder_tracked b/ROMFS/px4fmu_common/init.d/airframes/50002_hiwonder_tracked new file mode 100644 index 0000000000..52f972dde7 --- /dev/null +++ b/ROMFS/px4fmu_common/init.d/airframes/50002_hiwonder_tracked @@ -0,0 +1,45 @@ +#!/bin/sh +# +# @name Hiwonder Tracked +# +# @url https://www.hiwonder.com/products/suspended-shock-absorbing-tracked-chassis?variant=40378709835863 +# +# @type Rover +# @class Rover +# + +. ${R}etc/init.d/rc.rover_differential_defaults + +param set-default HIWONDER_EMM_EN 1 # Enable motor driver +param set-default BAT1_N_CELLS 3 +param set-default NAV_ACC_RAD 0.5 + +# Differential Parameters +param set-default RD_WHEEL_TRACK 0.16 +param set-default RD_TRANS_DRV_TRN 0.785398 +param set-default RD_TRANS_TRN_DRV 0.0872665 + +# Rover Rate Control Parameters +param set-default RO_YAW_EXPO 0.2 +param set-default RO_YAW_SUPEXPO 0.1 +param set-default RO_YAW_RATE_I 0.1 +param set-default RO_YAW_RATE_P 0.1 +param set-default RO_YAW_RATE_LIM 140 + +# Rover Attitude Control Parameters +param set-default RO_YAW_P 5 + +# Rover Velocity Control Parameters +param set-default RO_ACCEL_LIM 1 +param set-default RO_DECEL_LIM 1 +param set-default RO_JERK_LIM 10 +param set-default RO_MAX_THR_SPEED 0.3 +param set-default RO_SPEED_LIM 0.28 +param set-default RO_SPEED_I 0.05 +param set-default RO_SPEED_P 0.1 +param set-default RO_SPEED_RED 1 + +# Pure Pursuit parameters +param set-default PP_LOOKAHD_GAIN 1 +param set-default PP_LOOKAHD_MAX 10 +param set-default PP_LOOKAHD_MIN 1 diff --git a/ROMFS/px4fmu_common/init.d/airframes/51002_hiwonder_ackermann b/ROMFS/px4fmu_common/init.d/airframes/51002_hiwonder_ackermann new file mode 100644 index 0000000000..bb2266a130 --- /dev/null +++ b/ROMFS/px4fmu_common/init.d/airframes/51002_hiwonder_ackermann @@ -0,0 +1,46 @@ +#!/bin/sh +# +# @name Hiwonder Ackermann +# +# @url https://www.hiwonder.com/products/ackermann-steering-chassis?variant=40382428348503 +# +# @type Rover +# @class Rover +# + +. ${R}etc/init.d/rc.rover_ackermann_defaults + +param set-default HIWONDER_EMM_EN 1 # Enable motor driver +param set-default BAT1_N_CELLS 3 +param set-default NAV_ACC_RAD 0.5 + +# Ackermann Parameters +param set-default RA_WHEEL_BASE 0.17 +param set-default RA_ACC_RAD_GAIN 1 +param set-default RA_ACC_RAD_MAX 1 +param set-default RA_MAX_STR_ANG 0.698132 + +# Rover Rate Control Parameters +param set-default RO_YAW_EXPO 0.6 +param set-default RO_YAW_SUPEXPO 0.3 +param set-default RO_YAW_RATE_I 0.1 +param set-default RO_YAW_RATE_P 0.1 +param set-default RO_YAW_RATE_LIM 150 + +# Rover Attitude Control Parameters +param set-default RO_YAW_P 5 + +# Rover Velocity Control Parameters +param set-default RO_ACCEL_LIM 1.6 +param set-default RO_DECEL_LIM 3 +param set-default RO_JERK_LIM 10 +param set-default RO_MAX_THR_SPEED 1.2 +param set-default RO_SPEED_LIM 1.1 +param set-default RO_SPEED_I 0.05 +param set-default RO_SPEED_P 0.1 +param set-default RO_SPEED_RED 1 + +# Pure Pursuit parameters +param set-default PP_LOOKAHD_GAIN 1 +param set-default PP_LOOKAHD_MAX 10 +param set-default PP_LOOKAHD_MIN 1 diff --git a/ROMFS/px4fmu_common/init.d/airframes/52001_hiwonder_mecanum b/ROMFS/px4fmu_common/init.d/airframes/52001_hiwonder_mecanum new file mode 100644 index 0000000000..e0543572ff --- /dev/null +++ b/ROMFS/px4fmu_common/init.d/airframes/52001_hiwonder_mecanum @@ -0,0 +1,43 @@ +#!/bin/sh +# +# @name Hiwonder Mecanum +# +# @url https://www.hiwonder.com/products/large-metal-4wd-vehicle-chassis-green +# +# @type Rover +# @class Rover +# + +. ${R}etc/init.d/rc.rover_mecanum_defaults + +param set-default HIWONDER_EMM_EN 1 # Enable motor driver +param set-default BAT1_N_CELLS 3 +param set-default NAV_ACC_RAD 0.5 + +# Mecanum Parameters +param set-default RM_WHEEL_TRACK 0.16 + +# Rover Rate Control Parameters +param set-default RO_YAW_EXPO 0.2 +param set-default RO_YAW_SUPEXPO 0.1 +param set-default RO_YAW_RATE_I 0.1 +param set-default RO_YAW_RATE_P 0.1 +param set-default RO_YAW_RATE_LIM 130 + +# Rover Attitude Control Parameters +param set-default RO_YAW_P 5 + +# Rover Velocity Control Parameters +param set-default RO_ACCEL_LIM 0.9 +param set-default RO_DECEL_LIM 1.2 +param set-default RO_JERK_LIM 10 +param set-default RO_MAX_THR_SPEED 0.5 +param set-default RO_SPEED_LIM 0.45 +param set-default RO_SPEED_I 0.05 +param set-default RO_SPEED_P 0.1 +param set-default RO_SPEED_RED 1 + +# Pure Pursuit parameters +param set-default PP_LOOKAHD_GAIN 1 +param set-default PP_LOOKAHD_MAX 10 +param set-default PP_LOOKAHD_MIN 1 diff --git a/ROMFS/px4fmu_common/init.d/airframes/CMakeLists.txt b/ROMFS/px4fmu_common/init.d/airframes/CMakeLists.txt index 6728f842ce..c673c95181 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/CMakeLists.txt +++ b/ROMFS/px4fmu_common/init.d/airframes/CMakeLists.txt @@ -145,6 +145,7 @@ if(CONFIG_MODULES_ROVER_DIFFERENTIAL) # [50000, 50999] Differential rovers 50000_generic_rover_differential 50001_aion_robotics_r1_rover + 50002_hiwonder_tracked ) endif() @@ -153,6 +154,7 @@ if(CONFIG_MODULES_ROVER_ACKERMANN) # [51000, 51999] Ackermann rovers 51000_generic_rover_ackermann 51001_axial_scx10_2_trail_honcho + 51002_hiwonder_ackermann ) endif() @@ -160,6 +162,7 @@ if(CONFIG_MODULES_ROVER_MECANUM) px4_add_romfs_files( # [52000, 52999] Mecanum rovers 52000_generic_rover_mecanum + 52001_hiwonder_mecanum ) endif()