Future Project Ideas: Difference between revisions
Jump to navigation
Jump to search
m removed duplicate model development |
|||
| Line 53: | Line 53: | ||
==Threading Each USB Radio to speed up Computation== | ==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)== | ==Developing New Controllers for the Crazyflie (pending Model Development)== | ||
Revision as of 19:55, 28 July 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.