|
oscp_ros2_driver repositorymagcal_wrapper oscp_imu_libraries oscp_imu_driver oscp_imu_msgs |
ROS Distro
|
Repository Summary
| Description | |
| Checkout URI | https://github.com/OSCPS/oscp_ros2_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-19 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| magcal_wrapper | 1.0.1 |
| oscp_imu_libraries | 1.0.1 |
| oscp_imu_driver | 1.0.1 |
| oscp_imu_msgs | 1.0.1 |
README
OSCP IMU ROS2 Driver (oscp_imu_driver)
Lightweight, configurable ROS 2 driver for OSCP-family IMUs. The node decodes the device’s operating frames and publishes both native OSCP frame messages and standard ROS sensor_msgs types.
Supported ROS 2 distributions
| ROS 2 distro | Branch | Ubuntu | CI |
|---|---|---|---|
| Lyrical | lyrical |
26.04 | |
| Jazzy | jazzy |
24.04 | |
| Humble | humble |
22.04 |
Overview
- Supported outputs: raw IMU frames, quaternion, Euler angles, rotation matrix, GNSS (if available), and standard ROS
sensor_msgs(Imu,MagneticField,Temperature). - Designed for real-time/high-rate telemetry; uses
SensorDataQoSfor publishers and subscribers by default in code.
Features
- Multi-format IMU output (native OSCP messages and standard ROS messages)
- ROS 2 native integration (rclcpp, action/service support)
- Configurable runtime parameters via YAML/launch
- Lightweight serial/CAN-FD transport layer
Installation
Clone into your ROS 2 workspace and build:
cd ~/ros2_ws/src
git clone -b jazzy https://github.com/OSCPS/oscp_ros2_driver # or -b humble
cd ..
rosdep update
rosdep install --from-paths src -y --ignore-src --rosdistro "$ROS_DISTRO"
colcon build --packages-select oscp_imu_driver
source install/setup.bash
Usage
Launch the IMU node using the provided launch file and config YAML:
ros2 launch oscp_imu_driver oscp_imu.launch.py config_file:=default.yaml
You can override node parameters via the launch file or with --ros-args -p.
Launch / Config Parameters
The node reads parameters from a YAML file passed as config_file to the launch. Key parameters include:
-
device(string): serial device (default/dev/ttyUSB0) -
baudrate(int): serial baud rate (default921600) -
frame_id(string): TF frame id for published messages (defaultimu_link) -
operating_mode(string): e.g.MEDIUM(affects internal IMU rates) -
publish_standard_ros(bool): enable publishingsensor_msgs::Imu+ others -
publish_oscp_raw(bool): enable native/oscp/rawmessages -
publish_oscp_quat(bool): enable native/oscp/quatmessages -
publish_oscp_euler(bool): enable native/oscp/eulermessages -
publish_oscp_rot(bool): enable native/oscp/rotmessages -
publish_oscp_gnss(bool): enable native/oscp/gnssmessages -
watchdog_timeout_ms(double): timeout for frame watchdog -
parser_stats_log_interval_s(double): interval to log parser stats (0 disables)
Refer to src/oscp_ros2_driver/oscp_imu_driver/config/default.yaml for the full default set.
Topics
Native OSCP frame topics (types are in oscp_imu_msgs):
-
/oscp/raw(oscp_imu_msgs::msg::OscpRaw) -
/oscp/quat(oscp_imu_msgs::msg::OscpQuat) -
/oscp/euler(oscp_imu_msgs::msg::OscpEuler) -
/oscp/rot(oscp_imu_msgs::msg::OscpRot) -
/oscp/gnss(oscp_imu_msgs::msg::OscpGnss)
Standard ROS topics:
-
/oscp/imu/data(sensor_msgs::msg::Imu) -
/oscp/imu/mag(sensor_msgs::msg::MagneticField) -
/oscp/imu/temp(sensor_msgs::msg::Temperature)
QoS Guidance
For high-rate IMU telemetry, use SensorDataQoS in code for publishers/subscribers. Example (C++):
auto qos = rclcpp::SensorDataQoS();
qos.keep_last(1000);
publisher = this->create_publisher<oscp_imu_msgs::msg::OscpRaw>("/oscp/raw", qos);
Notes:
- The
ros2 topic hzCLI in this ROS 2 distribution does not accept QoS arguments; it subscribes with default QoS. Useros2 topic echowith a QoS profile for QoS-matching CLI checks, or run a small subscriber node. - Example (CLI QoS-aware echo):
```bash
File truncated at 100 lines see the full file
CONTRIBUTING
|
oscp_ros2_driver repositorymagcal_wrapper oscp_imu_libraries oscp_imu_driver oscp_imu_msgs |
ROS Distro
|
Repository Summary
| Description | |
| Checkout URI | https://github.com/OSCPS/oscp_ros2_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-19 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| magcal_wrapper | 1.0.1 |
| oscp_imu_libraries | 1.0.1 |
| oscp_imu_driver | 1.0.1 |
| oscp_imu_msgs | 1.0.1 |
README
OSCP IMU ROS2 Driver (oscp_imu_driver)
Lightweight, configurable ROS 2 driver for OSCP-family IMUs. The node decodes the device’s operating frames and publishes both native OSCP frame messages and standard ROS sensor_msgs types.
Supported ROS 2 distributions
| ROS 2 distro | Branch | Ubuntu | CI |
|---|---|---|---|
| Lyrical | lyrical |
26.04 | |
| Jazzy | jazzy |
24.04 | |
| Humble | humble |
22.04 |
Overview
- Supported outputs: raw IMU frames, quaternion, Euler angles, rotation matrix, GNSS (if available), and standard ROS
sensor_msgs(Imu,MagneticField,Temperature). - Designed for real-time/high-rate telemetry; uses
SensorDataQoSfor publishers and subscribers by default in code.
Features
- Multi-format IMU output (native OSCP messages and standard ROS messages)
- ROS 2 native integration (rclcpp, action/service support)
- Configurable runtime parameters via YAML/launch
- Lightweight serial/CAN-FD transport layer
Installation
Clone into your ROS 2 workspace and build:
cd ~/ros2_ws/src
git clone -b jazzy https://github.com/OSCPS/oscp_ros2_driver # or -b humble
cd ..
rosdep update
rosdep install --from-paths src -y --ignore-src --rosdistro "$ROS_DISTRO"
colcon build --packages-select oscp_imu_driver
source install/setup.bash
Usage
Launch the IMU node using the provided launch file and config YAML:
ros2 launch oscp_imu_driver oscp_imu.launch.py config_file:=default.yaml
You can override node parameters via the launch file or with --ros-args -p.
Launch / Config Parameters
The node reads parameters from a YAML file passed as config_file to the launch. Key parameters include:
-
device(string): serial device (default/dev/ttyUSB0) -
baudrate(int): serial baud rate (default921600) -
frame_id(string): TF frame id for published messages (defaultimu_link) -
operating_mode(string): e.g.MEDIUM(affects internal IMU rates) -
publish_standard_ros(bool): enable publishingsensor_msgs::Imu+ others -
publish_oscp_raw(bool): enable native/oscp/rawmessages -
publish_oscp_quat(bool): enable native/oscp/quatmessages -
publish_oscp_euler(bool): enable native/oscp/eulermessages -
publish_oscp_rot(bool): enable native/oscp/rotmessages -
publish_oscp_gnss(bool): enable native/oscp/gnssmessages -
watchdog_timeout_ms(double): timeout for frame watchdog -
parser_stats_log_interval_s(double): interval to log parser stats (0 disables)
Refer to src/oscp_ros2_driver/oscp_imu_driver/config/default.yaml for the full default set.
Topics
Native OSCP frame topics (types are in oscp_imu_msgs):
-
/oscp/raw(oscp_imu_msgs::msg::OscpRaw) -
/oscp/quat(oscp_imu_msgs::msg::OscpQuat) -
/oscp/euler(oscp_imu_msgs::msg::OscpEuler) -
/oscp/rot(oscp_imu_msgs::msg::OscpRot) -
/oscp/gnss(oscp_imu_msgs::msg::OscpGnss)
Standard ROS topics:
-
/oscp/imu/data(sensor_msgs::msg::Imu) -
/oscp/imu/mag(sensor_msgs::msg::MagneticField) -
/oscp/imu/temp(sensor_msgs::msg::Temperature)
QoS Guidance
For high-rate IMU telemetry, use SensorDataQoS in code for publishers/subscribers. Example (C++):
auto qos = rclcpp::SensorDataQoS();
qos.keep_last(1000);
publisher = this->create_publisher<oscp_imu_msgs::msg::OscpRaw>("/oscp/raw", qos);
Notes:
- The
ros2 topic hzCLI in this ROS 2 distribution does not accept QoS arguments; it subscribes with default QoS. Useros2 topic echowith a QoS profile for QoS-matching CLI checks, or run a small subscriber node. - Example (CLI QoS-aware echo):
```bash
File truncated at 100 lines see the full file
CONTRIBUTING
|
oscp_ros2_driver repositorymagcal_wrapper oscp_imu_libraries oscp_imu_driver oscp_imu_msgs |
ROS Distro
|
Repository Summary
| Description | |
| Checkout URI | https://github.com/OSCPS/oscp_ros2_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-19 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| magcal_wrapper | 1.0.1 |
| oscp_imu_libraries | 1.0.1 |
| oscp_imu_driver | 1.0.1 |
| oscp_imu_msgs | 1.0.1 |
README
OSCP IMU ROS2 Driver (oscp_imu_driver)
Lightweight, configurable ROS 2 driver for OSCP-family IMUs. The node decodes the device’s operating frames and publishes both native OSCP frame messages and standard ROS sensor_msgs types.
Supported ROS 2 distributions
| ROS 2 distro | Branch | Ubuntu | CI |
|---|---|---|---|
| Lyrical | lyrical |
26.04 | |
| Jazzy | jazzy |
24.04 | |
| Humble | humble |
22.04 |
Overview
- Supported outputs: raw IMU frames, quaternion, Euler angles, rotation matrix, GNSS (if available), and standard ROS
sensor_msgs(Imu,MagneticField,Temperature). - Designed for real-time/high-rate telemetry; uses
SensorDataQoSfor publishers and subscribers by default in code.
Features
- Multi-format IMU output (native OSCP messages and standard ROS messages)
- ROS 2 native integration (rclcpp, action/service support)
- Configurable runtime parameters via YAML/launch
- Lightweight serial/CAN-FD transport layer
Installation
Clone into your ROS 2 workspace and build:
cd ~/ros2_ws/src
git clone -b jazzy https://github.com/OSCPS/oscp_ros2_driver # or -b humble
cd ..
rosdep update
rosdep install --from-paths src -y --ignore-src --rosdistro "$ROS_DISTRO"
colcon build --packages-select oscp_imu_driver
source install/setup.bash
Usage
Launch the IMU node using the provided launch file and config YAML:
ros2 launch oscp_imu_driver oscp_imu.launch.py config_file:=default.yaml
You can override node parameters via the launch file or with --ros-args -p.
Launch / Config Parameters
The node reads parameters from a YAML file passed as config_file to the launch. Key parameters include:
-
device(string): serial device (default/dev/ttyUSB0) -
baudrate(int): serial baud rate (default921600) -
frame_id(string): TF frame id for published messages (defaultimu_link) -
operating_mode(string): e.g.MEDIUM(affects internal IMU rates) -
publish_standard_ros(bool): enable publishingsensor_msgs::Imu+ others -
publish_oscp_raw(bool): enable native/oscp/rawmessages -
publish_oscp_quat(bool): enable native/oscp/quatmessages -
publish_oscp_euler(bool): enable native/oscp/eulermessages -
publish_oscp_rot(bool): enable native/oscp/rotmessages -
publish_oscp_gnss(bool): enable native/oscp/gnssmessages -
watchdog_timeout_ms(double): timeout for frame watchdog -
parser_stats_log_interval_s(double): interval to log parser stats (0 disables)
Refer to src/oscp_ros2_driver/oscp_imu_driver/config/default.yaml for the full default set.
Topics
Native OSCP frame topics (types are in oscp_imu_msgs):
-
/oscp/raw(oscp_imu_msgs::msg::OscpRaw) -
/oscp/quat(oscp_imu_msgs::msg::OscpQuat) -
/oscp/euler(oscp_imu_msgs::msg::OscpEuler) -
/oscp/rot(oscp_imu_msgs::msg::OscpRot) -
/oscp/gnss(oscp_imu_msgs::msg::OscpGnss)
Standard ROS topics:
-
/oscp/imu/data(sensor_msgs::msg::Imu) -
/oscp/imu/mag(sensor_msgs::msg::MagneticField) -
/oscp/imu/temp(sensor_msgs::msg::Temperature)
QoS Guidance
For high-rate IMU telemetry, use SensorDataQoS in code for publishers/subscribers. Example (C++):
auto qos = rclcpp::SensorDataQoS();
qos.keep_last(1000);
publisher = this->create_publisher<oscp_imu_msgs::msg::OscpRaw>("/oscp/raw", qos);
Notes:
- The
ros2 topic hzCLI in this ROS 2 distribution does not accept QoS arguments; it subscribes with default QoS. Useros2 topic echowith a QoS profile for QoS-matching CLI checks, or run a small subscriber node. - Example (CLI QoS-aware echo):
```bash
File truncated at 100 lines see the full file
CONTRIBUTING
|
oscp_ros2_driver repositorymagcal_wrapper oscp_imu_libraries oscp_imu_driver oscp_imu_msgs |
ROS Distro
|
Repository Summary
| Description | |
| Checkout URI | https://github.com/OSCPS/oscp_ros2_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-19 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| magcal_wrapper | 1.0.1 |
| oscp_imu_libraries | 1.0.1 |
| oscp_imu_driver | 1.0.1 |
| oscp_imu_msgs | 1.0.1 |
README
OSCP IMU ROS2 Driver (oscp_imu_driver)
Lightweight, configurable ROS 2 driver for OSCP-family IMUs. The node decodes the device’s operating frames and publishes both native OSCP frame messages and standard ROS sensor_msgs types.
Supported ROS 2 distributions
| ROS 2 distro | Branch | Ubuntu | CI |
|---|---|---|---|
| Lyrical | lyrical |
26.04 | |
| Jazzy | jazzy |
24.04 | |
| Humble | humble |
22.04 |
Overview
- Supported outputs: raw IMU frames, quaternion, Euler angles, rotation matrix, GNSS (if available), and standard ROS
sensor_msgs(Imu,MagneticField,Temperature). - Designed for real-time/high-rate telemetry; uses
SensorDataQoSfor publishers and subscribers by default in code.
Features
- Multi-format IMU output (native OSCP messages and standard ROS messages)
- ROS 2 native integration (rclcpp, action/service support)
- Configurable runtime parameters via YAML/launch
- Lightweight serial/CAN-FD transport layer
Installation
Clone into your ROS 2 workspace and build:
cd ~/ros2_ws/src
git clone -b jazzy https://github.com/OSCPS/oscp_ros2_driver # or -b humble
cd ..
rosdep update
rosdep install --from-paths src -y --ignore-src --rosdistro "$ROS_DISTRO"
colcon build --packages-select oscp_imu_driver
source install/setup.bash
Usage
Launch the IMU node using the provided launch file and config YAML:
ros2 launch oscp_imu_driver oscp_imu.launch.py config_file:=default.yaml
You can override node parameters via the launch file or with --ros-args -p.
Launch / Config Parameters
The node reads parameters from a YAML file passed as config_file to the launch. Key parameters include:
-
device(string): serial device (default/dev/ttyUSB0) -
baudrate(int): serial baud rate (default921600) -
frame_id(string): TF frame id for published messages (defaultimu_link) -
operating_mode(string): e.g.MEDIUM(affects internal IMU rates) -
publish_standard_ros(bool): enable publishingsensor_msgs::Imu+ others -
publish_oscp_raw(bool): enable native/oscp/rawmessages -
publish_oscp_quat(bool): enable native/oscp/quatmessages -
publish_oscp_euler(bool): enable native/oscp/eulermessages -
publish_oscp_rot(bool): enable native/oscp/rotmessages -
publish_oscp_gnss(bool): enable native/oscp/gnssmessages -
watchdog_timeout_ms(double): timeout for frame watchdog -
parser_stats_log_interval_s(double): interval to log parser stats (0 disables)
Refer to src/oscp_ros2_driver/oscp_imu_driver/config/default.yaml for the full default set.
Topics
Native OSCP frame topics (types are in oscp_imu_msgs):
-
/oscp/raw(oscp_imu_msgs::msg::OscpRaw) -
/oscp/quat(oscp_imu_msgs::msg::OscpQuat) -
/oscp/euler(oscp_imu_msgs::msg::OscpEuler) -
/oscp/rot(oscp_imu_msgs::msg::OscpRot) -
/oscp/gnss(oscp_imu_msgs::msg::OscpGnss)
Standard ROS topics:
-
/oscp/imu/data(sensor_msgs::msg::Imu) -
/oscp/imu/mag(sensor_msgs::msg::MagneticField) -
/oscp/imu/temp(sensor_msgs::msg::Temperature)
QoS Guidance
For high-rate IMU telemetry, use SensorDataQoS in code for publishers/subscribers. Example (C++):
auto qos = rclcpp::SensorDataQoS();
qos.keep_last(1000);
publisher = this->create_publisher<oscp_imu_msgs::msg::OscpRaw>("/oscp/raw", qos);
Notes:
- The
ros2 topic hzCLI in this ROS 2 distribution does not accept QoS arguments; it subscribes with default QoS. Useros2 topic echowith a QoS profile for QoS-matching CLI checks, or run a small subscriber node. - Example (CLI QoS-aware echo):
```bash
File truncated at 100 lines see the full file
CONTRIBUTING
|
oscp_ros2_driver repositorymagcal_wrapper oscp_imu_libraries oscp_imu_driver oscp_imu_msgs |
ROS Distro
|
Repository Summary
| Description | |
| Checkout URI | https://github.com/OSCPS/oscp_ros2_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-19 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| magcal_wrapper | 1.0.1 |
| oscp_imu_libraries | 1.0.1 |
| oscp_imu_driver | 1.0.1 |
| oscp_imu_msgs | 1.0.1 |
README
OSCP IMU ROS2 Driver (oscp_imu_driver)
Lightweight, configurable ROS 2 driver for OSCP-family IMUs. The node decodes the device’s operating frames and publishes both native OSCP frame messages and standard ROS sensor_msgs types.
Supported ROS 2 distributions
| ROS 2 distro | Branch | Ubuntu | CI |
|---|---|---|---|
| Lyrical | lyrical |
26.04 | |
| Jazzy | jazzy |
24.04 | |
| Humble | humble |
22.04 |
Overview
- Supported outputs: raw IMU frames, quaternion, Euler angles, rotation matrix, GNSS (if available), and standard ROS
sensor_msgs(Imu,MagneticField,Temperature). - Designed for real-time/high-rate telemetry; uses
SensorDataQoSfor publishers and subscribers by default in code.
Features
- Multi-format IMU output (native OSCP messages and standard ROS messages)
- ROS 2 native integration (rclcpp, action/service support)
- Configurable runtime parameters via YAML/launch
- Lightweight serial/CAN-FD transport layer
Installation
Clone into your ROS 2 workspace and build:
cd ~/ros2_ws/src
git clone -b jazzy https://github.com/OSCPS/oscp_ros2_driver # or -b humble
cd ..
rosdep update
rosdep install --from-paths src -y --ignore-src --rosdistro "$ROS_DISTRO"
colcon build --packages-select oscp_imu_driver
source install/setup.bash
Usage
Launch the IMU node using the provided launch file and config YAML:
ros2 launch oscp_imu_driver oscp_imu.launch.py config_file:=default.yaml
You can override node parameters via the launch file or with --ros-args -p.
Launch / Config Parameters
The node reads parameters from a YAML file passed as config_file to the launch. Key parameters include:
-
device(string): serial device (default/dev/ttyUSB0) -
baudrate(int): serial baud rate (default921600) -
frame_id(string): TF frame id for published messages (defaultimu_link) -
operating_mode(string): e.g.MEDIUM(affects internal IMU rates) -
publish_standard_ros(bool): enable publishingsensor_msgs::Imu+ others -
publish_oscp_raw(bool): enable native/oscp/rawmessages -
publish_oscp_quat(bool): enable native/oscp/quatmessages -
publish_oscp_euler(bool): enable native/oscp/eulermessages -
publish_oscp_rot(bool): enable native/oscp/rotmessages -
publish_oscp_gnss(bool): enable native/oscp/gnssmessages -
watchdog_timeout_ms(double): timeout for frame watchdog -
parser_stats_log_interval_s(double): interval to log parser stats (0 disables)
Refer to src/oscp_ros2_driver/oscp_imu_driver/config/default.yaml for the full default set.
Topics
Native OSCP frame topics (types are in oscp_imu_msgs):
-
/oscp/raw(oscp_imu_msgs::msg::OscpRaw) -
/oscp/quat(oscp_imu_msgs::msg::OscpQuat) -
/oscp/euler(oscp_imu_msgs::msg::OscpEuler) -
/oscp/rot(oscp_imu_msgs::msg::OscpRot) -
/oscp/gnss(oscp_imu_msgs::msg::OscpGnss)
Standard ROS topics:
-
/oscp/imu/data(sensor_msgs::msg::Imu) -
/oscp/imu/mag(sensor_msgs::msg::MagneticField) -
/oscp/imu/temp(sensor_msgs::msg::Temperature)
QoS Guidance
For high-rate IMU telemetry, use SensorDataQoS in code for publishers/subscribers. Example (C++):
auto qos = rclcpp::SensorDataQoS();
qos.keep_last(1000);
publisher = this->create_publisher<oscp_imu_msgs::msg::OscpRaw>("/oscp/raw", qos);
Notes:
- The
ros2 topic hzCLI in this ROS 2 distribution does not accept QoS arguments; it subscribes with default QoS. Useros2 topic echowith a QoS profile for QoS-matching CLI checks, or run a small subscriber node. - Example (CLI QoS-aware echo):
```bash
File truncated at 100 lines see the full file
CONTRIBUTING
|
oscp_ros2_driver repositorymagcal_wrapper oscp_imu_libraries oscp_imu_driver oscp_imu_msgs |
ROS Distro
|
Repository Summary
| Description | |
| Checkout URI | https://github.com/OSCPS/oscp_ros2_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-19 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| magcal_wrapper | 1.0.1 |
| oscp_imu_libraries | 1.0.1 |
| oscp_imu_driver | 1.0.1 |
| oscp_imu_msgs | 1.0.1 |
README
OSCP IMU ROS2 Driver (oscp_imu_driver)
Lightweight, configurable ROS 2 driver for OSCP-family IMUs. The node decodes the device’s operating frames and publishes both native OSCP frame messages and standard ROS sensor_msgs types.
Supported ROS 2 distributions
| ROS 2 distro | Branch | Ubuntu | CI |
|---|---|---|---|
| Lyrical | lyrical |
26.04 | |
| Jazzy | jazzy |
24.04 | |
| Humble | humble |
22.04 |
Overview
- Supported outputs: raw IMU frames, quaternion, Euler angles, rotation matrix, GNSS (if available), and standard ROS
sensor_msgs(Imu,MagneticField,Temperature). - Designed for real-time/high-rate telemetry; uses
SensorDataQoSfor publishers and subscribers by default in code.
Features
- Multi-format IMU output (native OSCP messages and standard ROS messages)
- ROS 2 native integration (rclcpp, action/service support)
- Configurable runtime parameters via YAML/launch
- Lightweight serial/CAN-FD transport layer
Installation
Clone into your ROS 2 workspace and build:
cd ~/ros2_ws/src
git clone -b jazzy https://github.com/OSCPS/oscp_ros2_driver # or -b humble
cd ..
rosdep update
rosdep install --from-paths src -y --ignore-src --rosdistro "$ROS_DISTRO"
colcon build --packages-select oscp_imu_driver
source install/setup.bash
Usage
Launch the IMU node using the provided launch file and config YAML:
ros2 launch oscp_imu_driver oscp_imu.launch.py config_file:=default.yaml
You can override node parameters via the launch file or with --ros-args -p.
Launch / Config Parameters
The node reads parameters from a YAML file passed as config_file to the launch. Key parameters include:
-
device(string): serial device (default/dev/ttyUSB0) -
baudrate(int): serial baud rate (default921600) -
frame_id(string): TF frame id for published messages (defaultimu_link) -
operating_mode(string): e.g.MEDIUM(affects internal IMU rates) -
publish_standard_ros(bool): enable publishingsensor_msgs::Imu+ others -
publish_oscp_raw(bool): enable native/oscp/rawmessages -
publish_oscp_quat(bool): enable native/oscp/quatmessages -
publish_oscp_euler(bool): enable native/oscp/eulermessages -
publish_oscp_rot(bool): enable native/oscp/rotmessages -
publish_oscp_gnss(bool): enable native/oscp/gnssmessages -
watchdog_timeout_ms(double): timeout for frame watchdog -
parser_stats_log_interval_s(double): interval to log parser stats (0 disables)
Refer to src/oscp_ros2_driver/oscp_imu_driver/config/default.yaml for the full default set.
Topics
Native OSCP frame topics (types are in oscp_imu_msgs):
-
/oscp/raw(oscp_imu_msgs::msg::OscpRaw) -
/oscp/quat(oscp_imu_msgs::msg::OscpQuat) -
/oscp/euler(oscp_imu_msgs::msg::OscpEuler) -
/oscp/rot(oscp_imu_msgs::msg::OscpRot) -
/oscp/gnss(oscp_imu_msgs::msg::OscpGnss)
Standard ROS topics:
-
/oscp/imu/data(sensor_msgs::msg::Imu) -
/oscp/imu/mag(sensor_msgs::msg::MagneticField) -
/oscp/imu/temp(sensor_msgs::msg::Temperature)
QoS Guidance
For high-rate IMU telemetry, use SensorDataQoS in code for publishers/subscribers. Example (C++):
auto qos = rclcpp::SensorDataQoS();
qos.keep_last(1000);
publisher = this->create_publisher<oscp_imu_msgs::msg::OscpRaw>("/oscp/raw", qos);
Notes:
- The
ros2 topic hzCLI in this ROS 2 distribution does not accept QoS arguments; it subscribes with default QoS. Useros2 topic echowith a QoS profile for QoS-matching CLI checks, or run a small subscriber node. - Example (CLI QoS-aware echo):
```bash
File truncated at 100 lines see the full file
CONTRIBUTING
|
oscp_ros2_driver repositorymagcal_wrapper oscp_imu_libraries oscp_imu_driver oscp_imu_msgs |
ROS Distro
|
Repository Summary
| Description | |
| Checkout URI | https://github.com/OSCPS/oscp_ros2_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-19 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| magcal_wrapper | 1.0.1 |
| oscp_imu_libraries | 1.0.1 |
| oscp_imu_driver | 1.0.1 |
| oscp_imu_msgs | 1.0.1 |
README
OSCP IMU ROS2 Driver (oscp_imu_driver)
Lightweight, configurable ROS 2 driver for OSCP-family IMUs. The node decodes the device’s operating frames and publishes both native OSCP frame messages and standard ROS sensor_msgs types.
Supported ROS 2 distributions
| ROS 2 distro | Branch | Ubuntu | CI |
|---|---|---|---|
| Lyrical | lyrical |
26.04 | |
| Jazzy | jazzy |
24.04 | |
| Humble | humble |
22.04 |
Overview
- Supported outputs: raw IMU frames, quaternion, Euler angles, rotation matrix, GNSS (if available), and standard ROS
sensor_msgs(Imu,MagneticField,Temperature). - Designed for real-time/high-rate telemetry; uses
SensorDataQoSfor publishers and subscribers by default in code.
Features
- Multi-format IMU output (native OSCP messages and standard ROS messages)
- ROS 2 native integration (rclcpp, action/service support)
- Configurable runtime parameters via YAML/launch
- Lightweight serial/CAN-FD transport layer
Installation
Clone into your ROS 2 workspace and build:
cd ~/ros2_ws/src
git clone -b jazzy https://github.com/OSCPS/oscp_ros2_driver # or -b humble
cd ..
rosdep update
rosdep install --from-paths src -y --ignore-src --rosdistro "$ROS_DISTRO"
colcon build --packages-select oscp_imu_driver
source install/setup.bash
Usage
Launch the IMU node using the provided launch file and config YAML:
ros2 launch oscp_imu_driver oscp_imu.launch.py config_file:=default.yaml
You can override node parameters via the launch file or with --ros-args -p.
Launch / Config Parameters
The node reads parameters from a YAML file passed as config_file to the launch. Key parameters include:
-
device(string): serial device (default/dev/ttyUSB0) -
baudrate(int): serial baud rate (default921600) -
frame_id(string): TF frame id for published messages (defaultimu_link) -
operating_mode(string): e.g.MEDIUM(affects internal IMU rates) -
publish_standard_ros(bool): enable publishingsensor_msgs::Imu+ others -
publish_oscp_raw(bool): enable native/oscp/rawmessages -
publish_oscp_quat(bool): enable native/oscp/quatmessages -
publish_oscp_euler(bool): enable native/oscp/eulermessages -
publish_oscp_rot(bool): enable native/oscp/rotmessages -
publish_oscp_gnss(bool): enable native/oscp/gnssmessages -
watchdog_timeout_ms(double): timeout for frame watchdog -
parser_stats_log_interval_s(double): interval to log parser stats (0 disables)
Refer to src/oscp_ros2_driver/oscp_imu_driver/config/default.yaml for the full default set.
Topics
Native OSCP frame topics (types are in oscp_imu_msgs):
-
/oscp/raw(oscp_imu_msgs::msg::OscpRaw) -
/oscp/quat(oscp_imu_msgs::msg::OscpQuat) -
/oscp/euler(oscp_imu_msgs::msg::OscpEuler) -
/oscp/rot(oscp_imu_msgs::msg::OscpRot) -
/oscp/gnss(oscp_imu_msgs::msg::OscpGnss)
Standard ROS topics:
-
/oscp/imu/data(sensor_msgs::msg::Imu) -
/oscp/imu/mag(sensor_msgs::msg::MagneticField) -
/oscp/imu/temp(sensor_msgs::msg::Temperature)
QoS Guidance
For high-rate IMU telemetry, use SensorDataQoS in code for publishers/subscribers. Example (C++):
auto qos = rclcpp::SensorDataQoS();
qos.keep_last(1000);
publisher = this->create_publisher<oscp_imu_msgs::msg::OscpRaw>("/oscp/raw", qos);
Notes:
- The
ros2 topic hzCLI in this ROS 2 distribution does not accept QoS arguments; it subscribes with default QoS. Useros2 topic echowith a QoS profile for QoS-matching CLI checks, or run a small subscriber node. - Example (CLI QoS-aware echo):
```bash
File truncated at 100 lines see the full file
CONTRIBUTING
|
oscp_ros2_driver repositorymagcal_wrapper oscp_imu_libraries oscp_imu_driver oscp_imu_msgs |
ROS Distro
|
Repository Summary
| Description | |
| Checkout URI | https://github.com/OSCPS/oscp_ros2_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-19 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| magcal_wrapper | 1.0.1 |
| oscp_imu_libraries | 1.0.1 |
| oscp_imu_driver | 1.0.1 |
| oscp_imu_msgs | 1.0.1 |
README
OSCP IMU ROS2 Driver (oscp_imu_driver)
Lightweight, configurable ROS 2 driver for OSCP-family IMUs. The node decodes the device’s operating frames and publishes both native OSCP frame messages and standard ROS sensor_msgs types.
Supported ROS 2 distributions
| ROS 2 distro | Branch | Ubuntu | CI |
|---|---|---|---|
| Lyrical | lyrical |
26.04 | |
| Jazzy | jazzy |
24.04 | |
| Humble | humble |
22.04 |
Overview
- Supported outputs: raw IMU frames, quaternion, Euler angles, rotation matrix, GNSS (if available), and standard ROS
sensor_msgs(Imu,MagneticField,Temperature). - Designed for real-time/high-rate telemetry; uses
SensorDataQoSfor publishers and subscribers by default in code.
Features
- Multi-format IMU output (native OSCP messages and standard ROS messages)
- ROS 2 native integration (rclcpp, action/service support)
- Configurable runtime parameters via YAML/launch
- Lightweight serial/CAN-FD transport layer
Installation
Clone into your ROS 2 workspace and build:
cd ~/ros2_ws/src
git clone -b jazzy https://github.com/OSCPS/oscp_ros2_driver # or -b humble
cd ..
rosdep update
rosdep install --from-paths src -y --ignore-src --rosdistro "$ROS_DISTRO"
colcon build --packages-select oscp_imu_driver
source install/setup.bash
Usage
Launch the IMU node using the provided launch file and config YAML:
ros2 launch oscp_imu_driver oscp_imu.launch.py config_file:=default.yaml
You can override node parameters via the launch file or with --ros-args -p.
Launch / Config Parameters
The node reads parameters from a YAML file passed as config_file to the launch. Key parameters include:
-
device(string): serial device (default/dev/ttyUSB0) -
baudrate(int): serial baud rate (default921600) -
frame_id(string): TF frame id for published messages (defaultimu_link) -
operating_mode(string): e.g.MEDIUM(affects internal IMU rates) -
publish_standard_ros(bool): enable publishingsensor_msgs::Imu+ others -
publish_oscp_raw(bool): enable native/oscp/rawmessages -
publish_oscp_quat(bool): enable native/oscp/quatmessages -
publish_oscp_euler(bool): enable native/oscp/eulermessages -
publish_oscp_rot(bool): enable native/oscp/rotmessages -
publish_oscp_gnss(bool): enable native/oscp/gnssmessages -
watchdog_timeout_ms(double): timeout for frame watchdog -
parser_stats_log_interval_s(double): interval to log parser stats (0 disables)
Refer to src/oscp_ros2_driver/oscp_imu_driver/config/default.yaml for the full default set.
Topics
Native OSCP frame topics (types are in oscp_imu_msgs):
-
/oscp/raw(oscp_imu_msgs::msg::OscpRaw) -
/oscp/quat(oscp_imu_msgs::msg::OscpQuat) -
/oscp/euler(oscp_imu_msgs::msg::OscpEuler) -
/oscp/rot(oscp_imu_msgs::msg::OscpRot) -
/oscp/gnss(oscp_imu_msgs::msg::OscpGnss)
Standard ROS topics:
-
/oscp/imu/data(sensor_msgs::msg::Imu) -
/oscp/imu/mag(sensor_msgs::msg::MagneticField) -
/oscp/imu/temp(sensor_msgs::msg::Temperature)
QoS Guidance
For high-rate IMU telemetry, use SensorDataQoS in code for publishers/subscribers. Example (C++):
auto qos = rclcpp::SensorDataQoS();
qos.keep_last(1000);
publisher = this->create_publisher<oscp_imu_msgs::msg::OscpRaw>("/oscp/raw", qos);
Notes:
- The
ros2 topic hzCLI in this ROS 2 distribution does not accept QoS arguments; it subscribes with default QoS. Useros2 topic echowith a QoS profile for QoS-matching CLI checks, or run a small subscriber node. - Example (CLI QoS-aware echo):
```bash
File truncated at 100 lines see the full file
CONTRIBUTING
|
oscp_ros2_driver repositorymagcal_wrapper oscp_imu_libraries oscp_imu_driver oscp_imu_msgs |
ROS Distro
|
Repository Summary
| Description | |
| Checkout URI | https://github.com/OSCPS/oscp_ros2_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-19 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| magcal_wrapper | 1.0.1 |
| oscp_imu_libraries | 1.0.1 |
| oscp_imu_driver | 1.0.1 |
| oscp_imu_msgs | 1.0.1 |
README
OSCP IMU ROS2 Driver (oscp_imu_driver)
Lightweight, configurable ROS 2 driver for OSCP-family IMUs. The node decodes the device’s operating frames and publishes both native OSCP frame messages and standard ROS sensor_msgs types.
Supported ROS 2 distributions
| ROS 2 distro | Branch | Ubuntu | CI |
|---|---|---|---|
| Lyrical | lyrical |
26.04 | |
| Jazzy | jazzy |
24.04 | |
| Humble | humble |
22.04 |
Overview
- Supported outputs: raw IMU frames, quaternion, Euler angles, rotation matrix, GNSS (if available), and standard ROS
sensor_msgs(Imu,MagneticField,Temperature). - Designed for real-time/high-rate telemetry; uses
SensorDataQoSfor publishers and subscribers by default in code.
Features
- Multi-format IMU output (native OSCP messages and standard ROS messages)
- ROS 2 native integration (rclcpp, action/service support)
- Configurable runtime parameters via YAML/launch
- Lightweight serial/CAN-FD transport layer
Installation
Clone into your ROS 2 workspace and build:
cd ~/ros2_ws/src
git clone -b jazzy https://github.com/OSCPS/oscp_ros2_driver # or -b humble
cd ..
rosdep update
rosdep install --from-paths src -y --ignore-src --rosdistro "$ROS_DISTRO"
colcon build --packages-select oscp_imu_driver
source install/setup.bash
Usage
Launch the IMU node using the provided launch file and config YAML:
ros2 launch oscp_imu_driver oscp_imu.launch.py config_file:=default.yaml
You can override node parameters via the launch file or with --ros-args -p.
Launch / Config Parameters
The node reads parameters from a YAML file passed as config_file to the launch. Key parameters include:
-
device(string): serial device (default/dev/ttyUSB0) -
baudrate(int): serial baud rate (default921600) -
frame_id(string): TF frame id for published messages (defaultimu_link) -
operating_mode(string): e.g.MEDIUM(affects internal IMU rates) -
publish_standard_ros(bool): enable publishingsensor_msgs::Imu+ others -
publish_oscp_raw(bool): enable native/oscp/rawmessages -
publish_oscp_quat(bool): enable native/oscp/quatmessages -
publish_oscp_euler(bool): enable native/oscp/eulermessages -
publish_oscp_rot(bool): enable native/oscp/rotmessages -
publish_oscp_gnss(bool): enable native/oscp/gnssmessages -
watchdog_timeout_ms(double): timeout for frame watchdog -
parser_stats_log_interval_s(double): interval to log parser stats (0 disables)
Refer to src/oscp_ros2_driver/oscp_imu_driver/config/default.yaml for the full default set.
Topics
Native OSCP frame topics (types are in oscp_imu_msgs):
-
/oscp/raw(oscp_imu_msgs::msg::OscpRaw) -
/oscp/quat(oscp_imu_msgs::msg::OscpQuat) -
/oscp/euler(oscp_imu_msgs::msg::OscpEuler) -
/oscp/rot(oscp_imu_msgs::msg::OscpRot) -
/oscp/gnss(oscp_imu_msgs::msg::OscpGnss)
Standard ROS topics:
-
/oscp/imu/data(sensor_msgs::msg::Imu) -
/oscp/imu/mag(sensor_msgs::msg::MagneticField) -
/oscp/imu/temp(sensor_msgs::msg::Temperature)
QoS Guidance
For high-rate IMU telemetry, use SensorDataQoS in code for publishers/subscribers. Example (C++):
auto qos = rclcpp::SensorDataQoS();
qos.keep_last(1000);
publisher = this->create_publisher<oscp_imu_msgs::msg::OscpRaw>("/oscp/raw", qos);
Notes:
- The
ros2 topic hzCLI in this ROS 2 distribution does not accept QoS arguments; it subscribes with default QoS. Useros2 topic echowith a QoS profile for QoS-matching CLI checks, or run a small subscriber node. - Example (CLI QoS-aware echo):
```bash
File truncated at 100 lines see the full file
CONTRIBUTING
|
oscp_ros2_driver repositorymagcal_wrapper oscp_imu_libraries oscp_imu_driver oscp_imu_msgs |
ROS Distro
|
Repository Summary
| Description | |
| Checkout URI | https://github.com/OSCPS/oscp_ros2_driver.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-19 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| magcal_wrapper | 1.0.1 |
| oscp_imu_libraries | 1.0.1 |
| oscp_imu_driver | 1.0.1 |
| oscp_imu_msgs | 1.0.1 |
README
OSCP IMU ROS2 Driver (oscp_imu_driver)
Lightweight, configurable ROS 2 driver for OSCP-family IMUs. The node decodes the device’s operating frames and publishes both native OSCP frame messages and standard ROS sensor_msgs types.
Supported ROS 2 distributions
| ROS 2 distro | Branch | Ubuntu | CI |
|---|---|---|---|
| Lyrical | lyrical |
26.04 | |
| Jazzy | jazzy |
24.04 | |
| Humble | humble |
22.04 |
Overview
- Supported outputs: raw IMU frames, quaternion, Euler angles, rotation matrix, GNSS (if available), and standard ROS
sensor_msgs(Imu,MagneticField,Temperature). - Designed for real-time/high-rate telemetry; uses
SensorDataQoSfor publishers and subscribers by default in code.
Features
- Multi-format IMU output (native OSCP messages and standard ROS messages)
- ROS 2 native integration (rclcpp, action/service support)
- Configurable runtime parameters via YAML/launch
- Lightweight serial/CAN-FD transport layer
Installation
Clone into your ROS 2 workspace and build:
cd ~/ros2_ws/src
git clone -b jazzy https://github.com/OSCPS/oscp_ros2_driver # or -b humble
cd ..
rosdep update
rosdep install --from-paths src -y --ignore-src --rosdistro "$ROS_DISTRO"
colcon build --packages-select oscp_imu_driver
source install/setup.bash
Usage
Launch the IMU node using the provided launch file and config YAML:
ros2 launch oscp_imu_driver oscp_imu.launch.py config_file:=default.yaml
You can override node parameters via the launch file or with --ros-args -p.
Launch / Config Parameters
The node reads parameters from a YAML file passed as config_file to the launch. Key parameters include:
-
device(string): serial device (default/dev/ttyUSB0) -
baudrate(int): serial baud rate (default921600) -
frame_id(string): TF frame id for published messages (defaultimu_link) -
operating_mode(string): e.g.MEDIUM(affects internal IMU rates) -
publish_standard_ros(bool): enable publishingsensor_msgs::Imu+ others -
publish_oscp_raw(bool): enable native/oscp/rawmessages -
publish_oscp_quat(bool): enable native/oscp/quatmessages -
publish_oscp_euler(bool): enable native/oscp/eulermessages -
publish_oscp_rot(bool): enable native/oscp/rotmessages -
publish_oscp_gnss(bool): enable native/oscp/gnssmessages -
watchdog_timeout_ms(double): timeout for frame watchdog -
parser_stats_log_interval_s(double): interval to log parser stats (0 disables)
Refer to src/oscp_ros2_driver/oscp_imu_driver/config/default.yaml for the full default set.
Topics
Native OSCP frame topics (types are in oscp_imu_msgs):
-
/oscp/raw(oscp_imu_msgs::msg::OscpRaw) -
/oscp/quat(oscp_imu_msgs::msg::OscpQuat) -
/oscp/euler(oscp_imu_msgs::msg::OscpEuler) -
/oscp/rot(oscp_imu_msgs::msg::OscpRot) -
/oscp/gnss(oscp_imu_msgs::msg::OscpGnss)
Standard ROS topics:
-
/oscp/imu/data(sensor_msgs::msg::Imu) -
/oscp/imu/mag(sensor_msgs::msg::MagneticField) -
/oscp/imu/temp(sensor_msgs::msg::Temperature)
QoS Guidance
For high-rate IMU telemetry, use SensorDataQoS in code for publishers/subscribers. Example (C++):
auto qos = rclcpp::SensorDataQoS();
qos.keep_last(1000);
publisher = this->create_publisher<oscp_imu_msgs::msg::OscpRaw>("/oscp/raw", qos);
Notes:
- The
ros2 topic hzCLI in this ROS 2 distribution does not accept QoS arguments; it subscribes with default QoS. Useros2 topic echowith a QoS profile for QoS-matching CLI checks, or run a small subscriber node. - Example (CLI QoS-aware echo):
```bash
File truncated at 100 lines see the full file