Strange behavior of JointVelocityController in rrbot tutorial
Hi, the original rrbot module works fine as indicated in the tutorial. But the problem comes when I just change the joint controller of one joint (here, the joint1) from the position controller to the velocity controller (in the rrbot_control.yaml file and also in the controller launch file) and do not touch any other things, and then loads the controller:
joint1velocitycontroller: type: effort_controllers/JointVelocityController joint: joint1 pid: {p: 100.0, i: 0.01, d: 10.0}
The program either crashes:
Physics dynamic reconfigure ready. gzclient: /build/buildd/ogre-1.7.4/OgreMain/include/OgreAxisAlignedBox.h:252: void Ogre::AxisAlignedBox::setExtents(const Ogre::Vector3&, const Ogre::Vector3&): Assertion `(min.x <= max.x && min.y <= max.y && min.z <= max.z) && "The minimum corner of the box must be less than or equal to maximum corner"' failed.
or the whole robot looks strange as all the links are combined together (see capture here: https://docs.google.com/file/d/0B49go8f2Nr2gTTJzdl80ckxoOFk/edit?usp=sharing), and it does not rotate anymore. Thanks for any help!
Asked by mikegao88 on 2013-09-26 06:34:10 UTC
Answers
That crash usually means your model has "exploded". Some value has probably become NaN. You can submit an issue on bitbucket. In the meantime, try adjusting your PID gains. Start with much lower values and work your way up.
Asked by nkoenig on 2013-09-26 09:49:44 UTC
Comments
Thanks! You are quite right! It works fine again when I set a small pid value.
Asked by mikegao88 on 2013-09-26 15:01:17 UTC
I had a similar problem try adjusting pid values down also make sure your inertia is not set too high in your model. This will effect how high you have to set pid values to overcome inertia and friction forces.
Asked by rnunziata on 2013-09-26 12:18:31 UTC
Comments
Thanks for the suggestion!
Asked by mikegao88 on 2013-09-26 15:00:22 UTC
Comments