Giter Club home page Giter Club logo

rocketpy-hackathon-2022's People

Contributors

adriano-antongiovanni avatar andre-geldenhuis avatar brunosorban avatar franzyuri avatar giovaniceotto avatar gui-fernandesbr avatar lint-action avatar lucas-kb avatar lucasfourier avatar luimot avatar mateusstano avatar mrgribel avatar ompro07 avatar patricksampaiousp avatar phmbressan avatar rodrigo-schmitt avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

rocketpy-hackathon-2022's Issues

Fin Flutter calculation

Short Description:
Aeroelasticity problem is an important phenomena to care about when launching a rocket

Long Description:
Improve current Fin Flutter calculation, trying to add any new sophisticated method. You're free to propose any different source or approach, as long as you refer all your assumptions. This is not related with the the other flutter issue in this hackathon.

Useful links:
http://www.aerorocket.com/finsim.html; https://github.com/mid2SUPAERO/MastersRP-Akshay-GUPTA

Optimize Environment Analysis

Short Description:
Optimize the execution time of Environment Analysis Class

Long Description:
If we take a look at the data treatment functions available at Environment Analysis class of rocketPy, we are going to see that there are opportunities for saving some time. The basic problem now is that it takes too much time to run a simple dataset.

New fin shapes

Short Description:
Fins are currently trapezoidal or elliptical on RocketPy, but real life is not that easy

Long Description:
We currently only accept trapezoidal and elliptical fins. Implement a model that allows for the use of parabolic fins or free geometry fins.

Useful links:
RocketPy/docs/technical/aerodynamics at develop · RocketPy-Team/RocketPy (github.com)

https://github.com/openrocket/openrocket/releases/download/Development_of_an_Open_Source_model_rocket_simulation-thesis-v20090520/Development_of_an_Open_Source_model_rocket_simulation-thesis-v20090520.pdf

Improving current fin flutter method

Short Description:
It was a simple function when created,

Long Description:
Currently the Flight.calculateFinFlutterAnalysis method works only when a single set of fins is created, which may not be the reality of all cases. Can you try to solve this problem? You could also investigate if we could place the function at the utilities function or not

Fin Class

Short Description:
Reorganize the addFins functions into a class

Long Description:
There are currently two functions that add fins to the rocket: addTrapezoidalFins and addEllipticalFins. Both these functions have repeated code that could be avoided and better organized with a seperate Class for the fins. This issue ties in with issue #classAerodynamicSurfaces

Simulate until rocket is out of rail

Short Description:
Add terminateAtApogee parameter

Long Description:
If you want to make the simulation stop at apogee, you can use the terminateOnApogee parameter on the flight object. But what about when you want to stop the simulation at the moment the rocket leaves the rail? Add a similar parameter!

Currently, for RocketPy, the rocket is considered to be out of rail at the moment the uppermost rail button leaves the rail.

Useful links:
Try to find terminateAtApogee at the code

Saving atmosferic data offline

Short Description:
Add the option to save atmospheric data

Long Description:
Make it so there is a option to save the atmospheric model used in a simulation, so we can use the exact same set of data any time we want. This is especially useful for forecasts!

Optimizing drag

Short Description:
Minimizing drag would be an amazing addition to RocketPy

Long Description:
Given a desired static margin, how could rocketpy optimize aerodynamic surfaces to reduce overall drag force?

No rail flight

Short Description:
Allow flight without a launch rail

Long Description:
The current implementation expects that the rocket has rail buttons and the Environment a rail. Make this an optional feature. Suggestion: Disable wind in environment or give the rocket an initial velocity while testing so it can make a stable flight.

Multi stage rocket simulation

Short Description:
Create a notebook that explains how to perform a multi stage rocket simulation with RocketPy

Long Description:
Create a Notebook that describes and explains how to perform a multi stage rocket simulation with RocketPy. If you search a little bit you're going to find that someone already created such simulation, but it was not given as an example notebook though.

Useful links:
RocketPy-Team#45 (comment)

What If The Rocket Falls In a Mountain?

Short Description:
Implement ground level check for rocket impact

Long Description:
Since the Earth is not flat, we can implement some functions that allow us to more accurately determine the impact coordinates by searching the point where the rocket crosses the ground. Good candidates for this job are SRTM data.

Rocket Class Usage Notebook

Short Description:
Create a notebook for the Rocket class

Long Description:
Create a Rocket Usage notebook for the Rocket class. This notebook should explain how to use the class and what are some of its parameters and methods. See other class usage notebooks for example

Dragging on

Short Description:
Add drag calculation to any aerodynamic surfaces

Long Description:
Currently, the drag coefficients for the rocket must be set as an input in the powerOn and powerOff parameters. Make RocketPy calculate the drag coefficient without the need of an external software

Useful Links:
RocketPy-Team#112; https://dspace.mit.edu/handle/1721.1/1701

No More Fins

Short Description:
Integrating control methods and RocketPy

Long Description:
Add a method to the Rocket class that allows the user to define a continuous or discrete-time closed-loop control function to be simulated during flight.

Custom aerodynamic surfaces

Short Description:
Always trying to be flexible, now RocketPy should support any aerodynamic surface.

Long Description:
Currently, the Rocket class only allows aerodynamic forces to be computed on predetermined surfaces: fins, nosecone or tail. Implement an option to insert a custom aerodynamic surface, where the user can freely provide what the lift, drag or aerodynamic moment will be on that surface during flight. For instance, the user could be trying to implement a body with non null lift coefficient.

Average wind heading profile

Short Description:
Add the ability to calculate average wind heading profile on the Environment Analysis class

Long Description:
Currently there's a problem when analysing wind heading. It's related to bearing compass range limits (0° - 360º), which creates a tricky phenomena when we try to interpolate values when 2 adjacent points crosses the 0º/360º limit. See the conversation on PR 197 to get familiar with, and then try to propose a method that handle with creation of average wind heading profile

Useful links:
RocketPy-Team#197

Dispersion Analysis Class

Short Description:
Consolidate dispersion simulations in an easier approach

Long Description:
Everything regarding the dispersion analysis is all in a notebook. Add Dispersion to the code via a Class Dispersion. The final result must be an easy-to-use simulation.

Losing Fins

Short Description:
Make it possible to simulate a rocket that at some point in the flight loses one of its fins.

Long Description:
Make it possible to simulate a rocket that at some point in the flight loses one of its fins.

Consider Prandtl factor

Short Description:
Implement the Prandtl factor on the Tail and Nosecone

Long Description:
Currently we have calculation of Lift Coefficient derivative in function of Mach Number through the beta parameter - see def beta in the code – only for fins. This provides a more realistic solution when the Mach number approaches 1. This dependency comes from the Prandtl factor which corrects subsonic force coefficients for compressible flow.

Implement the use of the Prandtl factor in some way in the Tail and Nosecone lift coefficient derivative calculation.

Useful Links:
https://github.com/Projeto-Jupiter/RocketPy/issues/133
https://github.com/openrocket/openrocket/releases/download/Development_of_an_Open_Source_model_rocket_simulation-thesis-v20090520/Development_of_an_Open_Source_model_rocket_simulation-thesis-v20090520.pdf

Flexible input and output parameters in Dispersion Analysis

Short Description:
Add the possibility to select which input parameters the users want to vary and which parameters they want to see as outputs of Monte Carlo simulations

Long Description:
The most used example of Monte Carlo simulations using RocketPy is the example notebook. However, the time has shown to us that usually users only modify values on the simulation, not the code structure itself. This addition would allow us to reach more dispersion simulations.

Variable center of mass

Short Description:
Propose a new model to describe the variation in the position of the engine's center of mass during flight.

Long Description:
Currently, for solid motors, the position of the center of mass is assumed to be fixed. However, to correctly simulate a hybrid motor, it is necessary to calculate the initial position of the center of mass of the loaded motor and how it varies during flight. propose a mathematical model that allows calculating the variation of the center of mass within a hybrid (or liquid) motor taking into account the variation of the mass of the solid fuel and the liquid oxidant

Deployable payload

Short Description:
Create notebook simulating deployable payload flight

Long Description:
Deployable payload are not so rare in most rocket and launch vehicle flights. It's about time for us to discover whether rocketPy can handle with this kind of flight or not.

Useful links:
RocketPy-Team#45 (comment)

Analysis Class

Short Description:
A new class to be used right after the Flight class

Long Description:
There are many different type of analysis that can be made using RocketPy, such as the apoggeByMass function or outOfRailVelocityByMass. Other type of this kind of optimizations are also possible, as you can see in the getting started notebook. Create a class that can fit these analysis into the code.

Useful links:
Getting started notebook at the rocketpy's main page

2D simulation example

Short Description:
Create a notebook os script describing the simulation of a 2D flight

Long Description:
The rocket can only varying in to directions (x and z). This is important for some cases and proof of concepts during the design phases. Tip: What happens if you simulate a flight in an environment without wind?

Symbolic math programming

Short Description:
Modifying equations of motion in the currently code can be difficult, let's try a new approach then

Long Description:
Utilize some symbolic manipulation method (e.g.: sympy) and implement the equations of motion, that already exist, in this new system. Perform the integration with the numerical integrator leave the equations ready in the symbolic manipulation system.

Useful links:
https://www.sympy.org/en/index.html

Rocket Drawing on documentation

Short Description:
Implement a simple drawing to better illustrate all the input parameters

Long Description:
Especially with regards to position inputs, sometimes it is hard for new users to understand what values to input in each function. Try to create a drawing (or any better ideia) to help iusers. This should be attached, somehow, to the documentation page of rocketpy

Useful links:
https://docs.rocketpy.org/en/latest/?badge=latest

Broken links and images in the documentation

Short Description:
Fix broken links and images in the rocketpy documentation page

Long Description:
The current start page of our documentation, which is pretty much the ReadMe, contains broken links and images. Navigate to https://docs.rocketpy.org/en/latest/ and scroll down until Supporting RocketPy and Contributing or Authors and Contributors. You will notice broken links and images, as shown below. This is also an opportunity to start working with documentations, creative ideas or implementation may receive some extra points.

Useful links:
Docs: Broken links and images · Issue #204 · Projeto-Jupiter/RocketPy (github.com)

Magnetic Field

Short Description:
Add magnetic field to the environment class

Long Description:
Add a way to receive magnetic field to the environment class. This is especially useful for IMU comparisons!

Airfoil Information

Short Description:
Add airfoil information to Rocket.allInfo() method

Long Description:
Not so long ago, we had RocketPy-Team#140 solving bugs regarding airfoil implementation.
It's true that now rocketpy is dealing very well with these non-flat fins, however some plots and maybe some airfoil information could be implemented in the rocket.py file to show to the user.

Some of them could be:

Simple plot of airfoil data the user inputted by addFins() method
Derivative of Lift coefficient by angle of attack
But of course feel free to add any other information you consider important!

Useful links:
https://github.com/Projeto-Jupiter/RocketPy/issues/144

Don't lose time

Short Description:
What do we need to run faster?

Long Description:
Implement improvements that help RocketPy running flight (or dispersion analysis) simulations faster, possibly allowing the computer to run multiple simulations in parallel mode

Environment Analysis into Environment

Short Description:
Use the environment analysis as an environment in the simulation

Long Description:
Create a way to get an Environment object from a Environment Analysis results

New home for apogeeByMass

Short Description:
Implement the apogeeByMass function that is found in the notebooks, in the code

Long Description:
Add, in a efficient way, the apogeeByMass function straight to the source code of RocketPy. This function can be found in the getting_started.ipynb notebooks. We suggest start investigating whether this could become a part of utilities.py class

Useful links:
https://github.com/Projeto-Jupiter/RocketPy/blob/5c65decb5caadc28a8c02deb4d2e8c14c3d3d3a4/docs/notebooks/getting_started.ipynb

Validate Roll

Short Description:
Use real rocket data to validate (or not) rocketpy's roll moment simulation

Long Description:
RocketPy already accept roll moment calculation when the fins are positioned with a cant angle. However, we have never had the chance to compare simulated results against actual trajectory flight data.

Useful links:
Here we performed a comparison of some rockets: https://github.com/RocketPy-Team/RocketPaper

Non-symmetrical Rocket

Short Description:
Make the rocket inertia products an input for the simulation

Long Description:
Make the rocket inertia products an input for the simulation, analyzing whether it will bring significant differences or not

New Tail Shapes

Short Description:
Add different boattail shapes

Long Description:
Currently RocketPy only considers for its simulation conical tails. Implement other tail shapes, much like the Nosecone.

The implementation would require two thing that would need to be researched:

  1. The formula for the lift coefficient derivative for that tail shape
  2. The formula for the center of pressure for that tail shape

Flight Class Usage Notebook

Short Description:
Create a notebook for the Flight class

Long Description:
Create a Flight Usage notebook for the Flight class. This notebook should explain how to use the class and what are some of its parameters and methods. See other class usage notebooks for example, we suggest to start by the environment class usage.

Smart Controllers

Short Description:
Implementation of neural networks to control the 6 degrees of freedom of the rocket during flight.

Long Description:
Implementation of neural networks to control the 6 degrees of freedom of the rocket during flight.

Batch dispersion notebook

Short Description:
Dispersion analysis can take a while to run, sometimes we need to schedule multiple simulations and go to sleep. Ensure everything is ready once the user wakes up.

Long Description:
Build a notebook that makes it easy to simulate multiple flights in sequence, specially for multiple dispersion analysis scenarios. Be sure to comment on it accordingly.

Air brakes introduction

Short Description:
Air brakes are used to increase drag when the rocket is about to overcome the target apogee

Long Description:
Air breakers are used to drastically increase drag when the rocket is about to overcome the target apogee. Bring to RocketPy whatever is needed that simulation

Function Class Usage Notebook

Short Description:
Create a notebook for the Function class

Long Description:
There's a rumor that the Function class is actually the most critical and important function available at RocketPy. Being true or not, the fact is that people would be impressed if they get to know a bit more about Function, what if we show to the world using an example notebook?

Precipitation

Short Description:
Add precipitation to the simulation

Long Description:
Currently RocketPy does not know if it is raining or not. Try to implement features that solve this problem.

IMU simulation

Short Description:
Add ability to simulate IMU (inertial measurement unit) inside the rocket.

Long Description:
It would be really useful to compare different attitude estimation algorithms. Useful to GNC (guidance, navigation, and control).

Useful links:
RocketPy-Team#198

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.