diff --git a/docs/images/software_architecture.png b/docs/images/software_architecture.png new file mode 100644 index 000000000..107240f1d Binary files /dev/null and b/docs/images/software_architecture.png differ diff --git a/docs/images/software_architecture.svg b/docs/images/software_architecture.svg new file mode 100644 index 000000000..8d1092b28 --- /dev/null +++ b/docs/images/software_architecture.svg @@ -0,0 +1,5490 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + libMotionCapture + + + + + + + + + + + + + + + + libObjectTracker + + + + + + + + + + + + + + + + crazyflie_cpp + pointcloud + rigidbodies + commands + + rigidbodies + spin-off projects + + + + + + + + + + + + + + + + crazyflie_tools + + + + + + + + + + + + + + + + crazyswarm_server + + + + + + + + + + + + + + + + motioncapture + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + pycrazyswarmw/ Simulator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + User + + motion_capture_ tracking + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/index.rst b/docs/index.rst index 8b07f7acb..75ed6eceb 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -57,7 +57,7 @@ Crazyswarm's academic origins The Crazyswarm architecture, including some motivation for the design decisions, is described in `our paper `_ [pdf]. -A talk at the `Aerial Swarms Workshop `_ at IROS 2019 includes a primer on how to use the Crazyswarm and a bibliography of papers using the Crazyswarm: `Slides `_ [pdf]. +A talk at the `BAM days 2021 `_ includes a primer on how to use the Crazyswarm and a bibliography of papers using the Crazyswarm: `Slides `__ [pdf], `Video `__ [youtube]. If you use our work in academic research, please cite us: @@ -90,6 +90,7 @@ Contents changelog gettingstarted installation + overview configuration tutorials/tutorials howto/howto diff --git a/docs/overview.rst b/docs/overview.rst new file mode 100644 index 000000000..98992dcb0 --- /dev/null +++ b/docs/overview.rst @@ -0,0 +1,29 @@ +.. _overview: + +Overview +======== + +Crazyswarm has the following software architecture. + + .. figure:: images/software_architecture.png + :align: center + :scale: 50% + + +- **crazyflie_tools** + These are command line tools that can be used using `rosrun crazyflie_tools `. These tools include methods to list logging variables, parameters, and to reboot individual crazyflies. +- **crazyswarm_server** + This application is the core of the Crazyswarm. It provides the ROS interface, communicates with the robots and the motion capture system. +- **pycrazyswarm** + This is a simplified Python library to use the Crazyswarm. It has two backends: the physical backend (communicating with the crazyswarm_server) and the simulation backend. The simulator uses parts of the official firmware for software-in-the-loop simulation. For performance reasons, the simulation does not include the dynamics and rather visualizes the setpoints. +- **Helper libraries** + We provide a unified interface for different motion capture systems (`libMotionCapture`), a way to track rigid bodies frame-by-frame even with unique marker configurations (`libObjectTracker`), and a library for the low-level communication with the Crazyflie robots (`crazyflie_cpp`). + +More Information +---------------- + +- Talk at the `BAM days 2021 `__ + * `Slides `__ [pdf]. + * `Video `__ [youtube]. +- Talk at the `Aerial Swarms Workshop `__ at IROS 2019 + * `Slides `__ [pdf].