This example demonstrates the integration of a MicroStrain CV7-INS with a GNSS receiver and a mmWave radar sensor. It utilizes GNSS position and velocity data from the GNSS receiver, combined with body frame velocity data from the radar point cloud, as aiding measurements for the CV7-INS. The implementation is developed using the ROS2 framework.
The details pertaining to the performance are available within the Whitepaper document.
The following hardware components are utilized in this setup:
MicroStrain CV7-INS
- Core Inertial Navigation System with onboard IMU and EKF for sensor fusionUblox ZED-F9P
- GNSS ModuleSmartmicro DRVEGRD 152
- Automotive mmWave radar sensorPCAN-USB FD Adapter
- USB CAN-FD adapter to interface with the radar CAN bus through USB
The use of the PCAN adapter is recommended, as widely used Linux kernels already include drivers for PEAK-System's CAN interfaces. Using a different adapter may require additional or alternative steps to configure the interface and set the baudrate.
microstrain_inertial
-- ROS driver for the CV7-INS (Submoduled)smartmicro_ros2_radars
-- ROS driver for the Smartmicro radar (Submoduled)radar_velocity_estimation
-- Software to process the raw radar point cloud and estimate a bodyframe velocity measurement (Submoduled)microstrain_radar_navigation
-- Example package that demonstrates how to configure and launch all nodes
- Install ROS2 and Create a Workspace
- Clone the Repository into your workspace:
git clone https://github.com/microstrain-robotics/microstrain_radar_navigation.git --recursive
- Install rosdeps for all the packages:
rosdep install --from-paths ~/your_workspace/src -i -r -y
- Run the SmartExtract Script
cd ~/your_workspace/src/microstrain_radar_navigation/smartmicro_ros2_radars/ ./smart_extract.sh
- Build your workspace
cd ~/your_workspace colcon build
- Install Docker
- Clone the repository into your workspace:
git clone https://github.com/microstrain-robotics/microstrain_radar_navigation.git --recursive
- Navigate to the workspace and build the Docker image
cd ~/your_workspace/src/microstrain_radar_navigation docker build -t microstrain_radar_navigation .
-
Make sure the sensors are connected to their corresponding ports (or change port names in the relevant configuration YAML files)
- TTYACM0 - CV7-INS
- TTYACM1 - Ublox ZED-F9P
- The SmartMicro DRVEGRD 152 is connected using a PCAN-USB FD Adapter.
-
Set the Baudrate for the PCAN Adapter
sudo ip link set can0 up type can bitrate 500000
-
Launch the Node (Building from Source)
source /your_workspace/install/setup.bash ros2 launch microstrain_radar_navigation cv7_ins_launch.py
-
Launch the Node (Using the Docker Image)
xhost local:root docker run --rm -it --env DISPLAY --volume /tmp/.X11-unix:/tmp/.X11-unix:rw --privileged -v /dev:/dev --net=host microstrain_radar_navigation
Different packages in this repo are released under different licenses. For more information, see the LICENSE files in each of the package directories.