From 21760a5856b02e2f2fab41d6e7189e097feaa013 Mon Sep 17 00:00:00 2001 From: Timothy Scott Date: Thu, 2 May 2019 10:26:42 +0200 Subject: [PATCH] Changed constant name to UNMANNED_GROUND_VEHICLE --- ROMFS/px4fmu_common/init.d-posix/1060_rover | 2 +- ROMFS/px4fmu_common/init.d-posix/rcS | 2 +- ROMFS/px4fmu_common/init.d/CMakeLists.txt | 4 ++-- .../airframes/50000_generic_ground_vehicle | 6 +++--- .../init.d/airframes/50001_axialracing_ax10 | 2 +- .../init.d/airframes/50002_traxxas_stampede_2wd | 4 ++-- .../init.d/{rc.ugv_apps => rc.rover_apps} | 2 +- .../{rc.ugv_defaults => rc.rover_defaults} | 2 +- ROMFS/px4fmu_common/init.d/rc.vehicle_setup | 6 +++--- ROMFS/px4fmu_common/init.d/rcS | 2 +- ROMFS/px4fmu_common/mixers/CMakeLists.txt | 2 +- ...v_generic.main.mix => rover_generic.main.mix} | 0 ROMFS/px4fmu_test/mixers/CMakeLists.txt | 2 +- msg/vehicle_status.msg | 4 +++- src/modules/commander/Commander.cpp | 16 +++++++++------- .../state_machine_helper_test.cpp | 2 +- src/modules/commander/state_machine_helper.cpp | 1 + src/modules/land_detector/land_detector_main.cpp | 4 ++-- src/modules/navigator/mission_block.cpp | 8 +++++--- 19 files changed, 39 insertions(+), 32 deletions(-) rename ROMFS/px4fmu_common/init.d/{rc.ugv_apps => rc.rover_apps} (93%) rename ROMFS/px4fmu_common/init.d/{rc.ugv_defaults => rc.rover_defaults} (96%) rename ROMFS/px4fmu_common/mixers/{ugv_generic.main.mix => rover_generic.main.mix} (100%) diff --git a/ROMFS/px4fmu_common/init.d-posix/1060_rover b/ROMFS/px4fmu_common/init.d-posix/1060_rover index 5461d68144..ba5fdc3d4d 100644 --- a/ROMFS/px4fmu_common/init.d-posix/1060_rover +++ b/ROMFS/px4fmu_common/init.d-posix/1060_rover @@ -3,7 +3,7 @@ # @name Rover # -sh /etc/init.d/rc.ugv_defaults +sh /etc/init.d/rc.rover_defaults if [ $AUTOCNF = yes ] then diff --git a/ROMFS/px4fmu_common/init.d-posix/rcS b/ROMFS/px4fmu_common/init.d-posix/rcS index f7afafc143..4bd7df91ed 100644 --- a/ROMFS/px4fmu_common/init.d-posix/rcS +++ b/ROMFS/px4fmu_common/init.d-posix/rcS @@ -229,7 +229,7 @@ fi # Configure vehicle type specific parameters. # Note: rc.vehicle_setup is the entry point for rc.interface, -# rc.fw_apps, rc.mc_apps, rc.ugv_apps, and rc.vtol_apps. +# rc.fw_apps, rc.mc_apps, rc.rover_apps, and rc.vtol_apps. # sh etc/init.d/rc.vehicle_setup diff --git a/ROMFS/px4fmu_common/init.d/CMakeLists.txt b/ROMFS/px4fmu_common/init.d/CMakeLists.txt index 773c71eb0a..925a560bf7 100644 --- a/ROMFS/px4fmu_common/init.d/CMakeLists.txt +++ b/ROMFS/px4fmu_common/init.d/CMakeLists.txt @@ -43,8 +43,8 @@ px4_add_romfs_files( rcS rc.sensors rc.thermal_cal - rc.ugv_apps - rc.ugv_defaults + rc.rover_apps + rc.rover_defaults rc.vehicle_setup rc.vtol_apps rc.vtol_defaults 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 780740a269..6168778371 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 px4_fmu-v2 exclude # -sh /etc/init.d/rc.ugv_defaults +sh /etc/init.d/rc.rover_defaults if [ $AUTOCNF = yes ] then @@ -54,10 +54,10 @@ then param set PWM_MIN 1000 fi -# Configure this as ugv +# Configure this as rover set MAV_TYPE 10 # Set mixer -set MIXER ugv_generic +set MIXER rover_generic set PWM_MAIN_REV2 1 diff --git a/ROMFS/px4fmu_common/init.d/airframes/50001_axialracing_ax10 b/ROMFS/px4fmu_common/init.d/airframes/50001_axialracing_ax10 index 3b45445d75..e8467251a9 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/50001_axialracing_ax10 +++ b/ROMFS/px4fmu_common/init.d/airframes/50001_axialracing_ax10 @@ -17,7 +17,7 @@ # @board px4_fmu-v2 exclude # -sh /etc/init.d/rc.ugv_defaults +sh /etc/init.d/rc.rover_defaults # # This section can be enabled once tuning parameters for this particular diff --git a/ROMFS/px4fmu_common/init.d/airframes/50002_traxxas_stampede_2wd b/ROMFS/px4fmu_common/init.d/airframes/50002_traxxas_stampede_2wd index d9965500c1..81a0013a29 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/50002_traxxas_stampede_2wd +++ b/ROMFS/px4fmu_common/init.d/airframes/50002_traxxas_stampede_2wd @@ -15,7 +15,7 @@ # @board px4_fmu-v2 exclude # -sh /etc/init.d/rc.ugv_defaults +sh /etc/init.d/rc.rover_defaults if [ $AUTOCNF = yes ] then @@ -56,7 +56,7 @@ then param set PWM_MIN 1000 fi -# Configure this as ugv +# Configure this as rover set MAV_TYPE 10 # Set mixer diff --git a/ROMFS/px4fmu_common/init.d/rc.ugv_apps b/ROMFS/px4fmu_common/init.d/rc.rover_apps similarity index 93% rename from ROMFS/px4fmu_common/init.d/rc.ugv_apps rename to ROMFS/px4fmu_common/init.d/rc.rover_apps index cd54785ca8..ccb7ce8159 100644 --- a/ROMFS/px4fmu_common/init.d/rc.ugv_apps +++ b/ROMFS/px4fmu_common/init.d/rc.rover_apps @@ -23,4 +23,4 @@ gnd_pos_control start # # Start Land Detector. # -land_detector start ugv +land_detector start rover diff --git a/ROMFS/px4fmu_common/init.d/rc.ugv_defaults b/ROMFS/px4fmu_common/init.d/rc.rover_defaults similarity index 96% rename from ROMFS/px4fmu_common/init.d/rc.ugv_defaults rename to ROMFS/px4fmu_common/init.d/rc.rover_defaults index 15757ba12b..9f93fd61aa 100644 --- a/ROMFS/px4fmu_common/init.d/rc.ugv_defaults +++ b/ROMFS/px4fmu_common/init.d/rc.rover_defaults @@ -5,7 +5,7 @@ # NOTE: Script variables are declared/initialized/unset in the rcS script. # -set VEHICLE_TYPE ugv +set VEHICLE_TYPE rover if [ $AUTOCNF = yes ] then diff --git a/ROMFS/px4fmu_common/init.d/rc.vehicle_setup b/ROMFS/px4fmu_common/init.d/rc.vehicle_setup index af875820d8..20a60edf1b 100644 --- a/ROMFS/px4fmu_common/init.d/rc.vehicle_setup +++ b/ROMFS/px4fmu_common/init.d/rc.vehicle_setup @@ -87,12 +87,12 @@ fi # # UGV setup. # -if [ $VEHICLE_TYPE = ugv ] +if [ $VEHICLE_TYPE = rover ] then if [ $MIXER = none ] then # Set default mixer for UGV if not defined. - set MIXER ugv_generic + set MIXER rover_generic fi if [ $MAV_TYPE = none ] @@ -108,7 +108,7 @@ then sh /etc/init.d/rc.interface # Start standard UGV apps. - sh /etc/init.d/rc.ugv_apps + sh /etc/init.d/rc.rover_apps fi # diff --git a/ROMFS/px4fmu_common/init.d/rcS b/ROMFS/px4fmu_common/init.d/rcS index 8d2deb77bd..24aa4ed41f 100644 --- a/ROMFS/px4fmu_common/init.d/rcS +++ b/ROMFS/px4fmu_common/init.d/rcS @@ -421,7 +421,7 @@ else # # Configure vehicle type specific parameters. # Note: rc.vehicle_setup is the entry point for rc.interface, - # rc.fw_apps, rc.mc_apps, rc.ugv_apps, and rc.vtol_apps. + # rc.fw_apps, rc.mc_apps, rc.rover_apps, and rc.vtol_apps. # sh /etc/init.d/rc.vehicle_setup diff --git a/ROMFS/px4fmu_common/mixers/CMakeLists.txt b/ROMFS/px4fmu_common/mixers/CMakeLists.txt index 77634fdd86..0b277340a7 100644 --- a/ROMFS/px4fmu_common/mixers/CMakeLists.txt +++ b/ROMFS/px4fmu_common/mixers/CMakeLists.txt @@ -78,7 +78,7 @@ px4_add_romfs_files( stampede.main.mix tri_y_yaw-.main.mix tri_y_yaw+.main.mix - ugv_generic.main.mix + rover_generic.main.mix Viper.main.mix vtol_AAERT.aux.mix vtol_AAVVT.aux.mix diff --git a/ROMFS/px4fmu_common/mixers/ugv_generic.main.mix b/ROMFS/px4fmu_common/mixers/rover_generic.main.mix similarity index 100% rename from ROMFS/px4fmu_common/mixers/ugv_generic.main.mix rename to ROMFS/px4fmu_common/mixers/rover_generic.main.mix diff --git a/ROMFS/px4fmu_test/mixers/CMakeLists.txt b/ROMFS/px4fmu_test/mixers/CMakeLists.txt index f5d6d2de30..287652a9b8 100644 --- a/ROMFS/px4fmu_test/mixers/CMakeLists.txt +++ b/ROMFS/px4fmu_test/mixers/CMakeLists.txt @@ -44,7 +44,7 @@ px4_add_romfs_files( quad_+.main.mix quad_test.mix quad_+_vtol.main.mix - ugv_generic.main.mix + rover_generic.main.mix vtol1_test.mix vtol2_test.mix vtol_AAERT.aux.mix diff --git a/msg/vehicle_status.msg b/msg/vehicle_status.msg index cc480934f8..5a61f7296e 100644 --- a/msg/vehicle_status.msg +++ b/msg/vehicle_status.msg @@ -52,7 +52,7 @@ uint8 RC_IN_MODE_GENERATED = 2 uint8 VEHICLE_TYPE_UNKNOWN = 0 uint8 VEHICLE_TYPE_ROTARY_WING = 1 uint8 VEHICLE_TYPE_FIXED_WING = 2 -uint8 VEHICLE_TYPE_GROUND = 3 +uint8 VEHICLE_TYPE_ROVER = 3 # state machine / state of vehicle. # Encodes the complete system state and is set by the commander app. @@ -67,6 +67,8 @@ uint8 system_id # system id, contains MAVLink's system ID field uint8 component_id # subsystem / component id, contains MAVLink's component ID field uint8 vehicle_type # Type of vehicle (fixed-wing, rotary wing, ground) + # If the vehicle is a VTOL, then this value will be VEHICLE_TYPE_ROTARY_WING while flying as a multicopter, + # and VEHICLE_TYPE_FIXED_WING when flying as a fixed-wing bool is_vtol # True if the system is VTOL capable bool vtol_fw_permanent_stab # True if VTOL should stabilize attitude for fw in manual mode diff --git a/src/modules/commander/Commander.cpp b/src/modules/commander/Commander.cpp index 162ea93c4c..0d0e712bd2 100644 --- a/src/modules/commander/Commander.cpp +++ b/src/modules/commander/Commander.cpp @@ -1297,7 +1297,7 @@ Commander::run() status.vehicle_type = vehicle_status_s::VEHICLE_TYPE_FIXED_WING; } else if (is_ground_rover(&status)) { - status.vehicle_type = vehicle_status_s::VEHICLE_TYPE_GROUND; + status.vehicle_type = vehicle_status_s::VEHICLE_TYPE_ROVER; } else { status.vehicle_type = vehicle_status_s::VEHICLE_TYPE_UNKNOWN; @@ -1407,9 +1407,9 @@ Commander::run() status.system_type = (uint8_t)system_type; } - bool is_rotary = is_rotary_wing(&status) || (is_vtol(&status) && vtol_status.vtol_in_rw_mode); - bool is_fixed = is_fixed_wing(&status) || (is_vtol(&status) && !vtol_status.vtol_in_rw_mode); - bool is_ground = is_ground_rover(&status); + const bool is_rotary = is_rotary_wing(&status) || (is_vtol(&status) && vtol_status.vtol_in_rw_mode); + const bool is_fixed = is_fixed_wing(&status) || (is_vtol(&status) && !vtol_status.vtol_in_rw_mode); + const bool is_ground = is_ground_rover(&status); /* disable manual override for all systems that rely on electronic stabilization */ if (is_rotary) { @@ -1419,7 +1419,7 @@ Commander::run() status.vehicle_type = vehicle_status_s::VEHICLE_TYPE_FIXED_WING; } else if (is_ground) { - status.vehicle_type = vehicle_status_s::VEHICLE_TYPE_GROUND; + status.vehicle_type = vehicle_status_s::VEHICLE_TYPE_ROVER; } /* set vehicle_status.is_vtol flag */ @@ -1642,9 +1642,11 @@ Commander::run() if (is_vtol(&status)) { // Check if there has been any change while updating the flags - bool is_rotary = status.vehicle_type == vehicle_status_s::VEHICLE_TYPE_ROTARY_WING; + const auto new_vehicle_type = vtol_status.vtol_in_rw_mode ? + vehicle_status_s::VEHICLE_TYPE_ROTARY_WING : + vehicle_status_s::VEHICLE_TYPE_FIXED_WING; - if (is_rotary != vtol_status.vtol_in_rw_mode) { + if (new_vehicle_type != status.vehicle_type) { status.vehicle_type = vtol_status.vtol_in_rw_mode ? vehicle_status_s::VEHICLE_TYPE_ROTARY_WING : vehicle_status_s::VEHICLE_TYPE_FIXED_WING; diff --git a/src/modules/commander/commander_tests/state_machine_helper_test.cpp b/src/modules/commander/commander_tests/state_machine_helper_test.cpp index e8613f7b44..2231c30923 100644 --- a/src/modules/commander/commander_tests/state_machine_helper_test.cpp +++ b/src/modules/commander/commander_tests/state_machine_helper_test.cpp @@ -507,7 +507,7 @@ bool StateMachineHelperTest::mainStateTransitionTest() struct vehicle_status_flags_s current_status_flags = {}; current_commander_state.main_state = test->from_state; - current_vehicle_status.vehicle_type = test->condition_bits & MTT_ROTARY_WING ? + current_vehicle_status.vehicle_type = (test->condition_bits & MTT_ROTARY_WING) ? vehicle_status_s::VEHICLE_TYPE_ROTARY_WING : vehicle_status_s::VEHICLE_TYPE_FIXED_WING; current_status_flags.condition_local_altitude_valid = test->condition_bits & MTT_LOC_ALT_VALID; current_status_flags.condition_local_position_valid = test->condition_bits & MTT_LOC_POS_VALID; diff --git a/src/modules/commander/state_machine_helper.cpp b/src/modules/commander/state_machine_helper.cpp index a0ddd65485..f189fbaacd 100644 --- a/src/modules/commander/state_machine_helper.cpp +++ b/src/modules/commander/state_machine_helper.cpp @@ -691,6 +691,7 @@ bool set_nav_state(vehicle_status_s *status, actuator_armed_s *armed, commander_ status->nav_state = vehicle_status_s::NAVIGATION_STATE_AUTO_LOITER; } else if (status_flags.condition_local_altitude_valid) { + //TODO: Add case for rover if (status->vehicle_type == vehicle_status_s::VEHICLE_TYPE_ROTARY_WING) { status->nav_state = vehicle_status_s::NAVIGATION_STATE_DESCEND; diff --git a/src/modules/land_detector/land_detector_main.cpp b/src/modules/land_detector/land_detector_main.cpp index 71e36bdabd..f955000443 100644 --- a/src/modules/land_detector/land_detector_main.cpp +++ b/src/modules/land_detector/land_detector_main.cpp @@ -76,7 +76,7 @@ int LandDetector::task_spawn(int argc, char *argv[]) } else if (strcmp(argv[1], "vtol") == 0) { obj = new VtolLandDetector(); - } else if (strcmp(argv[1], "ugv") == 0) { + } else if (strcmp(argv[1], "rover") == 0) { obj = new RoverLandDetector(); } else { @@ -165,7 +165,7 @@ The module runs periodically on the HP work queue. PRINT_MODULE_USAGE_NAME("land_detector", "system"); PRINT_MODULE_USAGE_COMMAND_DESCR("start", "Start the background task"); - PRINT_MODULE_USAGE_ARG("fixedwing|multicopter|vtol|ugv", "Select vehicle type", false); + PRINT_MODULE_USAGE_ARG("fixedwing|multicopter|vtol|rover", "Select vehicle type", false); PRINT_MODULE_USAGE_DEFAULT_COMMANDS(); return 0; } diff --git a/src/modules/navigator/mission_block.cpp b/src/modules/navigator/mission_block.cpp index 84019afcc3..fa459319a3 100644 --- a/src/modules/navigator/mission_block.cpp +++ b/src/modules/navigator/mission_block.cpp @@ -335,10 +335,12 @@ MissionBlock::is_mission_item_reached() && PX4_ISFINITE(_mission_item.yaw))) { /* check course if defined only for rotary wing except takeoff */ - float cog = _navigator->get_vstatus()->vehicle_type == vehicle_status_s::VEHICLE_TYPE_ROTARY_WING - ? _navigator->get_global_position()->yaw : atan2f( + float cog = (_navigator->get_vstatus()->vehicle_type == vehicle_status_s::VEHICLE_TYPE_ROTARY_WING) ? + _navigator->get_global_position()->yaw : + atan2f( _navigator->get_global_position()->vel_e, - _navigator->get_global_position()->vel_n); + _navigator->get_global_position()->vel_n + ); float yaw_err = wrap_pi(_mission_item.yaw - cog);