This library helps communicate with the already setup Easy IMU Module in your PC or microcomputer-based cpp projects, after successful setup with the eimu_setup_application.
you can use it in your microcomputer robotics project running on linux (e.g Raspberry Pi, PC, etc.)
A simple way to get started is simply to try out and follow the example code in the src folder
- you'll need to install the
libseriallibrarysudo apt-get update sudo apt install libserial-dev
-- Download (by clicking on the green Code button above) or clone the repo into your PC using git clone
Note
you can use this command if you want to clone the repo:
git clone https://github.com/samuko-things-company/eimu_cpp.git
-
Ensure you have the Easy IMU Module is already calibrated.
-
Connect the Easy IMU Module to your PC or microcomputer
-
A simple way to get started is simply to try out and follow the example
read_imu.cppcode in the src folder. -
make, build and run the example code.
cd into the root directory
mkdir build (i.e create a folder named build)
enter the following command in the terminal in the root folder:
cmake -B ./build/cmake --build ./build/./build/read_imu -
You can follow the pattern used in the example
read_imu.cppin your own code and use the cpp library as fit.
-
connect to smc_driver shield module
EIMU eimu
eimu.connect("port_name or port_path")
eimu.clearDataBuffer() # returns bool -> success
-
set imu reference frame -> NWU (0), ENU (1), NED (2)
eimu.setWorldFrameId(frame_id)
-
get imu reference frame -> NWU (0), ENU (1), NED (2)
eimu.getWorldFrameId() # returns std::tuple -> (success, frame_id): bool, int
-
adjust filter gain
eimu.setFilterGain(gain)
-
read filter gain
eimu.getFilterGain() # returns std::tuple -> (success, gain): bool, float
-
read all IMU data (orientation - RPY, linear acceleration, angular velocity)
eimu.readImuData() # returns std::tuple -> (success, r, p, y, ax, ay, az, gx, gy, gz): bool, float, float, float, float, float, float, float, float, float
-
read Oreintation - Quaterninos
eimu.readQuat() # returns std::tuple -> (success, qw, qx, qy, qz): bool, float, float, float, float
-
read Oreintation - RPY
eimu.readRPY() # returns std::tuple -> (success, r, p, y): bool, float, float, float
-
read Linear Acceleration
eimu.readLinearAcc() # returns std::tuple -> (success, ax, ay, az): bool, float, float, float
-
read Gyro (Angular velocity)
eimu.readGyro() # returns std::tuple -> (success, gx, gy, gz): bool, float, float, float