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.