chvmp / champ

MIT Cheetah I Implementation
BSD 3-Clause "New" or "Revised" License
1.47k stars 342 forks source link

Odometry #76

Closed YangXu-Insist closed 2 years ago

YangXu-Insist commented 2 years ago

How the odometry of the quadruped robot was realized in this project ?

grassjelly commented 2 years ago

You can take a look at the implementation here: https://github.com/chvmp/libchamp/blob/master/odometry/odometry.h

chrisalbertson commented 2 years ago

I read the above link. I like to do it differently. Just use the commanded motion of the body. Basically dead reckoning.

The linked code assumes the robot has zero velocity if (1) all feet are in ground contact. No. The robot might be in the process of leaning in some direction and hence moving. I define "moving" as the body center point is translating relative to the real world. Leaning is a valid way to make small movements. (Perhaps to better-position a camera?) and (2) the linked code assumes if all feet of not in contact the robot is stationary. No. It might be an actual MIT Cheetah that is powerful enough to use a bound or pronk gait. (The linked code will always return "zero" in the case of pronking.) Yes, any robot I could personally afford is upside down if all feet are not in ground contact. But I can hope this situation changes.

Dead Reckoning is not accurate over long distances so I am looking at visual odometry, perhaps a sensor that faces down to the floor. Basically an optical mouse

On Tue, Dec 7, 2021 at 8:40 AM Juan Miguel Jimeno @.***> wrote:

You can take a look at the implementation here: https://github.com/chvmp/libchamp/blob/master/odometry/odometry.h

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/chvmp/champ/issues/76#issuecomment-988092750, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABQKNRXNIRZEFBJNEPACRJDUPY2HRANCNFSM5JRKXI5Q . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

--

Chris Albertson Redondo Beach, California

grassjelly commented 2 years ago

You could perhaps implement your own odometry implementation (something like this https://github.com/chvmp/champ/blob/master/champ_base/src/state_estimation.cpp#L110-L165) and fuse it with the other odometry/sensor source in either one of the ekf configs here: https://github.com/chvmp/champ/tree/master/champ_base/config/ekf