Page 1 of 1

Realistic tri-axial-accelerometer behavior for Inertial Measurement Unit

Posted: Sun Nov 11, 2018 3:04 pm
by richardbloemenkamp
Many legged robots have Inertial Measurement Units (IMU's) on them to determine whether they are falling over or other. Usually these IMU's have accelerometers in them to determine the direction of gravity. This gravity direction is then be used to work out the robot tilt angle. For Pybullet models one can directly get the tilt angle of any link of the robot, but this is less realistic.
A real tri-axial accelerometer is sensitive to both accelerations and gravity. Therefore it seems useful to have a function that can give a realistic response for a model IMU attached to a robot link.
I'm trying to make such a function myself, but I can imagine more robot-simulators would like to have it and it may be a nice extension for Pybullet.
Maybe someone else has already made this?

Re: Realistic tri-axial-accelerometer behavior for Inertial Measurement Unit

Posted: Fri Jan 17, 2020 4:32 pm
by RobertWagoner
Well said. I have just begun to review Pybullet and was lured in by the research paper "Sim-to-Real: Learning Agile Locomotion For Quadruped Robots".

I am also keen on understanding the relationship and connection between the simulated IMU, and physical implementation on the robot that is vague to me so far. I have been searching for the design of experiments and code in that paper with no success yet.

So far I like what is offered for the rapid results that can be obtained over other offerings I have tried, that are not open or take much more time for setup and usage. I look forward to the continued learning with Pybullet, and I will continue the search for more details on the topic and share if I find them.

--RW

Re: Realistic tri-axial-accelerometer behavior for Inertial Measurement Unit

Posted: Sun Jan 19, 2020 8:39 pm
by LocknutBushing
Bumping this as it is highly relevant to me as well.

Re: Realistic tri-axial-accelerometer behavior for Inertial Measurement Unit

Posted: Tue Jan 21, 2020 10:45 pm
by RobertWagoner
During my recent search on the weekend I found two interesting repositories. I was able to eventually begin reviewing and running the sims, it's always a challenge getting the environments setup with all the different dependencies. Persistence prevailed!

The SpotMicoAi project has reference to a Sim2Real function getIMU, I'm still diving in to studying all the details, however this looks very promising and Interaction with individuals has been encouraging.

https://github.com/nicrusso7/rex-gym

https://gitlab.com/custom_robots/spotmicro

File: \nvidia-jetson-nano-master\Core\spotmicroai.py
...
def getIMU(self):
_, bodyOrn = p.getBasePositionAndOrientation(self.quadruped)
linearVel, angularVel = p.getBaseVelocity(self.quadruped)
return bodyOrn,linearVel,angularVel
...

--RW