robomechanics / quad-sdk

Software tools for agile quadrupeds, developed by the Robomechanics Lab at Carnegie Mellon University.
https://robomechanics.github.io/quad-sdk/
MIT License
697 stars 133 forks source link

how to estimate robot body pose, without camera(s) Help ! #356

Closed elpimous closed 1 year ago

elpimous commented 1 year ago

Hi friends. quad-sdk estimates body pose with help of cameras..

Can't it be made only with IMU return ?

Did anyone here did it without camera ? Could I ask any help, from a "newbie", to help my robot walk ? Thanks all. Vincent

elpimous commented 1 year ago

perhaps could I use any simulation launch to fake real robot body pose ?!

ologandavid commented 1 year ago

I'm currently working on implementing a version of EKF estimation for use in Quad-SDK, the general framework is outlined in the paper below. We hope to add the functionality in the coming weeks. As of now, our current solution outside of MOCAP is the use of the T265 tracking camera. So perhaps you would have success with that instead.

https://www.researchgate.net/publication/243971940_State_Estimation_for_Legged_Robots_-_Consistent_Fusion_of_Leg_Kinematics_and_IMU

ologandavid commented 1 year ago

Do you mean just using the simulation ground truth for your body pose?

elpimous commented 1 year ago

Hi. big thanks for help.

@ologandavid , Well, don't know !

Using code on my real robot. It stand up correctly, but i'd like to make it walk only with the robot itself, without aly mocap or cameras. All ideas would help me a lot

PS: i don't have enough knowledge to code from this paper... (i'm autodidact, sorry) I am very, very impatient to be able to use your next ekf estimation.

ps : perhaps could i say that your framework is perfect for actual robots, but your Overview mention sim and real, but without mocap or camera need.

ologandavid commented 1 year ago

@elpimous Does your robot currently have an IMU? Assuming the robot doesnt slip, you could integrate the IMU to get a position and velocity estimate. This might drift, but if you're impatient, this might be your best bet.

elpimous commented 1 year ago

Hey, yes, I have an imu ! it would be cool to help me wait for your EKF estimation.

so, feed last_robot_state_msg_.body.pose.position with imu pose.position https://github.com/robomechanics/quad-sdk/blob/b04d4f7658215da018b4843c98f49e50b1b339c6/robot_driver/src/estimators/comp_filter_estimator.cpp#LL56C46-L57

and vel_estimate_ with imu velocity.x https://github.com/robomechanics/quad-sdk/blob/b04d4f7658215da018b4843c98f49e50b1b339c6/robot_driver/src/estimators/comp_filter_estimator.cpp#LL98C7-L98C7

Correct ? Thanks @ologandavid

elpimous commented 1 year ago

PS I have a t265, placed on robot bottom (d435 front) I don't see in code how to use t265 ?!!

ologandavid commented 1 year ago

That sounds right, feeding in your IMU information into last_robot_state_msg should work. I'll keep you updated on the progress of EKF estimation!

elpimous commented 1 year ago

@ologandavid I hope it will be feasable with no foot sensors.

ologandavid commented 1 year ago

Hopefully, it should work! I don't know the specifics of your implementation so I can't say for sure. For organization's sake, please reserve issues for bug reports, feature requests, or larger issues with the code base. More personalized implementation questions like this converstion would probably be better suited for our discussion section, and we'd be more than happy to address these requests there.

elpimous commented 1 year ago

Didn't find it. Discussion section, check