Robobot base software installation: Difference between revisions

From Rsewiki
Line 50: Line 50:
  cd ~/svn/robobot/teensy_interface
  cd ~/svn/robobot/teensy_interface
  cp robot.ini build/
  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:
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.
* ''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.
* ''log_pose = true'' a logfile with timestamped will be created if such ''log_xxx' flags are true.
* ''use = true'' if ''false'', then this function is disabled.


This file looks like this (svn version 864 of 9 Jan 2025):
This file looks like this (SVN version 864 of 9 Jan 2025):


  [service]
  [service]

Revision as of 10:05, 9 January 2025

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/

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.
  • use = true if false, then this function is disabled.

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