Computation of stability polygons

This package provides an easy interface to compute stability polygons.

One should create a StabilityPolygon by setting the robotMass, like so:

import stabilipy
poly = stabilipy.StabilityPolygon(57.5)

By default, a 3D robust static polyhedron is defined, see stability.StabilityPolygon for more information.

It is then necessary to create some contacts, and insert them in the polygon:

pos = [[[0., 0., 1.]], [[1., 0., 0.]]]
normals = [[[0., 0., 1.]], [[0.1, 0.1, 1.]]]
mu = 0.7

contacts = [stabilipy.Contact(mu, np.array(p).T,
            for p, n in zip(pos, normals)]
poly.contacts = contacts

Note that the normals must be of norm 1. You can now launch the computation:

poly.compute(, epsilon=1e-3, maxIter=50)

Compute takes many arguments, see stability.StabilityPolygon.compute() but the most importants are:

  • Mode that determines if you want to reach a desired precision, iterate a number of times or best of both.
  • epsilon sets the precision
  • maxIter the number of iterations
  • A number of plot_something keyword arguments are available.


Indices and tables