Mirror real robot using Bullet

Please don't post Bullet support questions here, use the above forums instead.
Post Reply
maiklof
Posts: 17
Joined: Wed Nov 20, 2013 10:01 am

Mirror real robot using Bullet

Post by maiklof » Tue Apr 28, 2015 7:29 pm

Hi,
I want to try to mirror the movements of a real robot for a research project. The idea is to get the rotation of each axis from the real robot controller via Ethernet, create a virtual robot using Bullet, and try to make the Bullet robot move "exactly" the same, or at least follow as close as possible, the real one.
I want to use Bullet because I want collision detection, and not just a visual representation.
I have worked a lot with different constraints before, but if I'm not wrong, the axis motors can't be controlled in position, just in speed. So, the only solution I can think is to implement a position controller (PID for example) on each axis motor to try to follow the real axis position. Ok, another solution could be to set each axis limit to the real axis position (Min=Max=real pos) continuously, to "force" the rotation, but it does not sound so nice, or?
Is there anyone who can have an idea how to approach this more efficiently?
Regards,
Mike

Basroil
Posts: 463
Joined: Fri Nov 30, 2012 4:50 am

Re: Mirror real robot using Bullet

Post by Basroil » Wed Apr 29, 2015 3:18 am

This is quite close to (a part of) my primary research, and not only can it be done, but it can be done with as much accuracy as full state models of the motor dynamics. Current trials with MX-28 type motors (~0.1 degree position read error when static, ~0.2 degrees when moving under max load, PID model accuracy ~0.7 degrees of error) are at ~0.5 degree error on a step function for loadings up to ~75% maximum loading (at ~4ms data latency), though lower loadings have lower error. The main catch is that you need to find a way to describe your motor in terms of target speed and target torque, and then you can use standard hinge constraints without issue. Using a PID when your motor doesn't would cause higher error, and forcing your motor to the right position kind of eliminates the purpose of collision reactions. Learn what the motors used do and try modeling them, you'll get reasonable results with rough estimates, and you can get amazing results if you get the right numbers.

maiklof
Posts: 17
Joined: Wed Nov 20, 2013 10:01 am

Re: Mirror real robot using Bullet

Post by maiklof » Wed Apr 29, 2015 7:38 am

Thanks for your reply Basroil! Could you share your knowledge and the approach with me? Do you have any paper I could read?
My research is not related to be able to mirror the robot itself, but this is something could help me to achieve my primary goal. Your results are really impressive, but I can tell you that I would be already really happy to have results half as good than yours ;).
I would be really thankful if you can help me. We can take it in private if you want.

Post Reply