Robobot B: Difference between revisions

From Rsewiki
 
(67 intermediate revisions by the same user not shown)
Line 1: Line 1:
This page is is for development nodes and user description of the simplified version of Robobot
Robobot 2025 is a robot platform for innovative applications, especially the annual DTU Robocup competition.


=Robobot B description=
=Robobot 2025=


This section is intended for users.
[[File:robobot-in-blocks-2024.png | 600px]]
[[File:robobot-rev_8_frog.jpg | 400px]]


==Overview==
==Overview==


[[Robobot architecture]]
This section is intended for users.
 
== 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).
|  +-CLI11  - Directory with command line interface library CLI (from github)
+-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]]
 
* 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
 
===Additional packages===
 
Install the following packages:
libreadline-dev
libopencv-dev
libgpiod-dev
gpiod
cmake
subversion
aptitude
telnet
ntp
ntpdate
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
 
===User and network (WiFi)===
 
Connect to DTU Wifi
 
* use NTP (network time protocol) with DTU network (require ntp and ntpdate packages)
* connect to DTU network without showing secret password
 
Instructions here [[Network setup]]
 
===Enable autostart===
 
====Display of IP====
 
Start app to display IP on Regbot display, log CPU temperature and synchronize hostname
 
Make an on-rebbot script in the home directory
 
cp ~/svn/robobot/setup/on_reboot.bash ~/
 
This file is something like:
 
#!/bin/bash
# script to start applications after a reboot
#
# run the app to show IP of raspberry on the Teensy display.
mkdir -p /home/local/svn/log
cd /home/local/svn/log
# save the last reboot date
echo "Rebooted" >> rebootinfo.txt
date >> rebootinfo.txt
../robobot/ip_disp/build/ip_disp &
# save PID for debugging
echo "ip_disp started with PID:" >> rebootinfo.txt
pgrep -l ip_disp >> rebootinfo.txt
exit 0
 
Use crontab to run this script at reboot
 
crontab -e
 
Add the line
@reboot /home/local/on_reboot.bash
 
====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
      hostnamectl set-hostname $nn
      # seems like /etc/hosts is not updated, but /etc/hostname is
      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 lines 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
sudo 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.
 
 
===Robobot base software===


To make the initial copy from the repository
* Getting started
** [[Robobot 1 | Battery power]] and shut down
** [[Robobot 2 | Network access]]
** [[Robobot 2b | Software update]]
** [[Robobot 3 | Camera view]]
** [[Robobot 4 | Python control]]
** [[Robobot 5 | Firmware tools]]
* System description
** [[Robobot architecture | System overview]] and top-level blocks description.
** [[Robobot MQTT-client]]
** [[Robobot webcam server]]
** [[Robobot teensy interface]]
** [[Robobot teensy firmware]]
** [[Robobot MQTT topics]]
** [[Robobot calibration]]
* Further details
** Start button to start mission, see first part of [[Enable autostart]]
** [[Robobot and MATLAB]] use of logfiles.
** [[Raspberry Pi directory structure for Robobot | Network access]], file share and directory structure.
** [[Robobot hardware]] items. Motors, sensors, plastic and screws.
** [[Robobot circuits]], PCB and circuit diagrams


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


To update with a new version
This section has notes on the installation of the robot.


cd
* [[Robobot install on Raspberry]] including all needed packages.
cd svn/robobot
* DTU network and time setup: [[Network setup]]
svn update
* [[Robobot base software installation]] like teensy_interface
* [[Enable autostart]] and IP display as well as on_reboot script.


==Teensy==
Arduino firmware - one of these:
* Installation of [[Arduino and Teensy libraries]] when using the Arduino IDE.
* Installation of [[Visual studio support | Visual Studio Code]] when working on a standard PC.  NB! missing the platformio.ini @todo
* installation of [[Arduino command line support | Command line support]] for use on the Raspberry Pi.


Software tool chain installation
Help and setup
* [[Help page Teensy_8]] from on-line command ''help''.
* [[Robobot processor]] initialize setup of Teensy (factory reset)


==Old Robobot pages==
Older pages


[[robobot]] an extension to Regbot with a raspberry pi for more extended missions, but uses mission code in Teensy, like Regbot.
* Old [[robobot]] instructions are mostly deprecated
* Some architecture notes [[Robobot Teensy interface]].
* [[Robobot software description | Software description]] and examples.

Latest revision as of 16:28, 5 July 2025

Robobot 2025 is a robot platform for innovative applications, especially the annual DTU Robocup competition.

Robobot 2025

Overview

This section is intended for users.

Developers notes

This section has notes on the installation of the robot.

Arduino firmware - one of these:

Help and setup

Older pages