Robobot B

From Rsewiki

This page is is for development nodes and user description of the simplified version of Robobot

Robobot B description

This section is intended for users.

Overview

Robobot architecture

Hardware

Plastic

Electronics

PCB

Software on Raspberry

Software repository

Directory structure

On the Raspberry the main directory and files are:

/home/local/
+-git        - Directory for libratyes available from a GIT repository (mostly Teensy/arduino libraries).
+-svn        - Directory for software from the subversion repository (Robobot specific software).
|  +-regbot  - Directory for the Teesny software (firmware) this part is called Regbot.
|  |  +-regbot_gui Debug app for Regbot.
|  |  +-regbot     The firmware source code.
|  +-robobot - Directory for the Robobot specific code.
|  |  +-setup      Directory with some default configuration files.
|  |  +-raubase    The basic Raspberry Pi software for Robobot.
|  |  |  +-src     Source code 
|  |  |  +-build   Build directory with Makefile
|  |  |  |  +-log  Directory for data-monitoring logfiles
|  |  |  CMakeList.txt   Directives to generate a Makefile using cmake
|  |  |  robot.ini       Configuration and calibration file
|  |  +- ip_disp   Small app to update the IP address of the Raspberry.
|  |     log_ip_dist.txt Logfile for IP and temperature monotoring
|  +-log     - Directory with logfiles from ip_disp (IP, users and CPU temperature)
on_reboot.bash  - Script to start applications that should start after a reboot (ip_disp)

Robot software

Firmware on Teensy

Description

Compile tools

Upload to Teensy

Development notes

This section is for development notes.

Software installation Raspberry Pi

Install on Raspberry

Barebone installation (Raspbian GNU/Linux 11 (bullseye) as of July 2023)

Raspberry base install

Raspberry wifi

  • make a bootable SD card
  • Make a new user called local and set the group permissions
sudo adduser local gpio
  • Install general-purpose development packages

User and network (WiFi)

Connect to DTU Wifi

  • connect to DTU network without with secret password
  • use NTP (network time protocol) with DTU network

Enable autostart

Display of IP

Start app to display IP on Regbot display, log CPU temperature and synchronize hostname

Hostname update

A script updates the Raspberry Pi hostname, with the name in ~/svn/log/robotname. The script rename_host.bash is:

#!/bin/bash
hn=`hostname`
f="/home/local/svn/log/robotname"
if [ -f $f ]; 
then
 nn=`cat $f`
 yy= $(expr length $nn)
 if [ $yy -gt 2 ];
 then
   if [ $hn != $nn ]; 
   then
     sed -i "s/$hn/$nn/g" /etc/hostname
     sed -i "s/$hn/$nn/g" /etc/hosts
   else
     echo Same hostname, all is fine.
   fi
 fi
else
 echo "File >" $f "< not found."
fi

The script needs to be run as root, it is therefore set to run as part of the boot process.

Create the script in /etc/init.d

sudo nano /etc/init.d/host_rename.sh

Enter the following line into the new file

#!/bin/bash
bash /home/local/svn/robobot/setup/rename_host.bash

Make the file executable and add it to run-level 2 (before networking is started)

sudo chmod +x /etc/init.d/host_rename.sh
ln -s /etc/init.d/host_rename.sh /etc/rc2.d/S99host_rename

The script is then executed when the Raspberry boots, and if the hostname does not match that of the Teensy, then the hostname is modified.

Additional packages

Install the following packages:

libreadline-dev
libopencv-dev
libgpiod-dev
gpiod
cmake
subversion
aptitude
telnet
nmap
lsof
sudo apt install libreadline-dev libopencv-dev libgpiod-dev gpiod cmake subversion aptitude telnet nmap lsof

and, if available

sudo apt install libcli11-dev

Install command line interface library (if not found by 'apt install libcli11-dev')

cd
cd git
git clone https://github.com/CLIUtils/CLI11.git

Install the GPIO library to access pins on the Raspberry PI.

sudo apt install libpigpiod-if-dev

Robobot base software

To make the initial copy from the repository

cd
cd svn
svn checkout svn://repos.gbar.dtu.dk/jcan/robobot

To update with a new version

cd
cd svn/robobot
svn update

Teensy

Software tool chain installation

Old Robobot pages

robobot an extension to Regbot with a raspberry pi for more extended missions, but uses mission code in Teensy, like Regbot.