|
|
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== |