Comments (2)
This is all quite fun. The thing when you really reduce this, then you'll just get to the level of individual joints and bodies, which is just the high level API (which is partially still getting implemented) in sympy.physics.mechanics
. If one wants that then (s)he should just use that. At the same time we are using it internally, so it is of course compatible with it.
Overall it is nice to support mixins, to make sure a model gets compatible with something, where one can even use that mixin to define the kinematics between the two. This is especially nice for the interactions between the bicycle and the rider. One can however also group a set of model connections as one may know that they will be used together. This is what WhippleBicycle
does.
One can pose the following rule on splitting:
- Keep it together if one will just almost always use it together.
- Split it, if you'd like to be able to changeout parts easily. A good example is the different tyre models and toroidal and knife edge wheel.
from brim.
A possible concept to fit this approach would have been having a group of models, like wheel models, etc. And a group of interactions, which each describe how two models can be connected. Next a user can choose what models should be combined and then it just searches what valid interactions exist.
While this approach would have some fun effects around certain flexibility, it would become really messy to try and track down what exactly happened, as the dynamics code will be partially defined on a lot of places.
from brim.
Related Issues (20)
- Redundant _parent attribute in ConnectionBase
- Change frozenset usage to frozen dictionaries? HOT 2
- BicycleParameters adjusts the rear frame CoM based on the rider
- Simplify contact point computation
- Redesign plotting structure
- Refactor test suite
- Make q, u default Matrix properties
- Improve module names
- RiderLean model
- Change base orientation of frames in the rider HOT 2
- Use benchmark results
- Fix broken links
- Rear and Front frame should not use NewtonianBodyMixin HOT 1
- Regression of the number of operations in the EOMs after CSE HOT 2
- Get all symbols HOT 4
- Add tutorials HOT 1
- Diagrams can't be read in dark mode HOT 1
- Feedback BRiM tutorials session
- Feature request: get unspecified components
- Holonomic constraints in HolonomicHandGrips and HolonomicPedals are incompatible with noncontributing forces
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from brim.