|
|
(13 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 B is a simplified (2024) version of the old Robobot |
|
| |
|
| =Robobot B description= | | =Robobot= |
| | |
| This section is intended for users.
| |
|
| |
|
| [[File:robobot-in-blocks-2024.png | 600px]] | | [[File:robobot-in-blocks-2024.png | 600px]] |
Line 10: |
Line 8: |
| ==Overview== | | ==Overview== |
|
| |
|
| * [[Robobot architecture]] module description | | This section is intended for users. |
| * Hardware | | |
| * Electronics
| | * [[Robobot architecture | Software overview]] and blocks description. |
| * Software on Raspberry
| | * [[Robobot software description | Software description]] and examples. |
| * [[Raspberry Pi directory structure for Robobot]] | | * [[Raspberry Pi directory structure for Robobot]] |
| | * [[Robobot and MATLAB]] use of logfiles. |
| | * [[Robobot hardware]] items. |
| | * [[Robobot circuits]] |
|
| |
|
| ==Development notes== | | ==Development notes== |
Line 20: |
Line 21: |
| This section is for development notes. | | This section is for development notes. |
|
| |
|
| ==Software installation Raspberry Pi==
| | * [[Robobot install on Raspberry]] |
| | | * DTU network and time setup: [[Network setup]] |
| | | * [[Enable autostart]] and IP display |
| ===Install on Raspberry===
| | * [[Robobot base software installation]] |
| | | * Setup of [[Robobot webcam server]] |
| Barebone installation (Raspbian GNU/Linux 11 (bullseye) as of July 2023)
| | * Old [[robobot]], instructions are mostly depricated |
| | |
| [[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
| |
| | |
| If asked, select the preferred editor (suggesting nano).
| |
| | |
| Add this line at the end:
| |
| @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
| |
| | |
| 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. | |