Robobot base software installation
From Rsewiki
Back to Robobot B
Robobot base software
To make the initial copy from the repository (Linux)
cd mkdir -p svn cd svn svn checkout svn://repos.gbar.dtu.dk/jcan/robobot
To update with a new version
cd cd svn/robobot svn update
If you want to see the source code on other platforms, the repository is open for reading.
Compile base software
IP display
Go to svn/robobot/ip_disp, the app that handles the display of IP and listens to the start button.
cd ~/svn/robobot/ip_disp mkdir build cd build cmake .. make -j3
This will be started at reboot
Teensy_interface
Go to ~/svn/robobot/teensy_interface. This app communicates with Teensy and translates to and from MQTT.
cd ~/svn/robobot/teensy_interface mkdir build cd build cmake .. make -j3
Configure
The Teensy interface is configured using an initialization file robot.ini.
Copy the "factory" settings to the build directory:
cd ~/svn/robobot/teensy_interface cp robot.ini build/
The file determines:
- Data interval and data types that are forwarded to MQTT. Like
- Creation of logfiles for individual data types.
- Some configuration.
There are some common items in the file, like:
- interval_pose_ms = 5 sets the interval between pose updates to 5 ms. A value of 0 means no data. An interval of 1 or 2 ms is possible but will load the interfaces and may cause unwanted data loss.
- log_pose = true a logfile with timestamped will be created if such log_xxx' flags are true.
This file looks like this (svn version 864 of 9 Jan 2025):
[service] use_robot_hardware = true logpath = log_%d/ ; the '%d' will be replaced with date and timestamp (must end with a '/'). = max_logging_minutes = 1000 log_service = true [mqtt] broker = tcp://localhost:1883 context = drive clientid = dot function = drive/ system = robobot/ log = true print = false use = true [teensy0] use = true type = robobot idx = 124 ; robot 'name' and 'idx' are read-only, use command line option to change = name = Dot device = /dev/ttyACM0 log = true print = false confirm_timeout = 0.04 encrev = true hardware = 8 [robot0] log = true print = false regbot_version = 696 shutdown_file = /home/local/shutdown.now batteryusedwh = 301.963426 batterycalibrate = 1.0 [encoder0] interval_pos_ms = 0 interval_vel_ms = 15 print = false encoder_reversed = true interval_pose_ms = 5 log_enc = true log_pose = true [imu1teensy0] gyro_offset = 0 0 0 log = true print_gyro = false print_acc = false interval_gyro_ms = 0 interval_acc_ms = 0 [imu2teensy0] use = false gyro_offset = 0 0 0 log = true print_gyro = false print_acc = false interval_gyro_ms = 0 interval_acc_ms = 0 [servotn0] interval_ms = 0 log = true print = true [motor_teensy_0] m1kp = 7.0 m1lead = 0 1.0 m1taui = 0.05 m1feedforward = 0 m1maxmotv = 8.0 m1voffset = 0.0 m2kp = 7.0 m2lead = 0 1.0 m2taui = 0.05 m2feedforward = 0 m2maxmotv = 8.0 m2voffset = 0.0 log_voltage = true m1log_pid = true m2log_pid = true m1print = false m2print = false interval_motv_ms = 25 interval_motpwm_ms = 0 [velocity0] enctickperrev = 68 motorscale = 1 1 useteensyvel = true log = true print = false [current_teensy_0] log = true print = false interval_ms = 10 [distforce0] interval_ird_ms = 0 log_dist = true log_force = false print = false force = false [gpio] pins_out = 12=0 16=0 stop_on_stop = true blink_period_ms = 600 log = true print = false use = false [mixer] use = true log = true print = false driveleft = 0 0 -1 driveright = 0 1 -1 wheelbase = 0.22 motor_gear = 18 drive_gear = 1 wheel_radius = 0.09 [joy_logitech] log = true print = false device = /dev/input/js0 device_type = Logitech Gamepad F710 [joy_use] log = true print = false drive_control = true vel_limit = -1.5 vel_axis = 4 turn_limit = 10.0 turn_axis = 3 button_fast = 5 slow_factor = 0.3 axis_servo = 1 servo = 1 servoScale = 10 [ini] ; set 'saveconfig' to 'false' to avoid autosave = saveconfig = true version = 859 2025-01-07 08:37:26 [edge0] log = true print = false interval_liv_ms = 0 interval_livn_ms = 10