Raspberry Pi directory structure for Robobot: Difference between revisions

From Rsewiki
No edit summary
 
(10 intermediate revisions by the same user not shown)
Line 3: Line 3:
== Contact with robot ==
== Contact with robot ==


When you start the robot, and the robot has contact with the wifi net (DTU Secure), then its IP address is shown on the small display (above the name and battery voltage).
When you start the robot, and it contacts the Wi-Fi network (DTUdevice), its IP address is shown on the small display (above the name and battery voltage).


This IP (e.g. 10.197.218.202) gives access to an SSH (secure shell).
This IP (10.197.21x.xxx) gives access to an SSH (secure shell).


On your PC, start Putty (install if you don't have it)
On your PC, start Putty (install if you don't have it). A (cheaper?) alternative could be RealFTP.


[[File:putty-10.197.218.202.png | 400px]]
[[File:putty-10.197.218.202.png | 500px]]
 
Putty (Linux version), but Putty is also available for Windows and Mac.
 
Insert the IP, select the connection type (SSH), then port should default to 22.
 
Press 'open' to connect.
 
[[File:putty_connect_jack.png | 500px]]
 
Connection to robot Jack (with another IP)
 
The connection will ask for username and password.
* username is 'local'
* password is (ask)
 
Then, you should see the files in the home directory (as shown above).
 
=== Alternative connection ===
 
On all platforms, a terminal window (command prompt in Windows) and an SSH connection can be started as
 
$ '''ssh local@192.168.2.151'''
local@192.168.2.151's password:
Linux jack 6.1.21-v7+ #1642 SMP Mon Apr  3 17:20:52 BST 2023 armv7l
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
 
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Thu Jan 25 11:08:11 2024 from 192.168.2.179
Welcome to ROBOBOT, see http://rsewiki.electro.dtu.dk -> robobot for more info
local@jack:~ $ '''ls'''
'''Documents  Downloads  Music  Video  git  mission_start.bash  on_reboot.bash  rebootinfo.txt  svn'''
local@jack:~ $


== Directory structure ==
== Directory structure ==
Line 16: Line 53:


  /home/local/
  /home/local/
+-git        - Directory for libraries 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).
  +-svn        - Directory for software from the subversion repository (Robobot-specific software).
  |  +- regbot  - Directory for the Teensy software (firmware); this part is called Regbot.
  |  +-regbot  - Directory for the Teesny software (firmware); this part is called Regbot.
  |  |  +- regbot_gui Debug app for Regbot.
  |  |  +- regbot_gui Debug app for Regbot.
  |  |  +- regbot     The firmware source code.
  |  |  +- regbot     The firmware source code.
  |  +- robobot        Directory for the Robobot-specific code.
  |  +-robobot        Directory for the Robobot-specific code.
  |  |  +- setup       Directory with some default configuration files.
  |  |  +- setup     Directory with some default configuration files.
  |  |  +- teensy_interface  From Teensy to MQTT
  |  |  +- raubase    The basic Raspberry Pi software for Robobot.
  |  |  |  +- src      Source code  
  |  |  |  +-src      Source code  
  |  |  |  +- build    Build directory with Makefile
  |  |  |  +-build    Build directory with Makefile
  |  |  |  |  +- log*  Directory for data-monitoring logfiles
  |  |  |  |  +-log*  Directory for data-monitoring logfiles
|  |  |  |  Makefile    Compile directives
  |  |  |  |  robot.ini    Configuration and calibration file
  |  |  |  |  robot.ini    Configuration and calibration file
  |  |  |  |  raubase      Compiled base mission control software
  | |  +- ip_disp    Small app to update the IP address of the Raspberry.
  |  |  | CMakeList.txt   Directives to generate a Makefile using cmake
  |  |  |  +- build    Build directory with Makefile
  |  |  +- ip_disp  Small app to update the IP address of the Raspberry.
  |  |  |     +- log_*.txt Logfiles for IP and temperature monitoring
  |  |     log_ip_dist.txt Logfile for IP and temperature monitoring
  |  |  +- mqtt_python        The main mission app
  |  +-log    - Directory with logfiles from ip_disp (IP, users and CPU temperature)
|  |  |  +- mqtt-client.py  Main app file
  on_reboot.bash - Script to start applications that should start after a reboot (ip_disp)
  |  | +- stream_server      The camera server
|  |  +- teensy_firmware_8  Arduino code for the Teensy
  |  +- 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 and teensy_interface)
mission_start.bash - Script to start mission app, when start button is pressed (and not running already)
 
See the current directory with
pwd
''/home/local''
Change directory with
cd svn
List files with
ls
''log robobot''
 
== File share ==
 
The easy way to work with files on the robot is to mirror the disk to your local PC
 
=== On Windows ===
 
On Windows use 'winscp' (install if not there)
 
When you start winscp, you will get something like:
 
[[File:winscp_jack_connect.png | 500px]]
 
Fill the dialogue with your IP address, username and password (and save for next time), then log in.
 
With a bit of luck, you should get something like
 
[[File:winscp_jack.png | 500px]]
 
=== on Linux (and Mac) ===
 
On Linux-based platforms, you could use SSHFS, a way to mount a remote directory on your own platform.
 
In a terminal, create an empty directory and mount the remote directory:
 
chr@mars:~$ '''mkdir jjj'''
chr@mars:~$ '''sshfs local@192.168.2.151: jjj'''
local@192.168.2.151's password:
chr@mars:~$ '''cd jjj'''
chr@mars:~/jjj$ '''ls'''
'''Documents  Downloads  git  mission_start.bash  Music  on_reboot.bash  rebootinfo.txt  svn  Video'''
 
In the 'sshfs', remember the ':' after the IP address.

Latest revision as of 15:00, 16 January 2025

Back to Robobot B

Contact with robot

When you start the robot, and it contacts the Wi-Fi network (DTUdevice), its IP address is shown on the small display (above the name and battery voltage).

This IP (10.197.21x.xxx) gives access to an SSH (secure shell).

On your PC, start Putty (install if you don't have it). A (cheaper?) alternative could be RealFTP.

Putty (Linux version), but Putty is also available for Windows and Mac.

Insert the IP, select the connection type (SSH), then port should default to 22.

Press 'open' to connect.

Connection to robot Jack (with another IP)

The connection will ask for username and password.

  • username is 'local'
  • password is (ask)

Then, you should see the files in the home directory (as shown above).

Alternative connection

On all platforms, a terminal window (command prompt in Windows) and an SSH connection can be started as

$ ssh local@192.168.2.151
local@192.168.2.151's password: 
Linux jack 6.1.21-v7+ #1642 SMP Mon Apr  3 17:20:52 BST 2023 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright. 
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Thu Jan 25 11:08:11 2024 from 192.168.2.179

Welcome to ROBOBOT, see http://rsewiki.electro.dtu.dk -> robobot for more info
local@jack:~ $ ls
Documents  Downloads  Music  Video  git  mission_start.bash  on_reboot.bash  rebootinfo.txt  svn
local@jack:~ $

Directory structure

On the Raspberry, the main directories and files are:

/home/local/
|
+- svn        - Directory for software from the subversion repository (Robobot-specific software).
|  +- regbot  - Directory for the Teensy 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.
|  |  +- teensy_interface  From Teensy to MQTT
|  |  |  +- src      Source code 
|  |  |  +- build    Build directory with Makefile
|  |  |  |  +- log*  Directory for data-monitoring logfiles
|  |  |  |  robot.ini    Configuration and calibration file
|  |  +- ip_disp     Small app to update the IP address of the Raspberry.
|  |  |  +- build    Build directory with Makefile
|  |  |     +- log_*.txt Logfiles for IP and temperature monitoring
|  |  +- mqtt_python        The main mission app
|  |  |  +- mqtt-client.py  Main app file
|  |  +- stream_server      The camera server
|  |  +- teensy_firmware_8  Arduino code for the Teensy
|  +- 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 and teensy_interface)
mission_start.bash - Script to start mission app, when start button is pressed (and not running already)

See the current directory with

pwd
/home/local

Change directory with

cd svn

List files with

ls
log robobot

File share

The easy way to work with files on the robot is to mirror the disk to your local PC

On Windows

On Windows use 'winscp' (install if not there)

When you start winscp, you will get something like:

Fill the dialogue with your IP address, username and password (and save for next time), then log in.

With a bit of luck, you should get something like

on Linux (and Mac)

On Linux-based platforms, you could use SSHFS, a way to mount a remote directory on your own platform.

In a terminal, create an empty directory and mount the remote directory:

chr@mars:~$ mkdir jjj
chr@mars:~$ sshfs local@192.168.2.151: jjj
local@192.168.2.151's password: 
chr@mars:~$ cd jjj
chr@mars:~/jjj$ ls
Documents  Downloads  git  mission_start.bash  Music  on_reboot.bash  rebootinfo.txt  svn  Video

In the 'sshfs', remember the ':' after the IP address.