Collision avoidance is one of the most important and most commonly
performed behaviors in all animals. Once the artificial fish's
perception system detects a potential collision (see
Section
), it immediately acts to avoid
it. Collision avoidance with a static obstacle and with another fish
are implemented by the behavior routines
avoiding-static-obstacle and avoiding-fish, respectively.
They operate in much the same way: Given the relative position of an
obstacle, an appropriate action (e.g. left-turn-MC) is chosen subject
to the motor preferences imposed by other surrounding stimuli. Then
the proper control parameters for the chosen motor skill(s), such as the
speed and angle of turn, are calculated using the sensory information
about that obstacle as well as available motor preferences.
For efficiency the avoiding-fish routine treats the dynamic obstacle as a rectangular bounding box moving in a certain direction. Although collisions between fish cannot always be avoided, bounding boxes can easily be adjusted such that they almost always are, and the method is efficient.
| Xiaoyuan Tu | January 1996 |