Robobot: Difference between revisions

From Rsewiki
No edit summary
Line 3: Line 3:
[[File:robobot.JPG|400px]]
[[File:robobot.JPG|400px]]


==Installation instruction on the raspberry==
[[Getting started guide]]


Install raspberry pi version of Linux on a micro-SD, instructions can be found here:
[[Full installation instructions]]


[[Install on raspberry]] first section (prerequisites).


===Raspicam===
A rather short raspberry pi camera API is available from https://www.uco.es/investiga/grupos/ava/node/40.
And can be downloaded from https://sourceforge.net/projects/raspicam/files/?
Unpack and install:
unzip raspicam-0.1.3.zip
cd raspicam-0.1.3
mkdir build
cd build
cmake ..
make
sudo make install
===Userland-master===
To be able to install mobotware
Follow the guide under REGBOT for userland-master install - [[Install on raspberry]]
===DNSMASQ===
To enable the robobot to be connected directly to a PC, then it is easier if the robobot provides an IP for the PC.
Install DNSMASQ
sudo apt install dnsmasq
allow dnsmasq to provide IP to pear-to-pear networks
Edit the /etc/dnsmasq.conf (nano is a small text editor, fine for editing configuration files owned by Linux root)
sudo nano /etc/dnsmasq.conf
find and change/add the following line (for eth0)
dhcp-range=eth0,192.168.0.100,192.168.0.150,12h
To work, the eth0 must have an IP, if noone provides one,
change /etc/dhcpcd.conf (dhcp client deamon) to have a default IP, if no DHCP server is available
Add the following lines at the end of /etc/dhcpcd.conf to have a fall back behaviour for eth0 and eth1.
# define static profile
profile static_eth0
static ip_address=192.168.0.2/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
# fallback to static profile on eth0
interface eth0
fallback static_eth0
# define static profile
profile static_eth1
static ip_address=192.168.1.2/24
static routers=192.168.1.1
#static domain_name_servers=192.168.0.1
# fallback to static profile on eth1
interface eth1
fallback static_eth1
This will also give a default IP for an eventual second network (usb-to-cable) if needed
Now, after a reboot, you should be able to connect a PC directly with at network cable to a PC, and the PC should get an IP from the raspberry, so now
ssh local@192.168.0.2
should work
===ROBOBOT demo C++===
This is an examplesoftware in C++ to access both raspberry camera and REGBOT, and with an example mission controlled from the raspberry.
Get the robobot software from the svn repository:
svn checkout svn://repos.gbar.dtu.dk/jcan/regbot/robobot robobot
To be able to compile the demo software CMAKE needs also to use the user installed library (raspicam installed above),
so add the following line to ~/.bashrc:
export CMAKE_PREFIX_PATH=/usr/local/lib
Then build Makefiles and compile:
cd robobot
cd build
cmake ..
make
Then testrun the application:
./robobot
It should print that the camera is open, save an image and print some data from the robot (e.g. position).
===USB as SOCKET for REGBOT client===
To use the REGBOT client through (not on) the raspberry pi, the serial connection /dev/ttyACM0 on the raspberry can be converted to a network port by SOCAT. So install:
sudo apt install socat
Add the following line to /etc/rc.local
socat TCP-LISTEN:24001,fork,reuseaddr FILE:/dev/ttyACM0,raw,echo=0
This creates a TCP socket server, listening to port 24001 and piping /dev/ttyACM0 to the socket (with no local echo). This only takes the data from the /dev/ttyACM0 when a client is connected to the socket.
Works after a reboot, or the same line on the command prompt.
This is good for configuring the REGBOT (in REGBOT client connect wifi to IP of robot, e.g. 192.168.0.2).
===Share files from windows===
To share files on all windows computers (without need for administrator) configure a samba share
(or follow Simon on http://simonthepiman.com/how_to_setup_windows_file_server.php)
First install samba
sudo apt install samba samba-common-bin
then edit /etc/samba/smb.conf
sudo nano /etc/samba/smb.conf
comment out all lines under the headlines:
[homes]
[printers]
[print$]
[cdrom]
Add the following section at the end:
[robobot]
comment = Raspberry Pi user LOCAL home directory
path = /home/local
writeable = Yes
only guest = Yes
create mask = 0777
directory mask = 0777
browseable = Yes
public = yes
Add "local" and "pi" as a samba user (and set password, for user pi it should be "raspberry"):
sudo smbpasswd -a local
sudo smbpasswd -a pi
Reboot to implement
sudo reboot
====Windows map drive====
On the windows computer, connect a network cable directly between the robobot and the computer, e.g. using a USB to Ethernet converter. Robobot should now be available with network address 192.168.0.2 (you could try a ping if in doubt).
In the file browser:
* select "map network drive" (menu tools, or right-click on "my computer").
* select drive R: (for robobot) - or another if R is used already.
* in the folder field write: \\192.168.0.2\robobot, and select "Connect using different credentials", then OK.
* Type in username (local or pi) and the appropriate password (and OK).
Now the code and other files can be accessed and manipulated from windows, e.g. using an IDE.
* But the code still needs to be compiled on the raspberry (install and use putty for a ssh terminal access)
===Share files on Linux===
On the Linux PC use sshfs for sharing rather than samba.
Make an empty directory for the mapped disk, and then mount
mkdir robobotdisk
sshfs local@192.168.0.2: robobotdisk
Unmount with
fusermount -u robobotdisk
Or use "sudo unmount robobotdisk"


==Getting started==
==Getting started==

Revision as of 21:45, 22 January 2017

This page is for ROBOBOT, an extension of REGBOT with a raspberry pi and three wheels.

Getting started guide

Full installation instructions


Getting started

This section contains a quick-start guide for the user.

It includes how to get the robot connected to Eduroam WiFi for easy access, an explanation of software and software structure and present a few examples to get the robots driving.

Press the link below to go to the instructions page.

Instructions for getting started