Crazyflie modification to airship using balloon. Mainly Instructions on Installation & Usage.
Design files for both ECAD & MCAD can be found on this repository . Assembly and more can be found in the final project paper paper in this repo
In order to fly the airship, a modified version of the firmware is needed.
The modified firmware, along with enviroment setup can be found on this repository .
For some python utility scripts (and for cfclient) it is required to install cfclient/cflib. Installation Instructions can be found on the repo README.(preferably should go with pip3 installation - use version 2019.9.1 and 0.1.8 respectively)
Start & update git-submodules:
git submodule init
git submodule update
Checkout the Flight-tests branch. and complie using:
make clean
make all PLATFORM=cf2b
To flash the cf using the radio:
make cload
Set the parameters for the firware using the updateParameters.py utility within the testScripts folder (has usefull python utils). Once the crazyballon is on, run the following depending on your configuration:
For a non-camera configuration:
python3 updateParameters.py params_without_camera.json
For a camera configuration:
python3 updateParameters.py params_with_camera.json
For testing a takeoff & hover use the following (also in testScripts)
python3 flightTimeTest.py
flightTimeTest.py may be used as a base for other flight tests as it has all the basic framework for starting off.
Note that the CF address is hardcoded within the python scripts and may require modification
The SLAM integration requires the installation of a camera on the airship along with a reciever connected to the PC. The Software requires a ROS enviroment and a catkin workspace. To set these up, follow instruction here and here.
The following ros packages are required in the same workspace for the demo:
- usb_cam : used for streaming images from the reciever to a ROS topic. Can be found here.
- crazyflie_ros: used for communication with the crazyfile. Can be found here.
- orb_slam_2_ros: implementation of the ORB SLAM 2 algorithm and linked to a ROS enviroments. Can be found here.
Please clone them into your catkin workspace (under /src) and init+update any required git submodules. Install any dependencies required listed in the respective repo's READMEs'.
install the following dependencies using pip:
- scipy
Finish-off by building your catkin workspace using (from within the workspace top-level):
catkin_make
Overlay the workspace using:
source Devel/setup.sh
We are now ready to start up all the ROS nodes and ROS core.
The demonstration script shows a Takeoff and calibration sequence (more info on the calibration and TF can be found in the final project paper).
launch the usb_cam demo launch file usb_cam-test.launch after editing the pixel format
<param name="pixel_format" value="mjpeg" />
In seperate shells start the following:
- Start by starting ROSCORE:
roscore
- Launch the usb_cam node:
roslaunch usb_cam usb_cam-test.launch
- Start the demo using:
roslaunch crazyflie_demo crazy_bal_demo.launch
The demo script will start the orb_slam_2 node once in the air using a launch file in the orb_slam_2_ros package. The script automatically uses:
roslaunch orb_slam2_ros orb_slam2_crazybal_mono.launch
The launch file uses the config file (contains camera calibration that might need to be adjusted) found in
- orb_slam2/config/crazybal_camera.yaml in the ORB_SLAM_2 ROS package repo.