Trot Gait

Write Software

Aside of watching the physical properties of the existing robots, I've paid attention to how amateur robots solve walking. Most of them use much simpler gait to move about. Instead of trying to balance over three legs - this gait does much simpler stuff: raising two opposite legs (for instance front left and back right) to move them forward, while deliberately pausing down other two legs (in this example front right and back left) down making robot going slightly up. That way only two legs are moving body to direction of movement while two legs travel to the new position.

Read more…

Comments

Servos for Dinky

Build a Prototype

Until now, I’ve only had some experience with simple hobby servos (the cheaper the better, I thought, never bothering with much research or trying to pick specific types/brands or looking at parameters like torque – just tried to use whatever I could get, hoping for the best). Hobby servos are of course well understood and work reasonably well for robots, but their control method is a bit crude (no position feedback) and not very accurate.

When looking around for various robot arm projects for inspiration, I frequently came across the Dynamixel servos from Robotis and was intrigued, wanting to try something “serious” this time.

Read more…

Comments

Narrow Body

Build A Prototype

After watching many videos of Boston Dynamics Spot, Unitree A1 and similar, all have one thing in common - their body is slick and narrow, while Flig's first prototype more like square. Flig's legs in this format are equally distanced front to back and left to right. So, after a few sessions with FreeCAD here's what I've got to:

Flig PDM3 FreeCAD

Read more…

Comments

Finding Apples with OpenCV

Solve Challenge

When I first started to think about the Nature’s Bounty challenge, I decided to try and find a way to automatically detect apples using a camera and OpenCV. My thinking was roughly:

  1. Apples are of a known size and colour (and there is nothing else around that’s round or red).
  2. Apple detection should be relatively generic, in the sense that we shouldn’t rely too much on knowledge about their expected positions on the tree.
  3. We’re only detecting apples, not tree branches (so apples are just “floating” in space, and we can grab them freely – but we might try to do this “cautiously”, expecting some invisible branches might be in the way).
  4. Apple detection should be as simple and efficient as possible (better to refine readings continuously as we get closer than to try something “perfect” that might be too slow or resource-hungry).

Read more…

Comments

Walking In The Straight Line And Turning While Walking

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-distsance - a distance of a point on the side of the robot it will try to rotate around. More about that here: Driving

Read more…

Comments

Speed Issue

Solve Maths Problems

Movement of legs in gaits and otherwise are currently defined by fixed 'speed' - amount of time needed for a phase or movement to complete. Those speeds are usually set to quite low values and never anywhere near what existing servos can do.

Let's try something different now. Since we have the ability to measure current of each servo (or pair of servos, but if we move only one that would be one servo's current), we can use it to calculate a servo's speed (against manufacturer's specs) when there is no load on the servo and then store that value against calibration details to be used later.

We can use servo speeds to calculate how fast we can move legs - with a safety margin, of course.

Read more…

Comments