Low-level hardware abstraction layer for reading data from a Vicon motion capture system. > ***Special Thanks*** to the > [Novel Engineering of Swarm Technology](https://nestlab.net/) (**NEST**) lab > at Worcester Polytechnic Institute > for providing a reference usage of the Vicon APIs, and > providing us with access to their Vicon systems for testing this crate. ## Using this Crate The documentation for this crate can be generated by running `cargo doc`; the generated docs will be written to `release/`. Although the _actual_ Vicon data stream SDK can only be used with an _actual_ Vicon data stream, this crate exposes a single `HasViconHardware` trait which can be compiled on any host. This trait can be used to create mock implementations of the Vicon data stream, which systems can use for integration testing or simulation when an actual Vicon is unavailable. ## Compiling on a Linux Host Before building this crate, or a Crate _depending_ on this crate, you need to: 1. Install Rust. 2. Install Clang. Once these tools are installed, you can build this crate by running: 1. `cargo build --release` To _run_ this crate (or crates depending on it), you will need to ensure all the `.so` files in [`vendor/libvicon`](vendor/libvicon/) are available on your `LD_LIBRARY_PATH`. ## License and Contributions Copyright 2024 Alicorn Systems, Inc. Licensed under the GNU Affero General Public License version 3, as published by the Free Software Foundation. Refer to [the license file](LICENSE.txt) for more information. The files within `vendor/` retain their original copyrights and licenses, and are included in this repository to simplify the build process for downstream users.