-
Notifications
You must be signed in to change notification settings - Fork 4
Introduce ImuManager, Lis2mdlDriver & Lsm6dsoDriver Components #11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
lastFile:FprimeZephyrReference/Components/Imu/Imu.fpp
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces a new IMU (Inertial Measurement Unit) component to the FprimeZephyrReference project that interfaces with LIS2MDL magnetometer and LSM6DSO accelerometer/gyroscope sensors to provide telemetry data for acceleration, angular velocity, magnetic field, and temperature measurements.
- Creates a new passive IMU component with telemetry channels for sensor data
- Integrates the IMU component into the system topology and scheduling infrastructure
- Updates telemetry configuration to accommodate the new sensor data packets
Reviewed Changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| FprimeZephyrReference/project/config/TlmPacketizerCfg.hpp | Increases telemetry packet and bucket limits to accommodate new IMU telemetry |
| FprimeZephyrReference/ReferenceDeployment/Top/topology.fpp | Adds IMU instance and connects it to 1Hz rate group for periodic execution |
| FprimeZephyrReference/ReferenceDeployment/Top/instances.fpp | Defines IMU component instance with base ID and configuration |
| FprimeZephyrReference/ReferenceDeployment/Top/ReferenceDeploymentPackets.fppi | Creates new telemetry packet for IMU data and omits temperature channel |
| FprimeZephyrReference/Components/Imu/docs/sdd.md | Provides comprehensive documentation for IMU component design and requirements |
| FprimeZephyrReference/Components/Imu/Imu.hpp | Header file defining IMU component class interface and member variables |
| FprimeZephyrReference/Components/Imu/Imu.fpp | F Prime component definition with telemetry structures and ports |
| FprimeZephyrReference/Components/Imu/Imu.cpp | Implementation of IMU component with sensor initialization and data collection |
| FprimeZephyrReference/Components/Imu/CMakeLists.txt | Build configuration for IMU component library |
| FprimeZephyrReference/Components/CMakeLists.txt | Adds IMU subdirectory to component build system |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Co-authored-by: Copilot <[email protected]>
dd722b9 to
649e44f
Compare
* add lis2mdl driver and implement in imu component * fix formatting
* Update README.md * Create lmsd6dsoDriver component * create ports for sensor reading output * fix port naming issue * Use custom board definition * Remove commented config * Moving prj.conf sensors to board definition * Add d board * Try referencing c definitions in d board * Making a common v5 board definition * Fix readme * Minor Makefile, Readme and cmake presets fixes * change lsm6dso internal structs to carry F64 and added output ports to imu * removed lmsdso init from imu constructor * remove old sensor reading from imu * add lms6dso driver to topology * change base id to allow for lis2mdl driver * remove line endings * add channel retrieval during sensor data * Ensure submodules are downloaded before venv is created * Fix infinit submodule make target recursion... --------- Co-authored-by: ineskhou <[email protected]> Co-authored-by: Nate Gay <[email protected]> Co-authored-by: Nate Gay <[email protected]> Co-authored-by: Saidi Adams <[email protected]> Co-authored-by: Michael Pham <[email protected]>
… schema, update SDDs
…-core-reference into imu2
…-core-reference into imu2
…ges_saidi Imu Driver Manager Updates
ineskhou
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Im a big fan
Mikefly123
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
NOTE: Understood edge case behavior where the integration tests may fail if the sensors return an (unlikely) perfect 0.0 value.
This pull request introduces a new ImuManager (Inertial Measurement Unit) component to the Fprime Zephyr Reference deployment. The ImuManager component interfaces with hardware sensors to provide acceleration, angular velocity, magnetic field, and temperature telemetry.
ImuManagercomponent. The component reads data from LSM6DSO and LIS2MDL sensors and outputs acceleration, angular velocity, and magnetic field as telemetry.Drv/Lsm6dsoDrivercomponent. This component provides ports and events for reading the acceleration, angular velocity, and its temperature.Drv/Lis2mdlDrivercomponent. This component provides ports and events for reading the magnetic field.Deployment Integration:
imuManagercomponent in the deployment's FPP instance and topology files, and connected itsrunhandler to the 10Hz rate group.Telemetry and Packetizer Configuration:
TlmPacketizerCfg.hppto accommodate the new IMU telemetry.