Files
ros2-assignments/doc/tests/IMUDataSimulator.md

2.1 KiB

IMU Data Simulator Unit Tests

Unit tests for the DataSimulator (IMU) node are implemented in src/g2_2025_odometry_pkg/test/test_imu_simulator.cpp using Google Test and ROS2 test utilities. The tests validate node initialization, message publishing, and data correctness.

Test Cases

1. NodeInitialization

Description: Verifies that the DataSimulator node can be created without errors.

  • Test Action: Create DataSimulator instance
  • Expected Result: No exceptions thrown during construction

2. MessagePublishing

Description: Tests that IMU messages are published on the correct topic.

  • Test Action:
    • Create subscription to simulated_imu_data topic
    • Create DataSimulator node
    • Spin both nodes for a short period
  • Expected Result: At least one sensor_msgs/msg/Imu message is received

3. MessageFrameId

Description: Verifies that published IMU messages have the correct frame_id.

  • Test Action:
    • Subscribe to simulated_imu_data
    • Receive a message
  • Expected Result: header.frame_id equals "imu_link"

4. LinearAccelerationValues

Description: Tests that linear acceleration values are valid (finite numbers).

  • Test Action:
    • Subscribe and receive IMU message
    • Check linear_acceleration fields
  • Expected Result:
    • linear_acceleration.x is finite
    • linear_acceleration.y is finite
    • linear_acceleration.z is finite

5. AngularVelocityValues

Description: Tests that angular velocity values are valid (finite numbers).

  • Test Action:
    • Subscribe and receive IMU message
    • Check angular_velocity fields
  • Expected Result:
    • angular_velocity.x is finite
    • angular_velocity.y is finite
    • angular_velocity.z is finite

Test Infrastructure

The test class IMUSimulatorTest provides:

  • Static SetUpTestSuite() and TearDownTestSuite() for ROS2 init/shutdown
  • Helper method setupBasicIMUParams() for setting up default test parameters

ROS2 Topics Used

Topic Message Type Direction
simulated_imu_data sensor_msgs/msg/Imu Published by node under test