Bouncy Robot , Two Parent in Kinematic Tree and Considering Stall torque of Servos

Discussion in 'Modeling' started by Aswinkumar, May 29, 2020.

  1. Hi , Thanks for this great software , I've just got started with it and got lots of issues cleared from the forums and documentation.

    I ended up simulating an Hexapod ( This one to be precise : https://www.aliexpress.com/item/32757326561.html )

    I am facing three issues which I tried some solutions to solve but had no luck or not sure if that's the right way to do it.

    1. Two Parent in the Kinematic Tree :

    The Coax of the Hexapod is hinged both at the top and the Botton of the Upper and lower chassis respectively. I used the hinge joint to connect it at the top and at the bottom used equality connect to have 6 ball joints with the lower chassis , I assumed more than two ball joint would allow constrain the system to allow only one degree of freedom ( rotation on it's own axis ). I have also attached the robot.xml and though this works , is this the right way to approach the problem ? because if there was only one coax , I could have had the coax as the parent , that would have solved it ,but because I have 6 coax , I'm not sure how to implement it that way..

    Related attachment : robot.xml , two_parent.gif

    2. Bouncy Robot :

    I have provided approximate mass values and tried to adjust some values ( kp , damping , solref ) empirically but had no luck , the robot bounces off with very little force from it's legs , this is not observed in the actual robot. I am not sure how to approach this....

    Related Attachments : robot.xml , bouncy_real.gif , bouncy_sim.gif

    3. Stall Torque of Servos :

    In the actual robot , Servos have a limit of Stall torque after which they cannot withstand the weight and fall down , this is important as I'm working on building control algorithms for the robot and would try different height and methods. I am not sure on how to implement these either , I tried playing with the forcerange , damping and stiffness , but had no luck.

    Related attachments : robot.xml , stall_real.gif , stall_sim.gif

    Edit : This Repository Contains the STL files and XML to run it : https://github.com/aswinkumar1999/Hexapod-MuJoCo

    Also , I'm just getting started with MuJoCo , so please feel free to run it and point other mistakes I've made or better modeling techniques that I could have used..

    Thanks in Advance :)
     

    Attached Files:

    Last edited: May 29, 2020
  2. Hi

    I later figured out the mistakes that I made, I had the units all messed up.

    The Bot's STL files and positions were scaled up 1000 times when the mass was not. I tried both scaling up the mass and scaling down the stl files and positions in two separate files and testing them out. Both seemed to work identically, except the scaled-down version had ( kp , damping, stiffness ) all around 10-20, making it look neater and making it easier to tune the values.

    Regarding the Stall torque, I used the forcerange from the Servo's Datasheets and I later saw some videos and realised that the servo motor in my case did was not powered properly and the friction in the surface I tested was different, so accounting for that, Playing around with the values did seem to solve the issue.

    Still using the equality connect , doesn't seem much of a problem now , but as mentioned earlier , not sure if that's the right way to do that...

    Thanks