Footfall placement

12 views
Skip to first unread message

Bob Smith

unread,
May 8, 2026, 1:16:44 PM (7 days ago) May 8
to hbrob...@googlegroups.com
On 5/7/26 11:16 PM, Chris Albertson wrote:
> Real question: How do you handle footfall placement? I notice that we humans have two modes.

I would love to work on this problem. I don't yet have the equipment
for it.

Conventional wisdom has a ball shaped foot. I'd go for an ankle and
foot, both of which would have sensors. The foot would be square
with four springs with pads at the ends (like cat paws). Cheap IR
phone distance sensors in each pad would indicate the deflection
of the pad and so (about) the weight on it. That there are four
lets you deal with slightly uneven surfaces. The foot pad is
rounded at the back like a heel so you can roll the foot onto the
surface.

The ankle would be have four springs going front, back, left, and
right. The back spring would be stronger than the front so when
unloaded the foot is tipped up a little. Sensors in the ankle
joint would indicate (about) the tilt of the ankle.

A distance sensor in the foot or shin give the distance from the
foot to the ground. This lets the controller decelerate the foot
before landing. We want to place the foot, not land on it.

Walking has a back foot pushing the body forward and placing the
front foot. As the body moves forward the weight transfers to
the front foot. When the weight is more on the front foot the
rear foot lifts for the next stride. This would be much easier
with a quadruped since two of the legs could provide balance.

The foot and ankle have seven sensors. Say the knee and shoulder
have another four, so a quadruped would have forty-four sensors.
Dealing with all this data would be a problem. I could try to
deal with this as a physics problem and compute the drive power
to the leg motors. More likely I'd want to use reinforcement
learning to build a neural net that is an associative memory
that, given the state of the robot (leg motor currents and leg
sensors), would give the next power levels for the leg motors.
I think I would start by trying to build a prototype that
more or less works, then build a simulation that describes the
prototype. The simulator could then drive the reinforcement
learning, putting the results back in the robot for testing.

This robot might not be as fast as a ball footed robot, but if
I wanted speed I'd use a drone. :)


Bob





Chris Albertson

unread,
May 8, 2026, 4:15:09 PM (7 days ago) May 8
to hbrob...@googlegroups.com
The reason for the ball-shaped fit is to allow for using nly a 3 DOF leg where orientatin of the foot is uncontrolled. A 2DOF allows flat feet while 3DOF allows contole of rotating the feet (pointing the toes left or right)

I looked at that and the big problem as the weight of the ankle.It makes a small dog-bot propibly impossible. Weight at the ends of the legs are a big deal, it is absiultly the last place you want to be adding mass.

What is gained with a spring loaded ankle? It is still a ball shaped foot but with a plat onder it. I think humans use there ankles to shift the effective contact point and generate torque used for balance. Passive sppring can’t do that.

But contact sensors are very helpful. The best ones are pressure-sensitive resistors, but simple contact provides quite a lot of information. A leg motion cycle in both bipeds and quadrupeds has two parts: “stance” and “swing”. Stance is when the foot is in ground contact and hence motionless relative to the ground. The contact sensor tells you when you are in stance phase. Otherwise, you literally have to guess. OK, contact sensors are all spring-loaded switches, so what they really are is a pressure sensor with binary output. 1-bit is enough. It says you are over some threshold. The seniors add almost no mass to the feet.

The robot ALWAYS knows the location of all of its feet. All it needs is to know the leg joint angle when the contact sensor closes, and it knows the location of the ground. You don’t need any sensor, just a switch.

So it one foot is one the floor and one is in the air. Even with no sensors you know the location of ther floor relative to both feet. You know the foot in contact is EXACTLY on the floor, not a millimeter above of below the floor and you know all the joint angles. I did this and di not even see it as a problem. The foot is 25mm above the floor bacuse I sent the commend to make it go 25mm above the foot that is incontact with the floor. Except for mechanical slop the logic is perfect on a flat floor.

Don’t think so much about feet “pushing”. The robot has considerable momentum, and “push” only happens when you need to change the robot’s velocity. In the normal case of walking at a constant speed, the amount of “push” is so small you can’t measure it. OK, no, so in odd cases like walking uphill or downhill, still the main force is gravity.. Everything else is trivial.


Don’t worry about the volume of sensor data. Even 100 sensors is at the level that a microcontroller can handle. 20 Hz is fast enough, and that only gives 20,000 samples per second.

But there are more sensors. You are commutating 3-phase motors in software using FOC, so you already know the torque, velocity, and position of every motor sampled at tsome very fast rate. You don’t need more sensors. Every joint already has two rotary sensors plus a current and voltage sensor.



The problem is not all of this. It’s pretty much a solved problem that you can read about. I tried building a quadruped. It can walk. I learned what problems are actually important. (1) Weight matters a lot, (2) motors need to be very performant, not to handle gross walking motion by to provide dynamic balance. (3) Not only does mass matter, but mass in the extremities matters, something like 10X more.

But again “everyone” knows this. The big is with a higher level control. I can move a foot to any X,y,z location at any speed within the design limits. That is easy. The hard part is deciding the values of x,y,z. OK those values are easy on a flat floor. But now try crossing a stream on stepping stones and smoothly transitioning from the flat floor to the stepping stones case.


You don’t solve any unsolved problem by building yet another robot. But answering in plain English a solution to a problem would go a long way to making practical robots possible. Of course, you need to validate the solution. Simulation first. Then try out on a MUCH cheaper quadruped before spending $30K on a research level humanoid.


The challenge I gave was to (1) walk on a flat path using just “cyclic motion generator” like all animals use. Then problem (2) , compute foot placements over stepping stones. But now #3, the hard part, transition from #1 to #2 without breaking stride. My guess is that you have to use a single walking algorithm for both #1 and #2 and the algorithm has a parameter that controls the amount of attention to where the feet are going. We don’t switch modes, rather we give varying amounts of attention to where to step.

The above is a good problem because it is had but still MUCH easier than cleaning a random kitchen that has not been seen before.


Ball feet, the sensor type and spring and if the structure is metal or plastic are all very unimportant if you cannot generate those x,y,z points.
> --
> You received this message because you are subscribed to the Google Groups "HomeBrew Robotics Club" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to hbrobotics+...@googlegroups.com.
> To view this discussion visit https://groups.google.com/d/msgid/hbrobotics/da14e52c-bb5a-419d-8d33-3a53fd91c93c%40linuxtoys.org.

Reply all
Reply to author
Forward
0 new messages