Future Project Ideas: Difference between revisions
Jump to navigation
Jump to search
m added big quad deck project |
m fixed spacing of directory |
||
| (One intermediate revision by the same user not shown) | |||
| Line 66: | Line 66: | ||
**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 | **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. | *'''Potential Extension:''' Increasing Swarm size to Camera System capacity limit. | ||
==Developing New Controllers for the Crazyflie (pending Model Development)== | ==Developing New Controllers for the Crazyflie (pending Model Development)== | ||
| Line 82: | Line 83: | ||
*Maintain control without all the information (State Estimation) | *Maintain control without all the information (State Estimation) | ||
*'''Potential Extension:''' Stable control with Stochastic lossy packet transmission | *'''Potential Extension:''' Stable control with Stochastic lossy packet transmission | ||
==Develop Communications Network Between Crazyflies== | ==Develop Communications Network Between Crazyflies== | ||
| Line 103: | Line 105: | ||
**Relative Swarm Formations (patterns based on distance from other members of the swarm, not some global entity) | **Relative Swarm Formations (patterns based on distance from other members of the swarm, not some global entity) | ||
**Create Advanced [[#Trilateration Position Estimation using a Swarm|Trilateration Localization]] using Swarm itself | **Create Advanced [[#Trilateration Position Estimation using a Swarm|Trilateration Localization]] using Swarm itself | ||
==Trilateration Position Estimation using a Swarm== | ==Trilateration Position Estimation using a Swarm== | ||
| Line 121: | Line 124: | ||
*Reduces dependence on Camera System for localization | *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) | *'''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== | ==Extending Swarm Client to Larger Quadcopters== | ||
===Focus Area=== | |||
'''Hardware Development and System Modeling''' | |||
*This project will utilize the [https://www.bitcraze.io/bigquad-deck/ Crazyflie's BigQuad Deck] Expansion board to convert the motor commands to signals for ESC motor controllers | |||
===Tasks=== | |||
*Research the BigQuad Deck and the Crazyflie Client functionality | |||
*Derive System Model and parameters for the large Quadcopter | |||
*Develop a simple test bench for testing the motor command conversion safely | |||
*Run Flight tests to validate the system model and stability of the scaled-up quadcopter | |||
===Benefits=== | |||
*Allows other lab projects to utilize the Crazyflie's onboard 10-DOF (acc, gyro, mag, baro) sensors without the size, battery, and payload limitations of the Crazyflie! | |||
*Use the Swarm Client Platform as a 'universal' backbone for lab projects. | |||
*'''Potential Extension:''' Mount the Crazyflie onto ANY Quadcopter based application and program the Swarm Client to run the application. | |||
Latest revision as of 19:48, 3 August 2016
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");
- Ex. Write Parameter Value:
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
Focus Area
Hardware Development and System Modeling
- This project will utilize the Crazyflie's BigQuad Deck Expansion board to convert the motor commands to signals for ESC motor controllers
Tasks
- Research the BigQuad Deck and the Crazyflie Client functionality
- Derive System Model and parameters for the large Quadcopter
- Develop a simple test bench for testing the motor command conversion safely
- Run Flight tests to validate the system model and stability of the scaled-up quadcopter
Benefits
- Allows other lab projects to utilize the Crazyflie's onboard 10-DOF (acc, gyro, mag, baro) sensors without the size, battery, and payload limitations of the Crazyflie!
- Use the Swarm Client Platform as a 'universal' backbone for lab projects.
- Potential Extension: Mount the Crazyflie onto ANY Quadcopter based application and program the Swarm Client to run the application.