# Example file instantiating the Videre robot driver
# All options you might want to use are instantiated here

# In general, the player standard units are
# translational velocity: m/s
# rotational velocity: deg/s

driver
(
	# Standard player options for presenting this instance of the driver
	name "erratic"

	# Standard player option, tells the driver to expose all interfaces, and
	# assigns them IDs
	provides [ "position2d:0"
	           "power:0"
	           "aio:0"
                   "ir:0" 
		   "sonar:0"
                   "ptz:0"
                   "tilt:::ptz:1" ]

	# Serial port to use for connecting to robot
	# USB/serial link would be /dev/ttyUSB0
	port "/dev/erratic"

	# Maximum translational and rotational speeds accepted during operation.
	# This is also capped by robot's internal hard limits, potentially lower than
	# given here. For Erratic, it's about 2 m/s and 720 deg/s
	max_trans_vel 0.5
	max_rot_vel 200

	# The robot uses these acceleration values to achieve desired velocity. There
	# is a hard minimum acceleration as well as a top one, set by the robot.
	trans_acc 0.5
	rot_acc 100

	# If set, these specify the robot to use another acceleration when target
	# velocity is zero.
	# trans_decel 0.5
	# rot_decel 100

	# Parameters for the PD control loop onboard the robot. When in individual
	# wheel control, translation parameters are used for each wheel control.
	# Warning: Changes can have unexpected effects, including truly erratic
	# behavior.
	pid_trans_p 40
	pid_trans_v 100
	
	pid_rot_p 40
	pid_rot_v 100
	
	# These set how to drive the wheel motors. Frequency affects noise, and
	# perhaps power efficiency.
	motor_pwm_frequency 16000
	motor_pwm_max_on 0.7
	
	# Set to 1 to have the driver use individual wheel control. PD settings for
	# translation will be used. This might be useful depending on the kind of
	# control loop in your application, but probably you want to leave it at 0
	# (default).
	direct_wheel_vel_control 0
	
	# Setting this option to 1 saves the settings in the robot, making permanent
	# whatever settings state it is in after settings of this config file are
	# applied. The settings can then be left out of other configuration files.
	# Note that some of the settings here are driver settings and not robot ones,
	# and are therefore not affected by a save.
	# NOTE: If a bad setting messes up the behavior of the robot, it can be reset
	# to factory defaults by holding down its button while powering it up.
	save_settings_in_robot 0
)

