CLEVER (Russian: "Клевер", meaning "Clover") is an educational programmable drone kit consisting of an unassembled quadcopter, open source software and documentation. The kit includes Pixhawk/Pixracer autopilot running PX4 firmware, Raspberry Pi 3 as companion computer, a camera for computer vision navigation as well as additional sensors and peripheral devices.
Copter Express has implemented a large number of different autonomous drone projects using exactly the same platform: automated pizza delivery in Samara and Kazan, coffee delivery in Skolkovo Innovation Center, autonomous quadcopter with charging station for site monitoring and security, winning drones on Robocross-2016 and Robocross-2017 competitions and many others.
The main documentation is available on Gitbook.
Use it to learn how to assemble, configure, pilot and program autonomous CLEVER drone.
Preconfigured image for Raspberry Pi 3 with installed and configured software, ready to fly, is available in the Releases section.
Image includes:
- Raspbian Stretch
- ROS Kinetic
- Configured networking
- OpenCV
- mavros
- Periphery drivers (
pigpiod
,rpi_ws281x
, etc) - CLEVER software bundle for autonomous drone control
API description (in Russian) for autonomous flights is available on GitBook.
Install ROS Kinetic according to the documentation, then create a Catkin workspace.
Clone this repo to directory ~/catkin_ws/src/clever
:
cd ~/catkin_ws/src
git clone https://github.com/CopterExpress/clever.git clever
All the required ROS packages (including mavros
and opencv
) can be installed using rosdep
:
cd ~/catkin_ws/
rosdep install -y --from-paths src --ignore-src
Build ROS packages (on memory constrained platforms you might be going to need to use -j1
key):
cd ~/catkin_ws
catkin_make -j1
To complete mavros
install you'll need to install geographiclib
datasets:
curl https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh | sudo bash
You may optionally install udev rules to provide /dev/px4fmu
symlink to your PX4-based flight controller connected over USB. Copy 99-px4fmu.rules
to your /lib/udev/rules.d
folder:
cd ~/catkin_ws/src/clever/clever/config
sudo cp 99-px4fmu.rules /lib/udev/rules.d
Alternatively you may change the fcu_url
property in mavros.launch
file to point to your flight controller device.
Enable systemd service roscore
(if not running):
sudo systemctl enable /home/<username>/catkin_ws/src/clever/builder/assets/roscore.service
sudo systemctl start roscore
To start connection to SITL, use:
roslaunch clever sitl.launch
To start connection to the flight controller, use:
roslaunch clever clever.launch
Note that the package is configured to connect to
/dev/px4fmu
by default (see previous section). Install udev rules or specify path to your FCU device inmavros.launch
.
Also, you can enable and start the systemd service:
sudo systemctl enable /home/<username>/catkin_ws/src/clever/deploy/clever.service
sudo systemctl start clever
While the Clever platform source code is available under the MIT License, note, that the documentation is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.