This project is a driver for processing point cloud data from the Altos V2 radar system. It receives radar data packets via UDP, processes the point cloud information, and saves the data to files.
.
├── altosRadarParse.cpp # Main source code for processing radar data
├── pointCloud.h # Data structure definitions
├── CMakeLists.txt # CMake build configuration
├── data/ # Directory for RCS data and output files
└── README.md # This file
- Receives radar point cloud data via UDP (both unicast and multicast supported)
- Calculates RCS (Radar Cross Section) values
- Processes point cloud data and converts from spherical to Cartesian coordinates
- Estimates relative velocities of detected objects
- Classifies points based on motion (approaching, stationary, moving away)
- Saves raw data to timestamped files
- PCL (Point Cloud Library)
- Standard C++ libraries
- Linux socket programming libraries
# Create build directory
mkdir build
cd build
# Generate build files
cmake ..
# Compile the project
makeg++ -o altosRadarParse altosRadarParse.cpp -lpcl_common -lpcl_io -lm -std=c++11The application can be configured through several constants in altosRadarParse.cpp:
-
Network settings:
GROUPIP: Multicast group IP addressGROUPPORT: Multicast portLOCALIP: Local IP addressUNIPORT: Unicast portUNIFLAG: Switch between unicast (1) and multicast (0)
-
Processing parameters:
vrMax/vrMin: Velocity range limitsvStep: Velocity histogram step sizeerrThr: Error threshold for velocity estimation
-
Prepare the data directory:
mkdir -p data
-
Ensure
data/rcs.datexists (RCS calibration data):touch data/rcs.dat
-
Run the application:
./build/altosRadarParse
The application will:
- Listen for radar data on the configured network interface
- Process incoming point cloud packets
- Save raw data to timestamped files in the
data/directory - Output processing information to the console
The application processes point cloud data in a custom format with the following structure:
- Packet Header (PCKHEADER)
- System Information (SYSINFO)
- Point Data (DETECTION array)
Each point contains range, velocity, angle, and signal strength information.
Processed data is saved in two forms:
- Raw data files in the
data/directory with timestamps - Console output showing frame processing information
- The application may require root privileges to access certain network ports
- The RCS calibration file (
data/rcs.dat) should contain valid calibration data for accurate RCS calculations - Network configuration should match the radar system settings