Raubase configuration file

From Rsewiki
Revision as of 13:58, 31 December 2023 by Jca (talk | contribs)


Robot.ini

The configuration file is called robot.ini and must be found in the default directory. If no robot.ini is found, it will be created with default values.

The default robot.ini looks (pt) like this:

[section]
name = value

Each of the sections is explained a bit here.

[Service]

[service]
logpath = log/
; add '%d' in the logpath (e.g. "log_%d/" to generate a timestamped path. = 

Note: remember to end the path with a '/' slash.

Service creates a directory for log files. In this case, it is called 'log', and all previous log files will be overwritten by the files from the newest run.

If logpath is

[service]
logpath = log_%d/

Then a number log directories will be created, like:

$ ls
CMakeCache.txt       log                      log_20231231_134200.702
CMakeFiles           log_20231231_133902.348  raubase
Makefile             log_20231231_133909.383  robot.ini
cmake_install.cmake  log_20231231_133913.291

With default options, about 150 kb will be created every second.

[id]

[id]
type = robobot
idx = 149
; robot 'name' and 'idx' are read-only, use command line option to change = 
name = Psyche

These are read-only. The robot (and Raspberry) names are determined by the Regbot.

[teensy]

[teensy]
device = /dev/ttyACM0
log = true
print = false
confirm_timeout = 0.04  

On Linux, all devices are seen as files, and /dev/ttyACM0 is the default name for the Regbot interface.

confirm_timeout is the timeout in ms for retransmission of messages to the Regbot. Configuration messages to the Regbot are queued and sent one at a time until positively acknowledged by the Regbot.

[state]

[state]
log = true
print = false 

This is for the heartbeat messages from Regbot. This includes e.g. the battery voltage.

[encoder]

[encoder]
rate_ms = 8
log = true
print = false
encoder_reversed = true

The motor encoder has the movement of the motors. The rate_ms is the interval at which the encoder count is sent by the Regbot. This interval also determines the update rate of the robot pose.

For all Robobots, the encoder signals are reversed. That is, the two encoders A and B, are swapped.

[pose]

[pose]
gear = 19.0
wheeldiameter = 0.146
enctickperrev = 64
wheelbase = 0.243
log = true
print = false

[gpio]

[gpio]
pins_out = 12=0 16=0
stop_on_stop = true
blink_period_ms = 600
log = true
print = false 

[imu]

[imu]
rate_ms = 12
gyro_offset = 0 0 0
log = true
print_gyro = false
print_acc = false 

[edge]

[edge]
rate_ms = 8
highpower = true
lograw = true
printraw = false
calibwhite = 1000 1000 1000 1000 1000 1000 1000 1000
calibblack = 0 0 0 0 0 0 0 0
whitethreshold = 700
crossingwidth = 0.08
crossingwidthd = 1
sensorwidth = 0.12
sensorwidthd = 0.7
log = true
lognorm = true
print = false
kp = 40.0
lead = 0.3 0.5
taui = 0.0
logcedge = true
logctrl = false
printctrl = false
maxturnrate = 7.0

[mixer]

[mixer]
log = true
print = false

[motor]

[motor]
kp = 7.0
lead = 0 1.0
taui = 0.05
maxmotv = 10.0
log = true
print_m1 = false
print_m2 = false
 

[heading]

[heading]
kp = 10.0
lead = 0.0 1.0
taui = 0.0
maxturnrate = 3.0
log = true
print = false
enabled = false

[pyvision]

[pyvision]
host = localhost
port = 25001
log = true
print = false
enabled = false

[servo]

[servo]
rate_ms = 50
log = true
print = true
printctrl = false

[dist]

[dist]
rate_ms = 45
ir13cm = 70000 70000
ir50cm = 20000 20000
uscalib = 0.00126953125
log = true
print = false
sensor1 = sharp
sensor2 = sharp

[joy_logitech]

[joy_logitech]
log = true
print = false
device = /dev/input/js0
limit = 1.5 1.5 0.1
button_fast = 5
axis_vel = 4
axis_turn = 3
slow_factor = 0.3
axis_servo = 1
servo = 1
device_type = Logitech Gamepad F710 

[plan20]

[plan20]
run = false
log = true
print = true

[plan21]

[plan21]
run = false
log = true
print = true

[plan40]

[plan40]
run = false
log = true
print = true

[ini]

[ini]
; set 'saveconfig' to 'false' to avoid autosave = 
saveconfig = true
version = 524 2023-12-31 11:48:38