68 lines
2.0 KiB
Markdown
68 lines
2.0 KiB
Markdown
# Kicker project
|
|
|
|
## Prerequisites
|
|
|
|
1. (L)ubuntu 14.04
|
|
2. Git installed:
|
|
|
|
```sh
|
|
sudo apt install git -y
|
|
```
|
|
|
|
## How to start working
|
|
|
|
### To run code on the laptop
|
|
|
|
1. Install Python and Python NAOqi SDK: [instructions](
|
|
http://doc.aldebaran.com/2-1/dev/python/install_guide.html)
|
|
|
|
2. Check if NAOQi binding for Python works by launching Python and running there
|
|
`from naoqi import ALProxy`. The installation was successful if it imports
|
|
without errors. You can finish Python with `ctrl-d` then.
|
|
|
|
3. Go to the project directory and run:
|
|
|
|
```sh
|
|
python -m pykick
|
|
```
|
|
|
|
This will launch the striker state machine, which should work if colors are
|
|
calibrated correctly.
|
|
|
|
4. To run the scripts from the project other than the main one, do this from
|
|
the project directory:
|
|
|
|
```sh
|
|
python -m pykick.[file_name_without_.py]
|
|
```
|
|
|
|
### To run code on the robot
|
|
|
|
1. Create a folder named `pykick` on the robot.
|
|
|
|
2. Copy the files from the project's `pykick` folder into `pykick` on the
|
|
robot.
|
|
|
|
3. ssh to the robot, go to the directory containing the `pykick` folder and run
|
|
`python -m pykick` (the same as on the laptop).
|
|
|
|
## What's inside?
|
|
|
|
* `__main__.py` - The script containing the state machine.
|
|
* `copyfiles.sh` - Script for convenient copying of the project files to the
|
|
robot (IP is hard-coded, so use with caution).
|
|
* `nao_defaults.json` - The settings such as color HSV values.
|
|
* `colorpicker.py` - Program for calibrating the colors. Run
|
|
`python -m pykick.colorpicker -h` to see how to use it.
|
|
* `detection_demo.py` - Program to check how good the robot can detect objects
|
|
with the current color settings.
|
|
* `striker.py` - The class with high lever behaviors, e.g. aligning to ball.
|
|
* `movements.py` - Convenience classes for moving robot. Also kick is
|
|
implemented here.
|
|
* `finders.py` - Classes for Ball, Goal and Field detection.
|
|
* `imagereaders.py` - Convenience classes for capturing video input from
|
|
various sources.
|
|
|
|
**More documentation will be available later. For now see our report in
|
|
`documentation`**.
|