Back To The Drawing Board

For remote controlled walking we need a new service - service which will read joystick input and translate it to gait details. The current implementation translates joystick input to commands like 'move straight', 'move around point', 'rotate' - which do not entirely fit the abilities of quadruped, so I decided to re-write it and re-write it next to 'gait service' so inputs are more or less internal.

Also, our walking gait got another 'parameter' - something along the line of turning-distance - a distance of a point on the side of the robot it will try to rotate around. More about that here: Driving

As per this picture:

GCC PiWars 2017 Robot Turning

We can calculate outer and inner circle and move lets along those circles rather than in straight forward to back (and back to forward in one go when leg is returning in the air). That way, when turning distance is really far from the robot (no matter which side), we will have really big circles which look like straight lines around robot and robot will walk in a straight line. When point is close, let's say 50-100mm, circles are going to be quite small and robot will try to turn relatively quickly. If point is very much in the centre of the robot - robot will turn on the spot!

And the last one is working well! Unfortunately, relatively tight turning radius ended up making the robot tip over as the 'inner' two legs barely move and then stay around the middle of the robot, while outer two move quite a lot, and the moment one of the outer legs are taken into the air - the robot would just tip on that side as other three legs would form really tiny triangle.

So, I went to search for different kind of gaits.

Current gait could be defined like this:

  • it has four phases
  • in each phase one leg is going from back to front position
  • while other three legs are moving for 1/3rd of that same path, 1/3rd apart from front to back

That way three legs are moving the 'body' forward. That gait has constant motion of the body. Also, improvement is to move the body forward when one of the back is going forward and to move body backward while front legs are moving forward. Unfortunately, that movement does not help when walking in tight circles as forward is not forward any more.

The next gait I tried was slightly different and ended up being slightly more stable and required less 'rearranging of the body position over the legs' than previous.

It can be described something like this:

  • it has 6 phases
  • in first phase back leg goes forward (other legs stay stationary)
  • in second phase front leg goes forward (other legs stay stationary)
  • all legs go 1/2 of the stride back (moving body forward)
  • back leg on the opposite side goes forward (other legs stay stationary)
  • front leg on the opposite side goes forward (other legs stay stationary)
  • all legs go 1/2 of the stride back (moving body forward)

Search The Internet It seems to be slightly slower than first gait (I've imaginatively called them 'cat walk' and 'cat2 walk'), but legs almost always form nice triangles where the CoG stays inside of them.

But, unfortunately moving in circles completely kills it - ‘inner’ legs are never in the right positions and when outer legs go to phase 1 or 4 where both are together in triangle - inner legs are not enough far apart (or on right place) so it tops out to back or front. It seems that the drawing board is calling us again. It is going to be a season for watching more videos!