Robobot base software installation

From Rsewiki
Revision as of 09:29, 9 January 2025 by Jca (talk | contribs) (→‎Configure)

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/

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 = 242.503580
batterycalibrate = 1.0
[encoder0]
rate_pos_ms = 0
rate_vel_ms = 15
print = false
encoder_reversed = true
rate_pose_ms = 5
log_enc = true
log_pose = true
[imu1teensy0]
gyro_offset = 0 0 0
log = true
print_gyro = false
print_acc = false
rate_gyro_ms = 0
rate_acc_ms = 0
[imu2teensy0]
use = false
gyro_offset = 0 0 0
log = true
print_gyro = false
print_acc = false
rate_gyro_ms = 0
rate_acc_ms = 0
[servotn0]
rate_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
rate_motv_ms = 25
rate_motpwm_ms = 0
[velocity0]
enctickperrev = 68
motorscale = 1 1
useteensyvel = true
log = true
print = false
[current_teensy_0]
log = true
print = false
rate_ms = 10
[distforce0]
rate_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 = 853 2025-01-05 16:22:46
[edge0]
log = true
print = false
rate_liv_ms = 0
rate_livn_ms = 7