Does Newton enable floating point exceptions?

A place to discuss everything related to Newton Dynamics.

Moderators: Sascha Willems, walaber

Re: Does Newton enable floating point exceptions?

Postby JoeJ » Sat Sep 10, 2022 1:04 pm

Yes, the problem with all those special points seems mainly that they use extremely simplified models. Often even a 'linear' inverted pendulum, where the model ignores the rotation around the ankle but assumes the com remains at constant height. Asimo probably uses this too, as they calculate a com trajectory at constant height, which they then try to follow. On top of that, they need to limit angular momentum around the com, thus the robot keeps arms stiff.
Things like ankle joint at non zero height are rarely considered it seems. Pendulum is often considered a point mass on a massless leg, etc.
It's beyond me why they do this. The equations for a realistic setup can't me so much harder.
I always tried to extend the equations, but they are still not quite right, because i'm a noob.

The only paper that really helped me, because i actually could implement some equations, was this: https://repository.tudelft.nl/islandora/object/uuid:9e390296-9ba9-46d5-9b3f-3b7653b2d1ba/datastream/OBJ/download
Good example of those simple models, but it gave me the first version of a working controller. Reading it again now i see they also calculated min and max torques which can be used without loosing stable contact. That's exactly what i've ended up with too, but i see my math isn't correct and still an approximation.
The paper makes use of ICP special point, which is very useful to make such 'falling' controller as you mention. I think that's good concepts, and might help even a machine learning model.

Beside using a 'proper' and detailed inverted pendulum in 3D with nonuniform inertia bodies on sloped and eventually moving ground (that's already simplification enough), i think the main reason for robotic results is controllers based on error feedback. The controllers do not know how far then can go. Instead they just nudge towards the goal a bit, see how stability changes, and reduce or increase the nudging accordingly. At least that's what i imagine they mostly do. But because humans are so tall and support is so small, it's not enough. We must move closely to theoretical max speed to achieve natural motion.
Boston Dynamics robots, including Atlus, seemingly get this right.

Regarding ZMP, i prefer the 'Center of Pressure' term, because it describes my interest and application of it better. I don't use it as a point to help me finding a strategy. I use it to convert my target to actual joint acceleration. It is something that i want to control directly.

Here is how i measure it from the simulation: I sum up all contact positions weighted by contact force magnitude and display it for reference, and it follows my prediction quite nicely. At least in setups where my math seems right or good enough.
Remembering my own physics engine, i used only one contact point between two bodies, never more. It was just capsules and planes, but it worked to have stable stacks of capsules.
So i think i have used such CoP, and i also think predicting contact forces gives one proper way to calculate it, in case i fail to improve my existing method.

Moving the CoP around within the support polygon is the way my controller works. For efficiency, unlike error feedback methods, it's mostly at the edges of the polygon. But i need to calculate a mapping from CoP to ankle acceleration and vice versa, and here i still have issues.
After i finally get this right (if ever), i think i'm done with balancing and there is no need to extend it later. So there is no need for ML balancing control either.
But not sure. It all relies in Pendulum model, so the rotation around a single ankle.
This may be already a very bad model for quadrupeds, or a biped with additional support made from the hands, etc.
ML should be more flexible here. Ideally, we shall see...
User avatar
JoeJ
 
Posts: 1453
Joined: Tue Dec 21, 2010 6:18 pm

Re: Does Newton enable floating point exceptions?

Postby JoeJ » Mon Sep 12, 2022 2:38 am

Regarding motor inaccuracy, i just found i've had a bug.
Instead setting 4 substeps and 12 solver iterations, i did accidently set 4 substeps and then 12 substeps, but did not set solver iterations at all.
After fixing this i get pretty precise results now, which should help me to verify my math :)
User avatar
JoeJ
 
Posts: 1453
Joined: Tue Dec 21, 2010 6:18 pm

Previous

Return to General Discussion

Who is online

Users browsing this forum: No registered users and 50 guests