-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] 3 link pendulum #10
base: master
Are you sure you want to change the base?
Conversation
Added a 3 link pendulum problem, with links as RigidBodies
Changed inertia value
…ples into 3-link-pendulum
#For storing Inertia for each link : | ||
Ixx = symbols('Ixx:'+str(N_links)) | ||
Iyy = symbols('Iyy:'+str(N_links)) | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A general inertia matrix has 9 entries: three moments of inertia and 6 products of inertia. You are only introducing the moments of inertia about the x and y axes. Where are the other entries? Is the link assumed symmetric? Depending on the symmetry you can reduce the inertia down to the three moments of inertia but since you have no Z inertia at all this seems problematic. I'd prefer you to add all of the inertia tensor entries here and then if you assume symmetry about various planes you can set the appropriate products of inertia equal to zero when you get to the numerical simulation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Only 6 entries will be unique, inertia matrices are always symmetric (i.e., Ixy == Iyx, Ixz == Izx, Iyz == Izy). If you create a 3x3 with 9 unique entries and somehow you accidentally make it non-symmetric, it won't be representative of an inertia matrix and is probably a mistake. The inertia() function in mechanics may be useful here.
|
||
inertia_link1 = inertia(A, Ixx[0], Iyy[0], Izz[0], ixy = Ixy[0], iyz = Iyz[0], izx = Ixz[0]) | ||
inertia_link2 = inertia(B, Ixx[1], Iyy[1], Izz[1], ixy = Ixy[1], iyz = Iyz[1], izx = Ixz[1]) | ||
inertia_link3 = inertia(C, Ixx[2], Iyy[2], Izz[2], ixy = Ixy[2], iyz = Iyz[2], izx = Ixz[2]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why not write a loop to do these three lines?
Tarun, The derivation looks correct to me. You'll have to simulated it to see if behaves correctly. Please make a figure (or find a creative commons licensed one) to include and add more detail to the read me. |
i am rather more aligned on writing some javascripts, for simulation. On 6/24/13, Jason Moore [email protected] wrote:
|
The simulation (ode integration) should happen in Python (I don't know of any ode tools in javascript). You don't get any free visualization without simulation. I think if you do a one-off simulation/visualization for this problem it will be a good exercise in understanding what methods you will need to develop for the final API. So please go ahead a do an example visualization of this more complicated problem. And use what you learn in the process to flesh out the python and javascript api designs that you are working on. |
BTW, I'll merge this example as soon as you add the figure and beef up the readme. |
Oh yeah and one more thing: switch to no loops or loops in the problem derivation so that it is consistent with itself. Fix those three things and we will merge this in. |
yes simulation would be in python only. i should have used the word On 6/24/13, Jason Moore [email protected] wrote:
|
yes simulation would be in python only. i should have used the word On 6/24/13, Jason Moore [email protected] wrote:
|
Here are some suggestions for the visualization: Attach some shape to each bob (dont' use a sphere, make it more general like an ellipsoid). Attach different shapes to each pendulum arm. But also try to attach a shape to a reference frame/point other than the CoM of these objects. Maybe try to attach cubes to your pendulum arm to make it look like a cross. I think making more general choices of shapes and their locations will show you the need for some of the methods we've been talking about on the python side. Make sure that you generate all of the equatiosn necessary to describe the shapes's locations on the python side. Only data should flow into your javascript. |
noted. On 6/24/13, Jason Moore [email protected] wrote:
|
I'm fine with that. Like I said, I think doing so will help define your API design. So the goal will be to animation the 3 link conical pendulum and then rework your API design to reflect what was learned. We can discuss the API at that time hopefully coming to a final decision. |
Outstanding issues:
|
This needs to be merged into one directory with the stuff in PR #11. |
No description provided.