isaac_ros_imu_bmi088

Source code on GitHub.

https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/repositories_and_packages/isaac_ros_nova/bosch_bmi088.png/

Overview

An IMU provides raw inertial data using an accelerometer and gyroscope as part of a perception for understanding of the robot and its environment.

The isaac_ros_imu_bmi088 driver provides support for BMI088 IMU that provides a high-performance 6-axis inertial sensor that allows for highly accurate measurement of orientation and detection of motion along three orthogonal axes.

Quickstart

Set Up Development Environment

  1. Set up your development environment by following the instructions in getting started.

  2. Clone isaac_ros_common under ${ISAAC_ROS_WS}/src.

    cd ${ISAAC_ROS_WS}/src && \
       git clone -b release-3.1 https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common.git isaac_ros_common
    
  3. (Optional) Install dependencies for any sensors you want to use by following the sensor-specific guides.

    Warning

    We strongly recommend installing all sensor dependencies before starting any quickstarts. Some sensor dependencies require restarting the Isaac ROS Dev container during installation, which will interrupt the quickstart process.

Build isaac_ros_imu_bmi088

  1. Launch the Docker container using the run_dev.sh script:

    cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
    ./scripts/run_dev.sh
    
  2. Install the prebuilt Debian package:

    sudo apt-get install -y ros-humble-isaac-ros-imu-bmi088
    

Run Launch File

  1. Continuing inside the Docker container, launch the BMI088 driver:

    ros2 launch isaac_ros_imu_bmi088 bmi088.launch.py
    

Visualize Results

  1. Open a new terminal inside the Docker container:

    cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
       ./scripts/run_dev.sh
    
  2. Echo the IMU data:

    ros2 topic echo /imu/imu
    

Troubleshooting

Isaac ROS Troubleshooting

For solutions to problems with Isaac ROS, see troubleshooting.

API

Usage

ros2 launch isaac_ros_imu_bmi088 bmi088.launch.py target_container:=<Target Container> namespace:=<Namespace> bmi_id:=<BMI ID> imu_frequency:=<IMU Frequency> nvpps_dev_file:=<NVPPS Dev Name> use_time_since_epoch:=<Use Time Since Epoch>

Bmi088Node

ROS Parameters

ROS Parameter

Type

Default

Description

imu_frequency

uint

100

IMU(Accelerometer and Gyroscope) Update Frequency (Hz)

bmi_id

uint

69

ID selecting which BMI088 IMU to use

ROS Topics Subscribed

ROS Topic

Interface

Description

correlated_timestamp

isaac_ros_nova_interfaces::msg::CorrelatedTimestamp

Timestamp correlation data.

ROS Topics Published

ROS Topic

Interface

Description

imu

sensor_msgs/Imu

The IMU data from BMI088.