Future Project Ideas

From Distributed Autonomous and Networked Control Lab
Jump to navigation Jump to search

Here we will go into more depth on what each of these projects would require:

Migrating Swarm Client PID's to Firmware

Focus Area

Firmware Programming and Communication Protocols

  • This project requires heavy modification of the Firmware and Communication systems inside the Crazyflie.

Tasks

Firmware

  • (HARD) Modifying Commander Packet Structure to allow position data to be sent rather than pitch, roll, yaw, and thrust setpoints.
  • Modifying Firmware to pass the new position data into the correct place for use by the Firmware PID controllers.

Client

  • Modify Swarm Client packet construction to match new commander packet protocol in Firmware
  • (EASY) Remove Controllers from callbacks and just send location packets to Crazyflies while still maintaining other functionality.

Benefits

  • Significantly reduces Client-side computation and allows Crazyflie swarm to share the load.
  • Potential extension: Completely independent Crazyflie flight (i.e. No Client needed at all)


Model Development/Verification and Tuning X, Y, and Z Location PID's

Focus Area

Control Systems and Model Development/Verification

  • This project will require developing a model of the Crazyflie system and using the Model to calculate PID constants.

Tasks

  • (HARD) Identify model Parameters for the Crazyflie
  • Construct model in Simulink and Verify simulation compared to test data
  • (EASY) Derive PID constants from verified model, test flight performance

Benefits

  • VERIFIED MODEL!! We can do many things once we have a verified model of the system.
  • Flight performance will be greatly improved allowing more complex applications to be developed.
  • Potential extension: Path prediction algorithms and optimal pathing between points with obstacles


Adding Parameter Support to Swarm Client

Focus Area

Communications Protocols and Networking

  • This project will require Client-side software development to create helper functions for easy modification of parameters on the Crazyflie Firmware

Tasks

  • Creating packet framework in the Client to replicate the parameters packet protocol
  • Programming helper functions to make it simple to modify parameters
    • Ex. Write Parameter Value: setParam(string "param_group.param_name", int set_value);
    • Ex. Read Parameter Value: readParam(string "param_group.param_name");

Benefits

  • Won't have to re-flash Firmware every time we want to test a parameter change (Improves Firmware testing efficiency)
  • Less Firmware modification if we can just write params during Client init.
  • Potential Extension: Tuning Firmware PID constants


Threading Each USB Radio to speed up Computation

Focus Area

Computer Architecture and Parallelization

  • This project will require/develop a good understanding of parallel processing and computer architecture.

Tasks

  • Apply threading to each USB Radio individually
    • A single Radio will be assigned at most 3 Crazyflies, and each thread will handle the corresponding Callbacks for those Crazyflies (which includes control calculations, Radio communications, and logging for each Crazyflie)
  • Troubleshoot any issues that come up with non-sequential program execution (shouldn't have problems)

Benefits

  • Greatly reduces time required to complete a loop cycle (relative to number of Crazyflies in the Swarm)
    • Improves scalability of the Swarm since we don't need to worry about missing the Camera System new data timing deadline as the Swarm size increases
  • Potential Extension: Increasing Swarm size to Camera System capacity limit.

Developing New Controllers for the Crazyflie (pending Model Development)

Focus Area

Control System Development and Implementation

  • This project will require a background in theoretical controls modeling and systems design.

Tasks

  • Research Control Designs and decide which controller you want to use
    • Examples: State Feedback Control (LQR, LQI, Pole Placement), State Space Controller (Lyapunov Estimator, H2), etc..
  • Develop a Simulink model for the controller and implement design in C++.
  • Verify model by comparing to real-world tests on the Crazyflie Swarm!

Benefits

  • Improved flight control leading to more complex applications
  • Maintain control without all the information (State Estimation)
  • Potential Extension: Stable control with Stochastic lossy packet transmission

Develop Communications Network Between Crazyflies

Trilateration Position Estimation using a Swarm


Main Directory
Crazyflie Swarm Home | PC Client Software | USB Radio | Firmware | FAQ
Modifications Directory
Controller | Logging | Keyboard Commands | Changing Radio Channel | Flight Modes | Callbacks | Adding a Crazyflie | Firmware