mirror of
https://gitee.com/xiaohuolufeihua/bizhang_-obav.git
synced 2026-05-22 09:28:58 +00:00
172 lines
4.1 KiB
Bash
172 lines
4.1 KiB
Bash
#!/usr/bin/bash
|
|
|
|
# PX4 commands need the 'px4-' prefix in bash.
|
|
# (px4-alias.sh is expected to be in the PATH)
|
|
source px4-alias.sh
|
|
|
|
# Main SITL startup script
|
|
|
|
|
|
# check for ekf2 replay
|
|
if [ "$replay_mode" == "ekf2" ]
|
|
then
|
|
sh etc/init.d-posix/rc.replay
|
|
exit 0
|
|
fi
|
|
|
|
RUN_MINIMAL_SHELL=no
|
|
|
|
# Use the variable set by sitl_run.sh to choose the model settings.
|
|
if [ "$PX4_SIM_MODEL" == "shell" ]; then
|
|
set RUN_MINIMAL_SHELL yes
|
|
elif [ "$PX4_SIM_MODEL" == "iris" ]; then
|
|
set REQUESTED_AUTOSTART 10016
|
|
elif [ "$PX4_SIM_MODEL" == "typhoon_h480" ]; then
|
|
set REQUESTED_AUTOSTART 6011
|
|
else
|
|
echo "Unknown model"
|
|
exit -1
|
|
fi
|
|
|
|
uorb start
|
|
if [ -f eeprom/parameters ]
|
|
then
|
|
param load
|
|
fi
|
|
|
|
# exit early when the minimal shell is requested
|
|
[ $RUN_MINIMAL_SHELL == yes ] && exit 0
|
|
|
|
|
|
# Use environment variable PX4_ESTIMATOR to choose estimator.
|
|
if [ "$PX4_ESTIMATOR" == "ekf2" ]; then
|
|
param set SYS_MC_EST_GROUP 2
|
|
elif [ "$PX4_ESTIMATOR" == "lpe" ]; then
|
|
param set SYS_MC_EST_GROUP 1
|
|
elif [ "$PX4_ESTIMATOR" == "inav" ]; then
|
|
param set SYS_MC_EST_GROUP 0
|
|
fi
|
|
|
|
if param compare SYS_AUTOSTART $REQUESTED_AUTOSTART
|
|
then
|
|
set AUTOCNF no
|
|
else
|
|
set AUTOCNF yes
|
|
fi
|
|
|
|
|
|
if [ $AUTOCNF == yes ]
|
|
then
|
|
param set SYS_AUTOSTART $REQUESTED_AUTOSTART
|
|
|
|
param set BAT_N_CELLS 3
|
|
param set CAL_ACC0_ID 1376264
|
|
param set CAL_ACC0_XOFF 0.01
|
|
param set CAL_ACC0_XSCALE 1.01
|
|
param set CAL_ACC0_YOFF -0.01
|
|
param set CAL_ACC0_YSCALE 1.01
|
|
param set CAL_ACC0_ZOFF 0.01
|
|
param set CAL_ACC0_ZSCALE 1.01
|
|
param set CAL_ACC1_ID 1310728
|
|
param set CAL_ACC1_XOFF 0.01
|
|
param set CAL_GYRO0_ID 2293768
|
|
param set CAL_GYRO0_XOFF 0.01
|
|
param set CAL_MAG0_ID 196616
|
|
param set CAL_MAG0_XOFF 0.01
|
|
param set COM_DISARM_LAND 3
|
|
param set COM_OBL_ACT 2
|
|
param set COM_OBL_RC_ACT 0
|
|
param set COM_OF_LOSS_T 5
|
|
param set COM_RC_IN_MODE 1
|
|
param set EKF2_AID_MASK 1
|
|
param set EKF2_ANGERR_INIT 0.01
|
|
param set EKF2_GBIAS_INIT 0.01
|
|
param set EKF2_HGT_MODE 0
|
|
param set EKF2_MAG_TYPE 1
|
|
param set MC_PITCH_P 6
|
|
param set MC_PITCHRATE_P 0.2
|
|
param set MC_ROLL_P 6
|
|
param set MC_ROLLRATE_P 0.2
|
|
param set MIS_TAKEOFF_ALT 2.5
|
|
param set MPC_HOLD_MAX_Z 2.0
|
|
param set MPC_Z_VEL_I 0.15
|
|
param set MPC_Z_VEL_P 0.6
|
|
param set NAV_ACC_RAD 2.0
|
|
param set NAV_DLL_ACT 2
|
|
param set RTL_DESCEND_ALT 5.0
|
|
param set RTL_LAND_DELAY 5
|
|
param set RTL_RETURN_ALT 30.0
|
|
param set SDLOG_DIRS_MAX 7
|
|
param set SENS_BOARD_ROT 0
|
|
param set SENS_BOARD_X_OFF 0.000001
|
|
param set SYS_RESTART_TYPE 2
|
|
fi
|
|
|
|
# Autostart ID
|
|
autostart_file_match="etc/init.d-posix/$(param show -q SYS_AUTOSTART)_*"
|
|
autostart_files=( $autostart_file_match )
|
|
autostart_file="${autostart_files[0]}" # use first match, but there should really only be one
|
|
if [ ! -e "$autostart_file" ]; then
|
|
echo "Error: no autostart file found"
|
|
exit -1
|
|
fi
|
|
|
|
sh "$autostart_file"
|
|
|
|
|
|
|
|
dataman start
|
|
replay tryapplyparams
|
|
simulator start -s
|
|
tone_alarm start
|
|
gyrosim start
|
|
accelsim start
|
|
barosim start
|
|
gpssim start
|
|
sensors start
|
|
commander start
|
|
land_detector start multicopter
|
|
navigator start
|
|
|
|
if param compare SYS_MC_EST_GROUP 0
|
|
then
|
|
attitude_estimator_q start
|
|
position_estimator_inav start
|
|
elif param compare SYS_MC_EST_GROUP 1
|
|
then
|
|
attitude_estimator_q start
|
|
local_position_estimator start
|
|
elif param compare SYS_MC_EST_GROUP 2
|
|
then
|
|
ekf2 start
|
|
else
|
|
echo "No estimator chosen"
|
|
exit -1
|
|
fi
|
|
|
|
mc_pos_control start
|
|
mc_att_control start
|
|
|
|
mavlink start -x -u 14556 -r 4000000
|
|
mavlink start -x -u 14557 -r 4000000 -m onboard -o 14540
|
|
mavlink stream -r 50 -s POSITION_TARGET_LOCAL_NED -u 14556
|
|
mavlink stream -r 50 -s LOCAL_POSITION_NED -u 14556
|
|
mavlink stream -r 50 -s GLOBAL_POSITION_INT -u 14556
|
|
mavlink stream -r 50 -s ATTITUDE -u 14556
|
|
mavlink stream -r 50 -s ATTITUDE_QUATERNION -u 14556
|
|
mavlink stream -r 50 -s ATTITUDE_TARGET -u 14556
|
|
mavlink stream -r 50 -s SERVO_OUTPUT_RAW_0 -u 14556
|
|
mavlink stream -r 20 -s RC_CHANNELS -u 14556
|
|
mavlink stream -r 250 -s HIGHRES_IMU -u 14556
|
|
mavlink stream -r 10 -s OPTICAL_FLOW_RAD -u 14556
|
|
|
|
# Required for the typhoon
|
|
mavlink stream -r 10 -s MOUNT_ORIENTATION -u 14556
|
|
mavlink stream -r 50 -s ATTITUDE_QUATERNION -u 14557
|
|
mavlink stream -r 10 -s MOUNT_ORIENTATION -u 14557
|
|
|
|
logger start -e -t -b 1000
|
|
|
|
mavlink boot_complete
|
|
replay trystart
|