From a33dccfcc2dc3d844ecd95322f690ea87e2dbd7b Mon Sep 17 00:00:00 2001 From: PerFrivik Date: Fri, 1 Dec 2023 11:03:27 +0100 Subject: [PATCH] Differential Rover: Update airframe architecture --- .../airframes/1060_gazebo-classic_rover | 2 +- .../airframes/1061_gazebo-classic_r1_rover | 2 +- ROMFS/px4fmu_common/init.d/CMakeLists.txt | 4 +++ .../airframes/50000_generic_ground_vehicle | 2 +- .../airframes/50003_aion_robotics_r1_rover | 2 +- .../init.d/rc.rover_ackermann_apps | 28 +++++++++++++++++++ .../init.d/rc.rover_ackermann_defaults | 22 +++++++++++++++ ROMFS/px4fmu_common/init.d/rc.rover_apps | 1 - .../init.d/rc.rover_differential_apps | 24 ++++++++++++++++ .../init.d/rc.rover_differential_defaults | 11 ++++++++ ROMFS/px4fmu_common/init.d/rc.vehicle_setup | 18 ++++++++++++ 11 files changed, 111 insertions(+), 5 deletions(-) create mode 100644 ROMFS/px4fmu_common/init.d/rc.rover_ackermann_apps create mode 100644 ROMFS/px4fmu_common/init.d/rc.rover_ackermann_defaults create mode 100644 ROMFS/px4fmu_common/init.d/rc.rover_differential_apps create mode 100644 ROMFS/px4fmu_common/init.d/rc.rover_differential_defaults diff --git a/ROMFS/px4fmu_common/init.d-posix/airframes/1060_gazebo-classic_rover b/ROMFS/px4fmu_common/init.d-posix/airframes/1060_gazebo-classic_rover index d58f5aebae..97e389d47c 100644 --- a/ROMFS/px4fmu_common/init.d-posix/airframes/1060_gazebo-classic_rover +++ b/ROMFS/px4fmu_common/init.d-posix/airframes/1060_gazebo-classic_rover @@ -3,7 +3,7 @@ # @name Rover # -. ${R}etc/init.d/rc.rover_defaults +. ${R}etc/init.d/rc.rover_ackermann_defaults param set-default GND_L1_DIST 5 param set-default GND_L1_PERIOD 10 diff --git a/ROMFS/px4fmu_common/init.d-posix/airframes/1061_gazebo-classic_r1_rover b/ROMFS/px4fmu_common/init.d-posix/airframes/1061_gazebo-classic_r1_rover index ced7bb26cf..b612b20f3d 100644 --- a/ROMFS/px4fmu_common/init.d-posix/airframes/1061_gazebo-classic_r1_rover +++ b/ROMFS/px4fmu_common/init.d-posix/airframes/1061_gazebo-classic_r1_rover @@ -4,7 +4,7 @@ # @type Rover # @class Rover -. ${R}etc/init.d/rc.rover_defaults +. ${R}etc/init.d/rc.rover_differential_defaults param set-default GND_L1_DIST 5 param set-default GND_SP_CTRL_MODE 1 diff --git a/ROMFS/px4fmu_common/init.d/CMakeLists.txt b/ROMFS/px4fmu_common/init.d/CMakeLists.txt index 3f19c22f01..883d3cfee1 100644 --- a/ROMFS/px4fmu_common/init.d/CMakeLists.txt +++ b/ROMFS/px4fmu_common/init.d/CMakeLists.txt @@ -51,6 +51,10 @@ px4_add_romfs_files( rc.thermal_cal rc.rover_apps rc.rover_defaults + rc.rover_differential_apps + rc.rover_differential_defaults + rc.rover_ackermann_apps + rc.rover_ackermann_defaults rc.uuv_apps rc.uuv_defaults rc.vehicle_setup diff --git a/ROMFS/px4fmu_common/init.d/airframes/50000_generic_ground_vehicle b/ROMFS/px4fmu_common/init.d/airframes/50000_generic_ground_vehicle index ba4598ce83..8191072a1a 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/50000_generic_ground_vehicle +++ b/ROMFS/px4fmu_common/init.d/airframes/50000_generic_ground_vehicle @@ -13,7 +13,7 @@ # @board bitcraze_crazyflie exclude # -. ${R}etc/init.d/rc.rover_defaults +. ${R}etc/init.d/rc.rover_ackermann_defaults param set-default BAT1_N_CELLS 2 diff --git a/ROMFS/px4fmu_common/init.d/airframes/50003_aion_robotics_r1_rover b/ROMFS/px4fmu_common/init.d/airframes/50003_aion_robotics_r1_rover index 4cc66c908a..ac14124956 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/50003_aion_robotics_r1_rover +++ b/ROMFS/px4fmu_common/init.d/airframes/50003_aion_robotics_r1_rover @@ -11,7 +11,7 @@ # @board bitcraze_crazyflie exclude # -. ${R}etc/init.d/rc.rover_defaults +. ${R}etc/init.d/rc.rover_differential_defaults diff --git a/ROMFS/px4fmu_common/init.d/rc.rover_ackermann_apps b/ROMFS/px4fmu_common/init.d/rc.rover_ackermann_apps new file mode 100644 index 0000000000..dc311e4ae7 --- /dev/null +++ b/ROMFS/px4fmu_common/init.d/rc.rover_ackermann_apps @@ -0,0 +1,28 @@ +#!/bin/sh +# +# Standard apps for unmanned ground vehicles (UGV). +# +# NOTE: Script variables are declared/initialized/unset in the rcS script. +# + +# +# Start the attitude and position estimator. +# +ekf2 start & +#attitude_estimator_q start +#local_position_estimator start + +# +# Start Control Allocator +# +control_allocator start + +# +# Start attitude controllers. +# +rover_pos_control start + +# +# Start Land Detector. +# +land_detector start rover diff --git a/ROMFS/px4fmu_common/init.d/rc.rover_ackermann_defaults b/ROMFS/px4fmu_common/init.d/rc.rover_ackermann_defaults new file mode 100644 index 0000000000..75f608082e --- /dev/null +++ b/ROMFS/px4fmu_common/init.d/rc.rover_ackermann_defaults @@ -0,0 +1,22 @@ +#!/bin/sh +# +# UGV default parameters. +# +# NOTE: Script variables are declared/initialized/unset in the rcS script. +# + +set VEHICLE_TYPE rover_ackermann + +# MAV_TYPE_GROUND_ROVER 10 +param set-default MAV_TYPE 10 + +# Enable Airspeed check circuit breaker because Rovers will have no airspeed sensor +param set-default CBRK_AIRSPD_CHK 162128 + +param set-default MIS_TAKEOFF_ALT 0.01 + +param set-default NAV_ACC_RAD 2 +param set-default NAV_LOITER_RAD 2 + +# Temporary. +param set-default NAV_FW_ALT_RAD 1000 diff --git a/ROMFS/px4fmu_common/init.d/rc.rover_apps b/ROMFS/px4fmu_common/init.d/rc.rover_apps index 4d04b53faa..dc311e4ae7 100644 --- a/ROMFS/px4fmu_common/init.d/rc.rover_apps +++ b/ROMFS/px4fmu_common/init.d/rc.rover_apps @@ -22,7 +22,6 @@ control_allocator start # rover_pos_control start - # # Start Land Detector. # diff --git a/ROMFS/px4fmu_common/init.d/rc.rover_differential_apps b/ROMFS/px4fmu_common/init.d/rc.rover_differential_apps new file mode 100644 index 0000000000..271071eeac --- /dev/null +++ b/ROMFS/px4fmu_common/init.d/rc.rover_differential_apps @@ -0,0 +1,24 @@ +#!/bin/sh +# +# Standard apps for unmanned ground vehicles (UGV). +# +# NOTE: Script variables are declared/initialized/unset in the rcS script. +# + +# +# Start the attitude and position estimator. +# +ekf2 start & +#attitude_estimator_q start +#local_position_estimator start + +# +# Start manual rover differential drive controller. +# +# differential_drive_control start + + +# +# Start Land Detector. +# +land_detector start rover diff --git a/ROMFS/px4fmu_common/init.d/rc.rover_differential_defaults b/ROMFS/px4fmu_common/init.d/rc.rover_differential_defaults new file mode 100644 index 0000000000..d818ad9a60 --- /dev/null +++ b/ROMFS/px4fmu_common/init.d/rc.rover_differential_defaults @@ -0,0 +1,11 @@ +#!/bin/sh +# +# UGV default parameters. +# +# NOTE: Script variables are declared/initialized/unset in the rcS script. +# + +set VEHICLE_TYPE rover_differential + +# MAV_TYPE_GROUND_ROVER 10 +param set-default MAV_TYPE 10 diff --git a/ROMFS/px4fmu_common/init.d/rc.vehicle_setup b/ROMFS/px4fmu_common/init.d/rc.vehicle_setup index 4f8497bc19..4d02fb4d72 100644 --- a/ROMFS/px4fmu_common/init.d/rc.vehicle_setup +++ b/ROMFS/px4fmu_common/init.d/rc.vehicle_setup @@ -23,6 +23,24 @@ then . ${R}etc/init.d/rc.mc_apps fi +# +# Differential Rover setup. +# +if [ $VEHICLE_TYPE = rover_differential ] +then + # Start standard UGV apps. + . ${R}etc/init.d/rc.rover_differential_apps +fi + +# +# Ackermann Rover setup. +# +if [ $VEHICLE_TYPE = rover_ackermann ] +then + # Start standard UGV apps. + . ${R}etc/init.d/rc.rover_ackermann_apps +fi + # # UGV setup. #