mike4192/spotMicro

Not enough torque as power travels to the front legs in walking mode

Heizuke2 opened this issue · 2 comments

Hi I'm new to robotics and this is basically my second project. First off I had issues with the calibration it seemed as if sometimes the shoulder servo did not raise up as it should, in order to solve that I measured every angle and corrected it when needed when in standing position maybe this could be due to the second issue as well. This has been sort of solved
The second issue that I had and continue to have is a sort of voltage drop when running the walking and trotting mode. On walking mode since the sequence starts with the back legs, they are strong and raised all the way up but as it continues the and reaches the front legs, the shoulder servos move weak and don't raise all the way up. In trotting mode the legs do move but it does not raise all the way and it sort of drags on the floor.
Some background on the set up. I am using 2s Lipo 7.4v batteries as suggested; but instead of 1 battery I am using 2 of them in parallel to increase range. I attempted using a battery for each(Pi and servo controller) but obtained the same result. The servos are PDI-HV5523MG and for the wiring I followed the thread that was posted in #59. I read the community build and I saw that on their wiring they used 2 servo controllers rather than one, could this fix this issue? Has anyone else had this problem?
Things I've done so far:
-Removed bracket to reduce weight, lifted body for legs to more freely
-Work with the calibration on the each leg
-Measured the voltage drop from PWM it's 0.05V at servo 12
-Change the offset values of the stand_front_x_offset values
-Change wiring to replicate the exact way it was wired
-Soldered the wire as shown on #59

I'll attach a video of it, any help would be greatly appreciated
https://user-images.githubusercontent.com/88901311/129430598-47e18c6e-b103-4c3c-b7bc-20dca5d16b2a.mp4

Thank you, and sorry for the long post.

Thank you for the video and detailed question. It is humbling to see other's build this robot platform using my software and shared work from contributors.

I'm not sure voltage drop is an issue with your robot, a 0.05V drop would be pretty good IMO. Are you measuring voltage on the PWM (yellow) line? Or on the main power line (red to black)?

From your video, two things initially stand out:

  • It looks as if the lower leg joint (knee) servo isn't really moving at all during the walking gait. This would be a problem. Maybe similar issue to what your originally had with the shoulder joint?
  • Possibly unrelated to your issue is that the legs on your robot have little traction with the ground. A crude solution could be to apply something like electric tape the bottom of the feet to improve traction.

Additional questions to think about:

  • Have you tried propping up the robot body on a box and seeing if the legs follow the correct path when unloaded (i.e. swinging in free air)? You could substantially slow down the gait for easier inspection by increasing the overlap_time and swing_time config values for the gait being used.
  • Have you tried increasing the z_clearance config value to a larger value to see if you get any improvement? Similarly, apply this change if experimenting with the point above to verify a change occurs.
  • Is your battery fully charged? What is the capacity of the battery? Does it have a reasonable C (discharge rate) rating? My battery is a 2s 4000mah 20c battery, I believe.
  • I don't believe two servo controllers would make any difference. Ideally the setup should already have a direct battery to servo power connection. You can try and verify that the power rails on the servo control board are already all connected to each other with little to no resistance between them and the power input block.
  • It's possible having two batteries on the robot could be too much weight for it.
  • Have you tried controlling the robot in angle command mode (typing angle_cmd once the robot is standing) and using the directional keys to change the robot orientation? If so, verify all leg servos are moving as expected to achieve the commanded orientation.

Thank you for your response Mike. Sorry for not answering earlier I can't believe it's been 2 months, but I had an accident and was recovering for a while so I had the project on pause. Now that I am feeling better, I am able to work on it again. I was able to get it working by modifying the overall range of motion of the lower leg joint as you suggested. After redoing the leg by disassembling everything and calibrating it, the robot is moving better now. I feel that I should do the same for the upper joints but that's for later. I am now able to get the stomping you got from your video and it's more stable, I am playing with the swing_time and overlap_time at the spot_micro_motion_cmd.yaml to get it faster and more stable speed of each leg motion as I am trying to get it to move as fast as possible with reasonable stability. After some speed runs I realize that the friction is not sufficient as sometimes I get a slip from the shoes and I need to modify a few things may be different material or design for the shoes. Anyway, I just wanted to say thank you for your help. Have a great rest of the year!