sensor-fusion
Expert skill for multi-sensor fusion and state estimation using Kalman filtering. Implement EKF/UKF, configure robot_localization, fuse IMU, GPS, odometry, and visual sensors for robust localization.
npx skills add majiayu000/claude-skill-registry --skill sensor-fusion-a5c-ai-babysitter-2 --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
What it does
The skill provides multi-sensor fusion and state estimation using Kalman filtering and factor graph optimization. It includes implementations for Extended Kalman Filter (EKF) and Unscented Kalman Filter (UKF), configuration of the robot_localization package, IMU preintegration with bias estimation, GPS/RTK integration, wheel odometry fusion with slip compensation, and visual odometry integration. It also covers outlier rejection and covariances tuning, along with sensor delay compensation.
How it works
- robot_localization Configuration: Defines a YAML setup for EKF/UKF in ROS2, wiring IMU (/imu/data) and wheel odometry (/wheel_odom) into an EKF, including transform and noise parameters, plus a dual EKF setup: one for continuous odometry in the odom frame and another for global/localization in the map frame, and a NavSat transform node for GPS handling.
- Two-EKF Setup: Provides two separate EKF configurations (ekf_filter_node_odom and ekf_filter_node_map) to fuse IMU and odometry for odom frame, and to fuse odometry with GPS for global localization, respectively.
- Custom EKF Implementation: A Python-based Extended Kalman Filter class (RobotEKF) handling state as [x, y, z, roll, pitch, yaw, vx, vy, vz, wx, wy, wz], with a constant-velocity motion model, Jacobian calculation, IMU/odometry/GPS update methods, and a robust covariance update using Joseph form.
- IMU Preintegration: An IMUPreintegration class that accumulates delta_R, delta_v, delta_p over time using accelerometer and gyroscope data, with bias handling, Jacobians for bias correction, and a simplified covariance propagation for preintegrated measurements.
- Noise Covariance Tuning: Provides a function scaffold (tune_noise_covariances) for autonomously tuning Q and R via innovation analysis, using NEES/NEES-related metrics within an EKF context.
When to use it
Use when you need robust localization by fusing IMU, wheel odometry, GPS, and visual sensors in a ROS2 environment. Enable two EKFs for continuous odometry and global localization, and leverage IMU preintegration for optimization-based estimation.
What it can touch
- robot_localization package configuration files (YAML blocks in EKF setups)
- Python modules for RobotEKF and IMUPreintegration (predict and update steps with sensor inputs)
- GPS/NavSat transform node parameters for map/world frame alignment
- Data inputs: IMU (/imu/data), wheel odometry (/wheel_odom), odometry (/odometry/filtered), GPS (/gps/odom), and potentially visual odometry inputs (not explicitly spelled as a separate node but included in the overview)
Caveats
- Requires ROS2 with robot_localization and calibrated sensors (IMU, cameras, wheel encoders).
- The GPS update includes an outlier rejection step using Mahalanobis distance for robustness.
- The custom EKF and preintegration code assumes certain state representations and noise models; integration with real robot data may require adjustments to sensor topics and covariances.
- The skill’s content includes sizable code blocks; ensure compatibility with existing codebase styles and dependencies.
# sensor-fusion You are **sensor-fusion** - a specialized skill for multi-sensor fusion and state estimation using Kalman filtering and factor graph optimization. ## Overview This skill enables AI-powered sensor fusion including: - Implementing Extended Kalman Filter (EKF) for state estimation - Configuring Unscented Kalman Filter (UKF) for nonlinear systems - Setting up robot_localization package configuration - Implementing IMU preintegration and bias estimation - Configuring GPS/RTK integration with local coordinate frames - Implementing wheel odometry fusion with slip compensation - Setting up visual odometry integration - Configuring outlier rejection (Mahalanobis, chi-squared) - Tuning process and measurement noise covariances - Implementing sensor delay compensation ## Prerequisites - ROS2 with robot_localization package - Calibrated sensors (IMU, cameras, wheel encoders) - Understanding of coordinate frames (REP-105) - Sensor noise characteristics ## Capabilities ### 1. robot_localization Configuration Configure the ROS2 robot_localization package for EKF/UKF: ```yaml # ekf_localization.yaml ekf_filter_node: ros__parameters: # Coordinate frames map_frame: map odom_frame: od
- Overview
- Prerequisites
- Capabilities
- 1. robotlocalization Configuration
- 2. Two-EKF Setup (Odom + Map Frames)
- 3. Custom EKF Implementation
- 4. IMU Preintegration
- 5. Noise Covariance Tuning
- 6. Launch Configuration
- MCP Server Integration
- Best Practices
- Process Integration
- Output Format
- Constraints
What does the sensor-fusion skill do?
Expert skill for multi-sensor fusion and state estimation using Kalman filtering. Implement EKF/UKF, configure robot_localization, fuse IMU, GPS, odometry, and visual sensors for robust localization.
How do I install it?
Run `npx skills add majiayu000/claude-skill-registry --skill sensor-fusion-a5c-ai-babysitter-2 --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From majiayu000/claude-skill-registry, a repository with 534 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.
