Raubase configuration file: Difference between revisions
No edit summary |
|||
Line 220: | Line 220: | ||
* maxturnrate: limits the turn rate before being sent to the motor velocity controller. | * maxturnrate: limits the turn rate before being sent to the motor velocity controller. | ||
Used by the module in ''cheading.cpp'' | Used by the module in ''cheading.cpp''. | ||
==== [pyvision] ==== | ==== [pyvision] ==== |
Revision as of 17:32, 31 December 2023
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.
- type: the robot type, for robobot a number of functions in the Regbot board are disabled.
- idx: is the board number that determines the robot name.
- name: is the associated name (for info only).
These values generated by the module in steensy.cpp.
[teensy]
[teensy] device = /dev/ttyACM0 log = true print = false confirm_timeout = 0.04
- device: 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.
Used by the module in steensy.cpp.
[state]
[state] log = true print = false
This is for the heartbeat messages from Regbot. This includes e.g. the battery voltage.
Used by the module in sstate.cpp.
[encoder]
[encoder] rate_ms = 8 log = true print = false encoder_reversed = true
The motor encoder has the movement of the motors.
- 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.
- encoder_reversed: For all Robobots, the encoder signals are reversed. That is, the two encoders A and B, are swapped.
Used by the module in sencoder.cpp
[pose]
[pose] gear = 19.0 wheeldiameter = 0.146 enctickperrev = 64 wheelbase = 0.243 log = true print = false
To translate encoder ticks to robot movement, a number of parameters are needed.
- gear: Gearing of 19:1 in the case of Robobot.
- wheeldiameter: The wheel diameter (in meters), including the depression of the tire due to the robot's weight.
- wheelbase: The distance between the (main) wheels (in meters).
Used by module in mpose.cpp.
[gpio]
[gpio] pins_out = 12=0 16=0 stop_on_stop = true log = true print = false
The interface to the general purpose pins on the Raspberry Pi.
- pin_out: controls which pins are output. Default output is pin 12 and 16. Both are set to a low value (1 would give a hight value). Pin 12 and 16 is the pins next to the 'start' (pin 13) and 'stop' (pin 6) buttons. The remaining pins are 19, 26, 21, and 20.
- stop_on_stop: determines if the mission should stop, when the 'stop' button is pressed.
Used by the module in sgpio.cpp'.
[imu]
[imu] rate_ms = 12 gyro_offset = 0 0 0 log = true print_gyro = false print_acc = false
- rate_ms: is the data interval for the IMU (Inertial Measurement Unit) data. The data is generated with a 1ms interval, but the USB bandwidth is limited.
- gyro_offset: is the value that will be subtracted from the raw gyro values by the Regbot board. The unit is rad/sec.
Used by the module in simu.cpp.
[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 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
Line sensor parameters.
- rate_ms: data update rate in ms. Data is generated at 1ms intervals.
- high-power: Full or half power to the line sensor LEDs.
- calibwhite: The calibration values for white (use raubase --white to calibrate).
- calibblack: The calibration values for black (use raubase --white to calibrate).
- whitethreshold: threshold for detection of white (in range 0..1000).
- crossingwidth: width of the line to be classified as a crossing line (in meters).
- crossingwidthd: a factor for change since the last update; the value is then added to the width if the value is increasing.
- sensorwidth: width of the sensor (meters).
- kp: proportional gain for the line follow controller.
- lead: Two values for a Lead filter in the control forward loop, the zero time constant and the alpha value.
- taui: The time constant for the integrator zero.
- maxturnrate: is an output limit of the edge controller before being sent to the heading controller.
- The log and print values control use of logfiles and print to console.
Used by the modules in sedge.cpp, medge.cpp and cedge.cpp.
[mixer]
[mixer] log = true print = false
Used by the module in cmixer.cpp.
[motor]
[motor] kp = 7.0 lead = 0 1.0 taui = 0.05 maxmotv = 10.0 log = true print_m1 = false print_m2 = false
- kp: proportional gain for the motor velocity controller.
- lead: Two values for a Lead filter in the control forward loop, the zero time constant and the alpha value.
- taui: The time constant for the integrator zero.
- maxmotv: is the maximum motor voltage the controller allows as output.
Used by the module in cmotor.cpp
[heading]
[heading] kp = 10.0 lead = 0.0 1.0 taui = 0.0 maxturnrate = 3.0 log = true print = false
- kp: proportional gain for the heading controller.
- lead: Two values for a Lead filter in the control forward loop, the zero time constant and the alpha value.
- taui: The time constant for the integrator zero.
- maxturnrate: limits the turn rate before being sent to the motor velocity controller.
Used by the module in cheading.cpp.
[pyvision]
[pyvision] host = localhost port = 25001 log = true print = false enabled = false
A socket server is generated with these parameters - intended to communicate with Python modules:
- host: is the hostname.
- post: is the port number.
- enabled: The server can be disabled if it is not used.
Used by the module in spyvision.cpp-
[servo]
[servo] rate_ms = 50 log = true print = true
The position of the servoes can be obtained from the Regbot board. Note that this is valid only if the servo is controlled, i.e. enabled (by setting the initial position and velocity).
- rate_ms: is the update interval for receiving the servo position.
Used by the module in cservo.cpp.
[dist]
[dist] rate_ms = 45 ir13cm = 70000 70000 ir50cm = 20000 20000 uscalib = 0.00126953125 log = true print = false sensor1 = sharp sensor2 = sharp
Two distance sensors are supported by the Regbot board.
- rate_ms: is the data interval for the distance measurements (generated at about 50ms interval).
- ir13cm: is the calibration value for an object at 13cm from the sensor (sharp sensor only).
- ir50cm: is the calibration value for an object at 50cm from the sensor (sharp sensor only).
- uscalib: is the scale factor to meters (sharp sensor only).
- sensor1, sensor2: is the sensor type (all robots are mounted with a Sharp 2Y0A21 sensor)
Used by the module in sdist.cpp.
[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
These parameters are used by the module in sjoylogitech, an optional gamepad that can be used to control the robot remotely.
[plan20]
[plan20] run = false log = true print = true
- run: determines if this behaviour plan is to be used.
Used by module in bplan20.
[plan21]
[plan21] run = false log = true print = true
- run: determines if this behaviour plan is to be used.
Used by module in bplan21.
[plan40]
[plan40] run = false log = true print = true
- run: determines if this behaviour plan is to be used.
Used by module in bplan40.
[ini]
[ini] ; set 'saveconfig' to 'false' to avoid autosave = saveconfig = true version = 524 2023-12-31 11:48:38
- saveconfig: can be set to false to prohibit updating of the configuration file robot.ini.
- version: is the SVN version number and date of the uservice.cpp' file.
Used by the module in uservice.cpp