Module2 - own

Please share your material / knowledge on the module2 topics with everyone. This page can be edited by both teachers and students. 

Setup and configuration

If you happen to use an Ubuntu flavored GNU/Linux distribution, e.g. the one installed on the WASP diskdrive, the following steps are sufficient to get going with the cfclient and build/flash a firmware.

# Set up permissions
sudo groupadd plugdev
sudo usermod -a -G plugdev $USER
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="1915", ATTRS{idProduct}=="7777", MODE="0664", GROUP="plugdev"' \
     | sudo tee /etc/udev/rules.d/99-crazyradio.rules

echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5740", MODE="0664", GROUP="plugdev"' \
     | sudo tee /etc/udev/rules.d/99-crazyflie.rules

sudo udevadm control --reload-rules
sudo service udev restart

# install dependencies
sudo apt-get install python3 python3-pip python3-pyqt5 python3-pyqt5.qtsvg \
                     virtualenv virtualenvwrapper gcc-arm-none-eabi

# install cfclient
# Note: open up a new terminal from here-on. virtualenvwrapper installs
# commands which are not exposed to existing shells...
git clone https://github.com/bitcraze/crazyflie-clients-python.git
cd crazyflie-clients-python
mkvirtualenv cf -p /usr/bin/python3 --system-site-packages
workon cf
pip3 install -e .

# to launch cfclient from a new terminal window
workon cf && cfclient

# fetch and build the firmware source code
git clone https://github.com/bitcraze/crazyflie-firmware.git
cd crazyflie-firmware
git submodule init
git submodule update
make -j4

# flash firmware from new terminal window (crazyflie must be rebooted into the 'bootloader mode' for this to work)
workon cf && make cload

You can also use a Docker based build system like this. 

docker run --rm -it bitcraze/toolbelt
git clone git@github.com:bitcraze/crazyflie-firmware.git
cd crazyflie-firmware
git submodules init
git submodules update
tb build

 Source: https://www.bitcraze.io/2016/02/new-development-tool-the-toolbelt/ Links to an external site.

Inspiring Master's thesis - Oliver Montague Welton Dunkley, "Visual Inertial Control of a Nano-Quadrotor Links to an external site."

Modeling

 

Control

 

Reinforcement learning

 

Motion Planning

 

Automated Planning

VAL, one of the tools used in the task planning module, fails to compile on recent versions of GCC. To fix this, simply remove the compiler flag -Werror from line 23 in VAL/Makefile