1

The setup:

Rectangular platform with two sensors providing pitch and roll angles. Four articulated legs at the corners with actuators controlled by the software. Actuator position feedback is also available.

Using manual actuator control the platform is moved into some random position while standing on flat horizontal surface. The two angles and an average of the actuator positions recorded. Then the contraption is moved onto randomly inclined surface.

The goal:

Given previously recorded triplet of parameters move four actuators to get the platform into position with same attitude and same average altitude, with all four legs firmly on the ground.

The caveat:

The CoG of the platform is offset towards "rear" legs. As you probably already noticed, this makes the goal nondeterministic with four legs. With three legs the distance and two angles exactly define the solution regardless of CoG location. Furthermore, moving one leg changes pitch and roll, which are input values for other legs as well. This creates a crosstalk that potentially can cause oscillations without heavy dampening.

The ideas:

So far I came up with three possible implementations:

  1. Use four independent PID controllers. For each calculate an error as sum of 3 weighted errors (roll, pitch and height).
  2. Use three independent PID controllers for roll, pitch and height. Mix their outputs into four control signals.
  3. Use cascaded controllers for roll, pitch and height with the output of one stage mixed into the error of the next.

The question:

Am I on a right path with any of these, or am I completely off the rails?

Maple
  • 11,755
  • 2
  • 20
  • 56

1 Answers1

0

I assume a rigid platform, and legs in fixed orientation relative to the platform - essentially a table with individually controlled leg lengths. I also assume that the motion is “slow” so that inertial forces are of no consequence. This gets rid of the MIMO and crosstalk issues in practice.

As far as I can see, the number of actuators makes not much difference, and neither does the CoG location. The problem doesn’t have a single solution whether there’s three legs or ten.

The CoG location plays into the path planning, since it has to be kept within the support polygon.

The platform posture can be kinematically resolved into actuator positions, no matter the number of actuators. So that’s not a problem: sharing the load across actuators is a common technique after all.

In general, the problem is not much one of control - in practice the controller can be rather trivial. Just PID controllers for each individual actuator, following a preplanned path. Given that the legs have to slide on the “floor”, and there are no leg tip force sensors, there will be plenty of highly nonlinear slip-slide-grip friction forces. So, for very dynamic motion it’d be an almost uncontrollable system, unless the leg tips had low-friction contact with the ground (“sliding on ice”).

The biggest problem is really path planning. The goal is a trajectory that ends with a posture within the constraints you described. How to get there, and which “there” it is, requires solving an optimization problem with constraints defined by actuator force capacity, actuator length limits, and static stability due to the support polygon.

Once the path planning is done - and it is off-line, while the platform is stationary - the individual leg PID controller will play back the path, and that’s that. The assumption is that the control errors will remain small enough not to make the platform statically unstable, and in most cases this would be a reasonable assumption, especially if there are suitable margins added to constraints due path planning - so that during path playback, the physical constraints won’t be exceeded in spite of control loop errors, ie. the actuators won’t hit the end stops, the CoG won’t slip outside the support polygon, etc.

As it stands, the problem you describe lacks important detail - ie. whether you need static kinetics in path planning, or want to move fast enough for dynamic kinetics to play a role, how is the friction between the legs and the floor as the legs will necessarily slide one relative to another, etc.

Please draw a suitable kinematic diagram of the system that describes all joints/degrees of freedom at the very least.

And if you do want dynamic control where inertial forces play a role, the optimal way to do it is to run the path planner during the motion, so that the path plan includes any control errors that have accumulated so far. Path planner will be solving a convex optimization problem and you’ll have to pose the problem in a convex form. Whether it has a convex form is anyone’s guess until mathematical analysis is actually done, ie. I don’t know enough to say “yay or nay”.