Skip to content

Latest commit

 

History

History
174 lines (130 loc) · 9.58 KB

README.md

File metadata and controls

174 lines (130 loc) · 9.58 KB

RBF GNSS INS Driver

Overview

The ROBINS/GNSS INS System ROS2 driver is a software component designed to interface with a Global Navigation Satellite System (GNSS) module combined with an Inertial Navigation System (INS). The driver enables ROS2-based applications to access and utilize the raw GNSS and INS data for localization, navigation, and other related tasks.

Maintainer: Robeff Technology

Table of Contents

Features

  • ROS2 Compatibility: Fully compatible with the ROS2 (Robot Operating System 2) ecosystem.
  • GNSS Data: Reads raw data from the GNSS module, including satellite positions, timestamps, position, velocity, and other relevant information.
  • INS Data: Retrieves data from the Inertial Navigation System, such as roll, pitch, and yaw angles.
  • 6-DOF IMU Data: Provides data from the built-in ADIS16470 6-DOF IMU.
  • Fused Output: Fuses GNSS and INS data using sensor fusion techniques (e.g., Extended Kalman Filter) for robust localization estimates.
  • Configurable Parameters: Allows customization of various parameters to adapt to different GNSS/INS modules and user requirements.

Installation

Prerequisites

Before proceeding with the installation, ensure you have the following prerequisites:

  1. ROS2 Humble: Ensure you have a working ROS2 Humble installation. Follow the official installation instructions if needed.
  2. Build Tools: Ensure you have the necessary build tools and dependencies installed on your system.

Install the RBF GNSS INS ROS2 Driver

  1. Clone the Repository: Clone the repository into your ROS2 workspace's source directory:

    cd /path_to_your_ros2_workspace/src
    git clone https://github.com/Robeff-Technology/rbf_gnss_ins_driver.git
  2. Build the Workspace: Navigate to your ROS2 workspace and build the packages:

    cd /path_to_your_ros2_ws
    colcon build --packages-select rbf_gnss_ins_driver
  3. Source the Workspace: Source your ROS2 workspace to make the newly built RBF GNSS INS driver node available:

    source /path_to_your_ros2_ws/install/setup.bash

    Configuration File

The rbf_gnss_ins_driver.param.yaml configuration file allows customization of the driver's behavior. Below is a table explaining each parameter:

Parameter Description Default Value
working_frequency The working frequency of the driver. 200
serial_config
├─ port Current port name of the device /dev/ttyUSB0
└─ baudrate Current baudrate of the device 460800
topic_config
├─ rtcm_topic RTCM topic name /sensing/gnss/ntrip/rtcm
├─ imu_topic IMU topic name robins/ros/imu
├─ nav_sat_fix_topic NavSatFix topic name robins/ros/gps_nav_sat_fix
├─ twist_topic TwistWithCovarianceStamped topic name robins/ros/twist_with_covariance_stamped
└─ temperature_topic Temperature topic name robins/ros/temperature
frame_config
├─ gnss_frame GNSS frame name gnss_ins_link
└─ imu_frame IMU frame name imu_link
time_config
└─ use_ros_time Use ROS time if true (not recommended) false
odometry_config
├─ use_odometry Use odometry if true false
├─ odometry_topic Odometry topic name robins/ros/odometry
└─ odometry_frame Odometry frame name odom
origin_config
├─ latitude Latitude of the origin 0.0
├─ longitude Longitude of the origin 0.0
└─ altitude Altitude of the origin 0.0
altitude_config
└─ altitude_mode Altitude mode (0: orthometric, 1: ellipsoid) 0

Usage

  1. Launch the RBF GNSS INS Driver Node: Start the RBF GNSS INS driver node using the provided launch file. Run the following command:

    ros2 launch rbf_gnss_ins_driver rbf_gnss_ins_driver.launch.py

    This will start the driver node and configure it based on the default parameters.

  2. Verify Data: After launching the driver, verify that the GNSS and INS data are being published to the correct topics using tools like ros2 topic echo.

Customizing Configuration (Optional)

To customize the behavior of the GNSS/INS driver:

  1. Locate the Configuration File: The rbf_gnss_ins_driver.param.yaml configuration file is in the package's config directory.
  2. Customize Parameters: Edit the configuration file to modify the driver's behavior. Adjust parameters such as communication settings, INS settings, and output topics.
  3. Launch with Custom Configuration: Launch the driver node with the updated configuration:
    ros2 launch rbf_gnss_ins_driver rbf_gnss_ins_driver.launch.py

Troubleshooting

  • Build Errors: Ensure all dependencies are properly installed and sourced.
  • Permissions: Ensure the user has the necessary permissions to access the GNSS/INS module (e.g., /dev/ttyUSB0).
  • Driver-specific Issues: Refer to the documentation or contact the developer for specific issues.

Custom Messages

ECEF

  • Position and velocity in ECEF.

GnssStatus

  • Reports several status indicators, including differential age.

GnssVel

  • Best available GNSS velocity without INS, including status indicators.

Heading

  • Heading information of the receiver in motion.

ImuStatus

  • IMU status indicator.

Ins

  • Integrated navigation results and deviations.

RTCMStatus

  • Status of RTCM topic for debugging.

Standard Messages

  • Temperature of the IMU. Requires RAWIMU.

TwistWithCovarianceStamped geometry_msgs/TwistWithCovarianceStamped

  • Velocity of the vehicle calculated with EKF. Requires INSPVAX.
  • /raw/ecef_twist: Velocity of the vehicle in ECEF. Requires ECEF.
  • Position of the vehicle calculated with EKF. Requires INSPVAX.
  • /raw/nav_sat_fix: Position of the vehicle without EKF. Requires ECEF.
  • IMU data calculated with EKF. Requires RAWIMU, INSPVAX.
  • /raw/imu: IMU data without EKF. Requires RAWIMU.
  • Odometry data. Requires INSPVAX.

Subscribed Topic

  • RTCM data for RTK. For more information, see ntrip_client.

Contributing

If you would like to contribute to this project, please contact Robeff Technology or submit a pull request on the GitHub repository.

License

This project is licensed under the Apache 2.0 License - see the LICENSE file for details.