How to Integrate Linpowave mmWave Radar with ROS for Robotics Projects?

blog avatar

Written by

Ningbo Linpowave

Published
Nov 07 2025
  • radar

Follow us

How to Integrate Linpowave mmWave Radar with ROS for Robotics Projects?

As the demand for autonomous systems and intelligent sensing continues to grow, integrating Linpowave mmWave radar with the Robot Operating System (ROS) has become a key step in building advanced perception and automation systems.
This guide walks you through every step—from hardware setup and driver installation to data visualization and advanced development.


1. Hardware Preparation and Environment Setup

1.1 Hardware Requirements

  • Radar model: Linpowave mmWave radar series (compatible with ROS communication protocols)

  • Host system: Ubuntu 18.04/20.04 (ROS Melodic/Noetic) or Ubuntu 22.04 (ROS2 Humble)

  • Connection:

    • USB-to-serial adapter (e.g., FTDI XDS110) for radar-to-host connection

    • Optional 5V 3A power supply for stable standalone operation

1.2 Software Installation

ROS1 Installation (Ubuntu 20.04 Example)

sudo apt-get install ros-noetic-desktop-full sudo rosdep init && rosdep update echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc

ROS2 Installation (Ubuntu 22.04 Example)

sudo apt-get install ros-humble-desktop sudo apt-get install python3-colcon-ros-package

For more details on compatible software and SDK packages, visit
๐Ÿ‘‰ Linpowave SDK Documentation


2. Installing and Configuring Linpowave Radar ROS Drivers

2.1 ROS1 Driver Installation

  1. Clone the Linpowave mmWave ROS driver repository

git clone https://github.com/linpowave/mmwave_ros_driver.git cd mmwave_ros_driver catkin_make source devel/setup.bash
  1. Set up user permissions

sudo adduser $USER dialout sudo chmod 666 /dev/ttyACM*

2.2 ROS2 Custom Message Definition

If you are using ROS2, define a custom message for detection points:

# msg/Detection.msg std_msgs/Header header float32 f_x float32 f_y float32 f_z uint8 u_invalid_flags

Then, generate the interface:

ros2 interface create --msg-type Detection msg/Detection.msg

3. Data Collection and Processing

3.1 Launching the Radar Node

For single radar setup:

roslaunch linpowave_mmwave 3d_pointcloud.launch

For multi-radar configuration (coordinate transform example):

static_transform_publisher x y z qx qy qz qw frame_id child_frame_id period_in_ms

3.2 Data Parsing and Storage

To store radar data in PCD format:

import pcl from sensor_msgs import point_cloud2 as pc2 def callback(data): points = pc2.read_points(data, field_names=("x", "y", "z"), skip_nans=True) pcl.save(points, "linpowave_data.pcd")

For advanced users, Linpowave provides a binary data interface for direct IQ and range-Doppler data parsing. See:
๐Ÿ”— Linpowave Technical Documentation


4. Visualization and Advanced Development

4.1 RViz Point Cloud Display

  1. Run RViz:

rosrun rviz rviz
  1. Add PointCloud2 and select /linpowave/rscan topic

  2. Configure visualization parameters:

    • Color scheme: Intensity or height (Z-axis)

    • Decay time: Adjust for moving object persistence

    • TF alignment: Align radar frame with robot base frame

4.2 Object Clustering and Tracking

Radar point clouds can be processed for clustering and tracking:

from sklearn.cluster import DBSCAN db = DBSCAN(eps=0.5, min_samples=10).fit(points)

Kalman filters can be used for motion tracking:

KalmanFilter kf; kf.predict(); kf.correct(measurement);

4.3 Open-Source Integration

  • OpenPCDet Integration: Convert Linpowave point clouds into ROS-standard format and perform 3D detection.

  • Radar-ROS Bridge: Use DDS for high-throughput communication in ROS2.

  • Multi-sensor fusion: Combine Linpowave radar with camera or LiDAR for enhanced perception.

For in-depth integration examples, refer to
๐Ÿ”— ROS Wiki Documentation
๐Ÿ”— OpenPCDet GitHub


5. Troubleshooting

Issue Possible Cause Solution
No radar data stream Serial permissions not set Run sudo chmod 666 /dev/ttyACM*
No point cloud visible in RViz Incorrect topic name Use /linpowave/rscan
Radar frame misalignment Missing TF transform Add static transform publisher
Excessive noise in point cloud Improper configuration Adjust CFAR threshold in Linpowave config file

6. Extended Applications

Linpowave mmWave radar can go beyond standard detection tasks and serve in multiple robotics domains:

  • SLAM Mapping: Use Linpowave radar with Cartographer or GMapping for radar-based SLAM.

  • Gesture Recognition: Analyze time-series point cloud data for human gesture control.

  • Industrial Automation: Integrate with ROS Control for radar-guided robotic arms and automated inspection systems.

Learn more about Linpowave radar applications at
๐Ÿ”— Linpowave Applications


7. FAQ: Linpowave Radar + ROS Integration

Q1: Does Linpowave provide an official ROS package?
A: Yes. Linpowave offers open-source ROS1 and ROS2 packages, along with a full SDK for radar configuration and data streaming.

Q2: How can I visualize radar data in real time?
A: Use RViz or Foxglove Studio to visualize topics such as /linpowave/rscan.

Q3: Can Linpowave radar be used for SLAM or obstacle avoidance?
A: Absolutely. Linpowave radars provide dense point cloud data that enables mapping, localization, and real-time obstacle detection.

Q4: How to handle noisy or sparse radar data?
A: Tune CFAR thresholds in the Linpowave configuration file or use post-processing filters such as DBSCAN clustering.

Q5: Where can I access the official documentation and SDK?
A: Visit the Linpowave Documentation Center for drivers, SDKs, and integration tutorials.


8. References

Related Blogs

    blog avatar

    Ningbo Linpowave

    Committed to providing customers with high-quality, innovative solutions.

    Tag:

    • mmWave radar
    • Linpowave radar
    • ROS integration
    • radar driver
    • point cloud visualization
    • radar SLAM
    • ROS2 Humble
    • radar SDK
    Share On
      Click to expand more