Clover Framework

repository·master·Indexed 20 days ago

https://github.com/copterexpress/clover

An open-source ROS-based framework for controlling PX4-powered drones, optimized for Raspberry Pi companion computers. It provides high-level abstractions for autonomous flight, computer vision navigation, and hardware peripheral control. Key components include aruco_pose for marker detection and map localization, clover_blocks for Blockly-based visual programming, and clover_description for spawning Clover 4 drone models in Gazebo.

Tokens
116.9K
Snippets
284
Records
639
Agent score
71%

What's inside Clover

  1. Overview of the DroMap Indoor Mapping System

    master

    DroMap is an autonomous indoor mapping drone system designed to assist architects and interior designers by automating the measurement and mapping of indoor environments. The system uses a drone equipped with a LiDAR sensor to collect spatial data, which is then processed using Simultaneous Localization and Mapping (SLAM) algorithms to generate 2-dimensional maps in real-time.

    Core Workflow

    1. Data Collection: The drone's onboard sensors (LiDAR, Sonar, Range Finder) collect environmental data.
    2. Onboard Processing: A Raspberry Pi 4 acts as a companion computer, collecting sensor data and managing flight autonomy.
    3. SLAM Processing: The Hector SLAM algorithm processes the sensor data in real-time to formulate 2D maps.
    4. Visualization: The generated maps are sent wirelessly to a remote PC and visualized using the RVIZ software tool.
  2. Overview of OptiTrack MoCap integration with COEX Clover

    master

    This project serves as an educational tutorial for setting up an OptiTrack Motion Capture (MoCap) system to provide high-precision positional feedback for the COEX Clover platform.

    Key components of the integration include:

    • MoCap Marker Placement: Using markers to allow the system to stream positional data of the Clover.
    • Data Streaming: Configuring the flow of position data from the MoCap system to the Clover.
    • Clover Configuration: Specific setup requirements for the Raspberry Pi and PX4 firmware parameters.
    • Network Architecture: Establishing the network connection between the MoCap system and the Clover, which is critical for successful integration.

    This setup is intended for researchers, robotic developers, or hobbyists looking to implement external sensor feedback for indoor autonomous flight.

  3. Overview of Liberty-Way Optical Stabilization

    master

    Liberty-Way is a cross-platform web server application used for the Autonomous Multirotor Landing System (AMLS). It provides optical stabilization by using a camera connected to a powerful machine on the landing platform to track a 4x4 ArUco tag on the drone.

    Key features include:

    • Pose Estimation: Uses OpenCV-based algorithms to track the drone's position.
    • Configuration: Settings and PID parameters are stored in separate JSON files for quick adjustments without rebuilding.
    • Blackbox: Supports recording logs for debugging.
    • Deployment: To run, download the latest release, unpack the archive, and use the launcher corresponding to your OS.
  4. Overview of the Clover framework

    master
    Clover is an open-source, ROS-based framework designed to provide user-friendly tools for controlling drones powered by PX4. It is primarily distributed as a preconfigured image for Raspberry Pi, which includes all necessary software to enable autonomous flight quickly. While it can be used as a standard ROS package, the recommended setup for hardware like the COEX Clover Drone kit involves flashing the preconfigured image to a microSD card for a Raspberry Pi companion computer.
  5. Overview of MoCap Clover integration

    master

    This project provides documentation and implementation details for integrating the Clover drone platform with a Motion Capture (MoCap) system (such as OptiTrack). The goal is to replace standard localization with high-precision pose feedback (positional error < 0.3mm, rotational error < 0.05°) to enable research into UAV dynamics, control algorithms, and autonomy in controlled indoor environments.

    Key areas covered in the full documentation include:

    • Hardware configuration
    • Data transfer methods
    • Sensor fusion
    • High and low-level controller development
    • Trajectory tracking
    • Auto-tuning
  6. Overview of the Clover simulation environment

    master

    The Clover simulation environment enables users to run and debug autonomous drone code in a virtual setting that mimics real hardware. It utilizes PX4 SITL (Software-In-The-Loop) mode and uses the same ROS code as the physical drone, ensuring high fidelity between simulation and real-world deployment.

    Key Features

    Standard Environment:

    • High-quality Clover 4 visual model.
    • Gazebo plugins for Clover-specific hardware (e.g., LED strips).
    • Modification-friendly xacro drone descriptions.
    • Sample models, worlds, and roslaunch files for quick configuration.

    Virtual Machine (VM) Image: A specialized VM image is available to mimic the real drone closely, providing:

    • Preconfigured Visual Studio Code for ROS.
    • Monkey web server for web-based Clover plugins.
    • An always-running roscore service.
    • ROS GUI tools like rviz and rqt.
  7. Overview of clover_blocks

    master
    clover_blocks provides Blockly-based visual programming support for Clover. It consists of a frontend (located in the www/ subdirectory) that uses roslib.js to communicate with a backend ROS node. The backend node implements the services and topics required to execute Blockly-generated Python scripts on the drone.
  8. Overview of the COEX Clover platform

    master

    COEX Clover is an educational programmable quadcopter kit designed for autonomous flight development. It integrates open-source hardware and software to provide a complete platform for computer vision and autonomous navigation.

    Key components include:

    • COEX Pix: A flight controller running the PX4 flight stack.
    • Raspberry Pi 4: Serves as the onboard controlling computer.
    • Camera Module: Enables computer vision-based flight.
    • Sensors & Peripherals: Various sensors for environmental interaction.

    The platform provides a pre-configured Raspberry Pi image containing all necessary software for peripheral management and autonomous flight programming.

  9. Overview of Swarm in Blocks 2.0 features

    master

    Swarm in Blocks 2.0 provides a cohesive platform to address common challenges in drone swarm deployment. Key features include:

    • Collision Avoidance System: Mitigates the risk of collisions between drones in a swarm.
    • Swarm Station: A centralized interface to manage all Clovers in a swarm, replacing the need for multiple individual terminals.
    • Low-level Data Integration: Provides access to critical drone data such as battery levels and Raspberry Pi computational power directly within the Swarm Station.
    • Safe Area Pop Up: A security feature in the Swarm Station to define and manage physical space limitations (walls/objects) during indoor testing.
    • Web Homepage: A centralized web interface for accessing swarm controls and information.
    • Pre-designed Settings: Documentation and repository images containing optimized configurations for physical drone swarms.
  10. Understand Clover hardware and software terminology

    master

    This glossary defines the core components and concepts used in the Clover ecosystem. Key terms include:

    • Flight Controller / Autopilot: The specialized circuit board (e.g., Pixhawk) and the software (e.g., PX4, APM) that controls the vehicle.
    • ESC (Electronic Speed Controller): A circuit board that controls brushless motor speed via PWM signals from the flight controller.
    • Battery & Cells: Clover kits typically use 3S (three cells in series) LiPo batteries. The total voltage is the sum of individual cell voltages (max 4.2V per cell).
    • Arming: The state of readiness for flight. When 'Armed', the copter is ready to fly via gas stick or external commands, and propellers may begin rotating.
    • Telemetry: The system for transmitting aircraft state (height, orientation, coordinates) or commands over the air using radio modems (RFD900), Wi-Fi (ESP-07), or a Raspberry Pi.
    • MAVLink: The standard communication protocol used for telemetry between drones, ground stations, and other devices.
    • IMU (Inertial Measurement Unit): Sensors (gyroscope, accelerometer, and often a magnetometer) used to compute orientation and position.
    • Estimation: The process of calculating the drone's current state (position, velocity, etc.). PX4 uses LPE and ECL EKF (EKF2) modules, while APM uses its own EKF2 subsystem.
  11. Using Flysky FS-A8S Receiver

    master

    The Flysky FS-A8S receiver is compatible with Flysky FS-i6 and FS-i6x transmitters. It supports both analog PPM and digital S.Bus/i-Bus signals, though S.Bus is the preferred protocol for flight controller communication.

    Important Note on Telemetry: This receiver does not support telemetry. The transmitter will not display RSSI, battery levels, or connection status, but flight controls will function normally.