Future Project Ideas

From Distributed Autonomous and Networked Control Lab
Revision as of 19:33, 3 August 2016 by Jnoronha (talk | contribs) (added big quad deck project)
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

Focus Area

Communication Networking and Firmware Development

  • This project will require/develop a good understanding of network protocols and creating complex communications networks

Tasks

  • Research the Crazy RealTime Protocol (CRTP) used by the Crazyflie
  • (HARD) Modify the Crazyflie Firmware to enable both transmit (tx) and receive (rx) packets
  • (HARD) Develop a system in Firmware to utilize the bi-directional communications
    • Example: Using the pitch, roll, or yaw of a Crazyflie to influence control of another Crazyflie(s) without passing it through the Swarm Client

Benefits

  • Crazyflies can pass information between themselves
  • Stepping stone to fully autonomous Crazyflie Swamrs (No Client needed)
  • Opens up many possible extended applications
  • Potential Extensions:
    • Relative Swarm Formations (patterns based on distance from other members of the swarm, not some global entity)
    • Create Advanced Trilateration Localization using Swarm itself

Trilateration Position Estimation using a Swarm

Focus Area

Stochastic Lossy Networks and Localization Methods

  • This project will develop a noise model for the Crazyflie communications in the lab and use that information to estimate an unknown Crazyflie's position.

Tasks

  • Research Trilateration and Develop noise models for the Lab environment
  • (HARD) Develop Client-side sub-routine to collect Received Signal Strength Indicator (RSSI) value from each node (Crazyflie or USB Radio)
  • (EASY) Develop Client-side sub-routine to calculate location estimate using RSSI based Trilateration method
  • Use position estimate to maintain stable flight without the use of the Camera System

Benefits

  • Stepping stone to Outdoor Localization (effective outdoor localization method complimentary with GPS)
  • Reduces dependence on Camera System for localization
  • Potential Extension: Relative Swarm Formations (position dependent on distance from other members of the swarm, rather than a 'global' origin)

Extending Swarm Client to Larger Quadcopters


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