Flock of Birds Library (libfob) provides an interface to the Flock of Birds hardware. Tedious and error prone tasks such as configuring the flock's data mode, sending commands to the flock, and decoding the data received from the flock are all hidden behind libfob's interface.
Programming the flock hardware can be hard. The programmer has to worry about in which format the flock returns data (pos/quat, quat, mat, pos, angles, pos/angles, etc.) Configuring the flock is error prone and hard to get correct. For older version of the Flock of Birds hardware, simply starting the flock can be a chore.
In contrast, libfob has been designed to be easy to use. The programmer simply tells the library the following:
- Serial port the flock is attached to (ex: "/dev/ttyS0").
- Hemisphere the flock should operate in (ex: "DOWN").
- Maximum speed the flock can operate ("FAST" for newer flock hardware "SLOW" for older hardware).
The programmer can then configure the flock on a per bird basis. Any combination of the following information can be retrieved from a bird in the flock:
At any time, the programmer can retrieve the above information in any of the following formats:
- Quaternion (represents orientation)
- Vector (represent position)
- 4x4 Matrix (represents position/orientation)
The programmer pays no penalty for retrieving data in one format over another. Internally libfob configures the flock's hardware to send data as fast as possible. libfob maintains multiple representations of the data for fast retrieval by the programmer.
libfob also provides facilities to correct orientation information for incorrectly installed bird sensors.
- fob::BUTTON_NONE was added.
- The code was fixed up for GCC 4.3.6.