#!/bin/sh
#
# @name Aion Robotics R1 UGV
#
# @url http://docs.aionrobotics.com/en/latest/r1-ugv.html
#
# @type Rover
# @class Rover
#
# @output MAIN0 Speed of left wheels
# @output MAIN1 Speed of right wheels
#
# @maintainer Timothy Scott
#
# @board px4_fmu-v2 exclude
#

sh /etc/init.d/rc.ugv_defaults

if [ $AUTOCNF = yes ]
then
	param set BAT_N_CELLS 4

	param set EKF2_GBIAS_INIT 0.01
	param set EKF2_ANGERR_INIT 0.01
	param set EKF2_MAG_TYPE 1

	param set FW_AIRSPD_MIN 0
	param set FW_AIRSPD_TRIM 1
	param set FW_AIRSPD_MAX 3

	param set GND_WR_P 1
	param set GND_WR_I 0.9674
	param set GND_WR_IMAX 0.1
	param set GND_WR_D 0.1
	param set GND_SP_CTRL_MODE 1
	param set GND_L1_DIST 10
	param set GND_THR_IDLE 0
	param set GND_THR_CRUISE 0
	param set GND_THR_MAX 0.5
	# TODO: Set to -1.0, to allow reversing. This will require many changes in the codebase
	# to support negative throttle.
	param set GND_THR_MIN 0.0
	param set GND_SPEED_P 0.25
	param set GND_SPEED_I 0.001
	param set GND_SPEED_D 3
	param set GND_SPEED_IMAX 0.125
	param set GND_SPEED_THR_SC 1

	param set MIS_LTRMIN_ALT 0.01
	param set MIS_TAKEOFF_ALT 0.01

	param set NAV_ACC_RAD 0.5

	# Provide ESC a constant 1500 us pulse, which corresponds to
	# idle on the Roboclaw motor controller on the Aion R1
	param set PWM_DISARMED 1500
	param set PWM_MAIN_DIS0 1500
	param set PWM_MAIN_DIS1 1500
	param set PWM_MAX 2000
	param set PWM_MIN 1000

	# Enable Airspeed check circuit breaker because Rovers will have no airspeed sensor
	param set CBRK_AIRSPD_CHK 162128
fi

# Configure this as ugv
set MAV_TYPE 10

# Set mixer
set MIXER generic_differential_rover

set PWM_MAIN_REV2 1
