orientation
This is a demonstration of real-time visualization of the attitude of a BNO055 IMU across a wireless network to a Bevy app using the Bissel middleware. The IMU is reporting the orientation at a rate of 10 Hz.
To enable quick builds, compile the orientation
module using dynamic linking
$ cd orientation
$ RUST_LOG=OFF cargo run --features bevy/dynamic
For cross-compiling the BNO055 IMU interface code for the Odroid-C4 SBC:
$ cd interface
$ cross build --release --target aarch64-unknown-linux-gnu
$ scp target/aarch64-unknown-linux-gnu/release/interface user@sbc-ip:~
The interface
executable should now present on the remote machine may need to be run as superuser at the start in order to access the IMU over I2C. In addition, the visualization app on the development computer should be running before starting the IMU interface code; the Bissel Node has a small grace period before the connection will time out, but will eventually error out if connection is not established relatively quickly.
Resources
Also, consider checking out the following:
- Bissel: The middleware being used to transmit state messages
- Bevy: The ECS game engine used to create the orientation visualizer
- Turtlesim: A ROS2 turtlesim clone built using the Bissel middleware and Bevy
or, me! Is your team interested Bissel, adding some autonomy to your project, or maybe just having another robotics engineer that likes making highly-reliable systems or figuring out why your system suddenly isn't working? I'm currently available for hire in either remote or in-person positions; feel free to check out some of my past work and reach out!
License
This project is licensed under the Mozilla Public LIcense, version 2.0 (MPL-2.0)