Instructions for getting started: Difference between revisions
Line 53: | Line 53: | ||
The easiest way to tune parameters and debug mission-lines is through the QtGUI interface: | The easiest way to tune parameters and debug mission-lines is through the QtGUI interface: | ||
svn co svn://repos.gbar.dtu.dk/jcan/regbot/qtgui qtgui | svn co svn://repos.gbar.dtu.dk/jcan/regbot/qtgui qtgui | ||
The installation might require additional software as listed [http://rsewiki.elektro.dtu.dk/index.php/Software_installation here] under python packages. | The installation might require additional software as listed [http://rsewiki.elektro.dtu.dk/index.php/Software_installation here] under python packages. A manual to QtGUI and possible mission-lines is available [http://rsewiki.elektro.dtu.dk/index.php/User_interface here]. | ||
===Regulators=== | ===Regulators=== | ||
The Teensy operates with several regulation loops. These can be tuned for optimal performance. The regulators are adjusted under the "Control" tab in QtGUI. | |||
Following is listed working parameters for robobot primary functionality: | |||
====Velocity==== | ====Velocity==== | ||
The velocity regulator ensures that the robot keeps the intended speed under different loads. A good set of starting parameters would be as following: | |||
Controller: Kp = 15 | Integrator: Tau_i = 0.15, Limit = 4 | Output limit = 9 | |||
====Heading==== | ====Heading==== | ||
The heading controller should ensure that the robobot keeps the correct heading, this regulator can be setup with: | |||
Controller: Kp = 0.9 | Lead/lag forward: Tau_zero = 1, Tau_pole = 1 | Pre filter: Tau_zero = 0, Tau_pole = 0.01 | |||
===Calibrating front wheel=== | |||
The heading should also be adjusted by calibrating the nose wheel controlled by a servo. This is done under the "Servo" tab where servo 0 - the steering servo - should be offset so that the wheel actually points straight. | |||
====Follow edge==== | ====Follow edge==== | ||
= | This controller helps the robobot navigate after lines marked on the floor. A good starting calibration is: | ||
Controller: Kp = 0.075 | |||
For the edge controller to work properly, a calibration under the "Edge" tab might be necessary, especially to detect white crossing and black crossing. | |||
In this case, make sure to calibrate values to the actual tape on the floor. | |||
==Software structure== | ==Software structure== |
Revision as of 12:56, 19 January 2017
Connecting Raspberry Pi to Eduroam
Start by plugging the Raspberry Pi either directly to your PC or to one of the routers on campus. Make sure that you are on the same local network for this.
SSH into the Raspberry Pi by opening a terminal and typing
ssh local@jasmin.local
Replace jasmin with the name of the your robot
When connecting to Eduroam you will eventually have to type in your username and password in the wpa_supplicant.conf-file. In order for your password not to be visible, generate a hash-code for it
echo -n password_here | iconv -t utf16le | openssl md4
Copy the hash-code and clear the terminal window
clear
Now open wpa_supplicant.conf
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Replace whatever in this file so that the content corresponds to the following
country=DK ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev ctrl_interface_group=0 update_config=1 network={ ssid="eduroam" scan_ssid=1 key_mgmt=WPA-EAP eap=PEAP phase2="auth=MSCHAPV2" identity="username" password=hash:your_hash_code }
Replace username with your username for Eduroam, i.e. your student number and replace your_hash_code with the hash-code you generated in the previous step.
Reboot the Raspberry Pi
sudo reboot
When the Pi has rebooted, connect to it using SSH once again. Check that the Pi is connected to WiFi
ifconfig
Under wlan0 confirm that the Pi has received an IP (inet addr) and note down the first three sections of the IP - they are most likely 10.16.175.xxx
The MAC address (HWaddr) of the Pi should also be noted down - this probably starts with B8:27:EB:xx:xx:xx make sure to get all of it.
Remove the LAN-cabel and connect to the Pi using the IP
ssh local@IP
Replace IP with the actual ID of the robot.
If you want to forward the graphics from the Pi use -X when connecting
ssh -X local@IP
In case the Pi gets a new IP address after reboot, you can search for it using the MAC address and nmap. If nmap is not installed, start by installing it
sudo apt-get install nmap
To search for the Pi using the MAC address in terminal type
sudo nmap -sP 10.16.175.0/24 | awk '/^Nmap/{ip=$NF}/B8:27:EB:23:A0:F5/{print ip}'
where 10.16.175 is the first three sections of the IP you noted down and B8:27:EB:23:A0:F5 is the MAC address of the Pi. This should return the IP of the Pi.
Hardware Setup
All low level hardware is controlled by the Teensy microprocessor. For the most part, you don't need to make changes here, but some tuning and setup will be necessary. The easiest way to tune parameters and debug mission-lines is through the QtGUI interface:
svn co svn://repos.gbar.dtu.dk/jcan/regbot/qtgui qtgui
The installation might require additional software as listed here under python packages. A manual to QtGUI and possible mission-lines is available here.
Regulators
The Teensy operates with several regulation loops. These can be tuned for optimal performance. The regulators are adjusted under the "Control" tab in QtGUI. Following is listed working parameters for robobot primary functionality:
Velocity
The velocity regulator ensures that the robot keeps the intended speed under different loads. A good set of starting parameters would be as following:
Controller: Kp = 15 | Integrator: Tau_i = 0.15, Limit = 4 | Output limit = 9
Heading
The heading controller should ensure that the robobot keeps the correct heading, this regulator can be setup with:
Controller: Kp = 0.9 | Lead/lag forward: Tau_zero = 1, Tau_pole = 1 | Pre filter: Tau_zero = 0, Tau_pole = 0.01
Calibrating front wheel
The heading should also be adjusted by calibrating the nose wheel controlled by a servo. This is done under the "Servo" tab where servo 0 - the steering servo - should be offset so that the wheel actually points straight.
Follow edge
This controller helps the robobot navigate after lines marked on the floor. A good starting calibration is:
Controller: Kp = 0.075
For the edge controller to work properly, a calibration under the "Edge" tab might be necessary, especially to detect white crossing and black crossing. In this case, make sure to calibrate values to the actual tape on the floor.