In long-duration autonomy applications, robots are deployed to perform tasks over long time scales. Examples include:
As a consequence of the long-term deployment, the robots will end up operating under unknown conditions, which were not planned and accounted for during the design phase. These scenarios offer a variety of challenges which are not encountered in any other discipline of robotics and unveil the potential fragility of traditional design and control techniques employed to build and program robots.
The fragility coming from a cost-optimization formulation may lead to sub-optimality or even infeasibility of
the designed controllers in presence of unmodeled phenomena. For this reason, a more desirable formulation is
the following constraint-based energy-minimization:
$$
\begin{aligned}
\underset{u}{\mathrm{minimize}} ~~& \| u \|^2\\
\mathrm{subject~to} ~~& g(x,u) \le 0,
\end{aligned}
$$
where \(x\) is the robot state, \(u\) its control effort and the constraint \(g(x,u) \le 0\) encodes the
execution of desired tasks.
Control barrier functions allow us to formulate a constrained-optimization-based control framework where
complex behaviors specified as high-level tasks in terms of set stability and set invariance conditions
are turned into constraints on the robot input.
A natural philosophical perspective
In philosophy, constraints-driven control may be recognized in Arthur Schopenhauer's theory according to which "A man can do what he wants, but not want what he wants", or the more practical "A man's actions are determined by necessity, external and internal" attributed to Albert Einstein.
References
A paramount problem in long-duration robot autonomy is the limited amount of energy that mobile robots can store in their batteries. Provided that there is enough power generated in the environment—e.g. by sunlight for solar-powered robots, or, more generally, by charging stations—, we can ensure that robots will never run out of energy while executing their tasks by solving the following optimization problem for the robot control input \(u\): $$ \begin{aligned} \underset{u,\delta}{\mathrm{minimize}} ~~& \| u \|^2 + \kappa \delta^2 \\ \mathrm{subject~to} ~~& g_{task}(x,u) \le \delta\\ ~~&g_{energy}(x,E,u) \le 0, \end{aligned} $$ which realizes the persistification of tasks. Here, \(E\) is the energy stored in the robot battery, and the task execution encoded by \(g_{task}\) is relaxed by \(\delta\in\mathbb R\), so that the energy constraint \(g_{energy}(x,E,u) \le 0\) can always be satisfied.
References
The SlothBot is a wire-traversing robot for long-term environmental monitoring applications. It is a solar-powered, slow-paced, energy-efficient robot (hence its name) capable of moving on a mesh of wires by switching between branching wires. The design objectives that drove the development of the SlothBot have been the following:
The mechanical structure of the SlothBot consists of two bodies connected by an actuated hinge. Each body (shown in the figure above), houses a tire driven by a DC motor. Wheels, as opposed to brachiation-based locomotion, make motion control simple, while, at the same time, allowing a safe motion on a mesh of wires. The two servo motors on each body allow for the opening of gaps in the top gears: this allows the SlothBot to switch between branching wires. The switching maneuver is shown in the sequence of figures below.
The switching mechanism of the SlothBot allows it to safely switch between branching wires. In fact, at each point in time, at least one of the two bodies is firmly hung on the wires. In the figures above, from left to right, we see the SlothBot switching from one branch to another. First, the top gears of the rightmost body open, allowing the first body to move onto the new branch. Once the first body is firmly attached to the new branch, the top gears of the second body open, letting the SlothBot complete the switching maneuver. The following videos describe locomotion principle and switching mechanism, and show the SlothBot in action.
References
Brushbots are ground mobile robots that exploit brushes and vibration motors for locomotion. The initial realization shown in the picture above was built by Jamison Go and used by Rowlan O'Flaherty (former undergraduate and PhD student, respectively, in the GRITS Lab). The next video shows its resuscitation after having been forgotten for several years.
Brushbots drive on brushes using vibrating motors. The vibrations generated by the motors make the brushes act like springs that randomly push the robot around. This randomness is the main source of problems, and therefore interest, when working with this robot. In the following, some of the attempts to model and control such a robot are reported:
Nevertheless, a way of reliably controlling these simple robots still remains elusive, unless more accurate mechanical designs are employed. See pictures below.
The following video shows these three robots going around the Robotarium.
The dream of a reliable and robust robot which is simple to build and control will drive the next steps of the research on the brushbots. In particular, this platform seems to be particularly suitable to experiment with machine learning and control, and their synergistic application to solve problems in robotics.
References
A team of 4 roboticists (Jeremy Cai, Yousef Emam, Siddharth Mayya and myself) spent a Saturday building 32
differential-drive-like brushbots from scratch. See pictures below for the highlights of the day.
Rome wasn't built in a day, a swarm of brushbots...almost!
These brushbots are featured in action in the following video, where they are deployed on the Robotarium to execute coordinated control algorithms.
References