robot control system specification language

Table of Contents

a lisp extension designed and described in [1], to specify a layer in .

The language assume a model of Definite State Machine of the layer.

Each state is of the following 4 types:

output
an output message -> actuator. (then enter a new state)
side effect
manipulate an internal variable of the layer (then enter a new state)
conditional dispatch
(if predicate stateA stateB). predicate use internal variable or inputs.
event dispatch
(cond predicateA stateA predicateB stateB predicateC stateC …).
(defmodule avoid 1
  :inputs (force heading)
  :outputs (command)
  :instance-vars (resultforce)
  :states
  ((nil (event-dispatch (and force heading) plan))
   (plan (setf resultforce (select-direction force heading))
         go)
   (go (conditional-dispatch (significant-force-p resultforce 1.0)
                             start
                             nil))
   (start (output command (follow-force resultforce))
          nil)))

Bibliography

[1]
R. Brooks, “A robust layered control system for a mobile robot,” Ieee journal on robotics and automation, vol. 2, no. 1, pp. 14–23, 1986, doi: 10.1109/JRA.1986.1087032.

Author: Linfeng He

Created: 2024-04-03 Wed 19:37