Coder Social home page Coder Social logo

Comments (10)

mrsp avatar mrsp commented on July 17, 2024

Hello

In base estimation based on Newton-Euler floating mass dynamics, the IMU is used in the predict step (e.g. propagate your mean estimate) and the kinematics/leg odometry are commonly used in the filter's update step.

Thus, you dont need to synchronize the IMU + joint states + force measurements, but only the joint states with the force ones.

In your case, you will predict with the IMU twice and update once.

This is also the idea behind serow, if you were using it with a humanoid where you had imu @ 100hz and joint_states, F/T @ 50hz you would predict two times in a row and then update once.

If you are reading the code structure better read off my devel repo I am working on cleaning the structure and make it fairly easy to read and understand. A master-devel merge will come soon.

from serow.

crankler avatar crankler commented on July 17, 2024

Yes, I know your way and I have read your papers, Thank you for your apply.
But at now what confuse me is missing msg, just as follow:

图片2

The red line is the data I get from gazebo modelstate, and the bule line is my calculate on legodom, but
there alway have data error bacause of can't subscirbe /joint_states, so when I see your project,
I try to apply some experience from your code, but there still exist data miss, so my result is bad.
Can you give me some advice on how to handle this problem? Thank you again!

from serow.

mrsp avatar mrsp commented on July 17, 2024

I see.

In order to properly answer your question i need to know the following:

Does your robot have point feet or flat feet?
How fast is the gait the robot perform e.g. step time
Is it a dynamic or a static gait?

Also but can't subscribe you mean that lose/don't receive some messages?

from serow.

crankler avatar crankler commented on July 17, 2024

my quadruped robot use point feet,
when 4 legs walk a cycle, the base can walk 0.25m,
now it use static gait.
yes, accroding to suscribe all topic, I found I can receive imu , foot sensors all time, but when I cann't get the /joint_states , the error will show.

Also my way is try to calculate the kinematics change of one leg of every step, and to add every step change for the sum move.

my email address is [email protected], I mean use it can communicate quickly.
Thank you again for your help!

from serow.

mrsp avatar mrsp commented on July 17, 2024

For a static low-pace gait, leg odometry should be very accurate, especially when the robot has point feet and unwanted rotation by the ankle joint (as is the case in humanoids) does not happen.

What you ask for seems like a robot specific driver issue, are you sure that the robot always publish joint states @ 50hz?

Furthermore, i consider 50hz for joints and F/T to be very slow for accurate kinematic-inertial base estimation, so errors are expected.

from serow.

crankler avatar crankler commented on July 17, 2024

Just use the gait data of planning , I can get a good result.

At now my legodom calculate base on simulation in ros and gazebo,
I just subscribe /joint_states and then handle all topic in a cycle just as your struct,
but alway exists this kind of error, missing data maybe is a common thing, but your word is right.

maybe the foot judge have error, because I use effort control model in my simulation,
so it can be effect by the ground friction and get a wrong joint_states and foot judge.

Or you can give me someother ideas? Thank you again!

from serow.

mrsp avatar mrsp commented on July 17, 2024

Yes, determining which leg is the support and later on use it in the leg odometry computation is of vital importance. An inaccurate choice of support can compromise the accuracy of leg odometry by a great deal.

I strongly encourage you to read my latest work (ICRA2019) on gait phase estimation:
https://github.com/mrsp/gem

from serow.

crankler avatar crankler commented on July 17, 2024

Ok, I will read your paper, and learn from your help. Thank you again for your help.
I forget to say, these days I try to modify my configure, and now can use message filter for my computation, but threr still get a wrong result. At now I will try to find my error in code struct again.

from serow.

mrsp avatar mrsp commented on July 17, 2024

closed

from serow.

mrsp avatar mrsp commented on July 17, 2024

Hello Crankler

SEROW now supports quadruped robots if you are interested check it out.

Stelios

from serow.

Related Issues (6)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.