Acconeer Exploration Tool

repository·master·Indexed 42 days ago

https://github.com/acconeer/acconeer-python-exploration

A Python-based suite for exploring Acconeer radar sensor technology. It includes a GUI application and command-line scripts for streaming radar data, evaluating sensors, and developing algorithms using Acconeer evaluation kits. The tool provides the acconeer-exptool package for sensor connection via SPI, Socket, or Serial interfaces.

Tokens
84.3K
Snippets
157
Records
459
Agent score
53%

What's inside Acconeer Exploration Tool

  1. Overview of the Acconeer Exploration Tool

    master
    The Acconeer Exploration Tool is a comprehensive application designed to help developers test, evaluate, and fine-tune Acconeer radar sensors. It supports rapid prototyping for specific use cases and assists in finding optimal sensor settings and data processing parameters for final product implementation. The tool is compatible with Windows and Linux and is the primary interface for working with Acconeer radar technology and evaluation kits.
  2. Use Acconeer for Parking Management Applications

    master

    Acconeer technology can be applied to parking management to detect parked cars, monitor occupancy, and enhance security. Key use cases include:

    • Urban Mobility: Providing real-time data on parking availability to reduce congestion and emissions.
    • Parking Operations: Enabling accurate occupancy monitoring, demand management, and dynamic pricing.
    • Security: Integrating parked car detection with surveillance to prevent theft and monitor customer patterns.
    • Infrastructure Planning: Using data-driven insights for urban planning and resource allocation.
  3. Use the Cargo Example Application for container monitoring

    master

    The Cargo Example Application uses both a Distance Detector and a Presence Detector to monitor container utilization and human presence.

    • Utilization Level Detection: Measures the distance to cargo and calculates the utilization level in both meters and percentage.
    • Presence Detection: Detects if a person is present in the container. To ensure accuracy, the presence detector runs in 5-second bursts.

    If both detectors are active, the application alternates between measuring distance and measuring presence. When both are active, the GUI displays four plots: distance sweep, container utilization visualization, presence scores (inter/intra frame), and a presence detection status indicator.

  4. Use cases for small movement tracking with Acconeer sensors

    master

    Acconeer sensors utilize Pulsed Coherent Radar (PCR) technology to detect subtle movements ranging from millimeters to sub-millimeter precision. This capability is suitable for several high-precision domains:

    • Health and Wellness: Monitoring breathing patterns or heartbeats.
    • Industrial Automation: Predictive maintenance via monitoring fine machinery movements.
    • Security: Detecting small vibrations or unauthorized tampering.
    • Research and Development: Precise measurement for material testing or biological studies.
  5. Explore Acconeer PCR use cases

    master

    Acconeer's Pulsed Coherent Radar (PCR) technology can be applied to various sensing tasks. The exploration tool provides specialized applications for these use cases, categorized into:

    • Detectors: Specialized detection algorithms.
    • Reference Applications: Standardized implementations for specific tasks.
    • Example Applications: Practical demonstrations of the technology.

    Common use cases supported include:

    • Motion & Presence: Presence detection, speed measurement, small movement tracking, and gesture control.
    • Level & Volume: Tank level monitoring and waste level detection.
    • Mechanical & Surface: Vibration sensing, surface velocity, surface classification, and obstacle detection.
    • Specialized Interaction: Touchless buttons, breathing detection, faucet control, and parking assistance.
  6. What is Continuous Sweep Mode (CSM)?

    master

    Continuous Sweep Mode (CSM) configures sensor timing to generate a continuous stream of sweeps. In standard operation, there is often a gap between the last sweep of one frame and the first sweep of the next. With CSM enabled, the interval between frames becomes equal to the interval between sweeps within a frame (determined by the sweep_rate).

    This ensures the relationship:

    $$\text{frame rate} = \frac{\text{sweep rate}}{\text{sweeps per frame}}$$

    Key Use Case: CSM is primarily used to allow reading out data at a slower rate than the sweep rate while maintaining a continuous, fixed sweep rate. It is particularly useful for applications like vibration measurement or phase tracking where a continuous stream of sweeps is required.

    Note: In most cases, rdac-a121-control-db must be enabled to allow high rates without delays.

  7. Configure range and step length in A121

    master

    The A121 uses a different approach to range configuration compared to the A111:

    • Range Scale: Instead of setting range in meters, use a discrete "point" scale. This removes the 60 mm interval limitation found in A111.
    • Step Length: The A111 downsampling factor is replaced by step length. This allows for finer control, with settings starting as low as 2.5 mm.
  8. Configure Repetition modes (On demand vs Streaming)

    master

    The RSS (Radar Service) supports two repetition modes that determine how data acquisition is triggered:

    • On demand (Host driven): The sensor produces data only when requested by the application. The application is responsible for timing the acquisition. This mode is compatible with all power save modes.
    • Streaming (Sensor driven): The sensor produces data at a fixed rate using an accurate internal hardware timer. This mode is recommended when exact timing between updates is required.
  9. Understand the relationship between velocity and FFT bins

    master

    In the obstacle detection algorithm, the FFT is performed along the time axis of a 2D sweep matrix. Each bin $b$ in the $N_s$ bins represents a specific frequency related to a phase change $\Delta\phi$.

    Velocity Calculation

    Each bin can be interpreted as a velocity $v_o$ using the formula: $v_o = \frac{bf_s\lambda}{2N_s}$

    Velocity Limits and Resolution

    • Maximum Resolvable Velocity ($v_{max}$): Defined by the phase shift of $\pi$, calculated as $v_{max} = \frac{f_s\lambda}{4}$.
    • Directionality: Phase shifts from $0$ to $\pi$ are considered "positive" velocity, while $\pi$ to $2\pi$ are "negative". An FFT shift is used to center $0$ velocity, allowing velocities to range from $-v_{max}$ to $+v_{max}$.
    • Trade-offs: Increasing the number of consecutive sweeps $N_s$ improves angular resolution but makes the algorithm more sensitive to changes in the obstacle's velocity or angle during the collection period.
  10. Configure sensor and sweeps in A121

    master

    The A121 provides enhanced reconfiguration capabilities:

    • On-the-fly Reconfiguration: Use the prepare function to load a new configuration onto the sensor without stopping operation.
    • Subsweeps: A single sweep can now be split into subsweeps, allowing you to apply different configurations (e.g., different profiles) across different parts of the range.
    • Gain Control: The floating point gain scale is replaced by a wider integer scale, providing more precise control and eliminating the need for maximize signal attenuation.
    • Buffer Capacity: The sensor buffer now holds 4095 complex points.
  11. Configure Peak Finding and Velocity Smoothing

    master

    The algorithm identifies velocity peaks in the PSD using a one-sided Constant False Alarm Rate (CFAR) threshold and applies smoothing to handle the chaotic nature of water flow.

    CFAR Threshold Parameters:

    • cfar_win: The window size used to average neighboring frequency bins.
    • cfar_guard: The guard or gap around the frequency bin of interest that is omitted from the average.
    • cfar_sensitivity: A value between 0 and 1 that adjusts the threshold.

    Velocity Estimation Smoothing:

    • Peak Interval: To maintain a steady estimate, max_peak_interval_s sets a maximum time interval. During this interval, the velocity estimate will not change if a new estimate is a decrease larger than 20%.
    • Peak Merging: Peaks in the PSD closer than 0.1 m/s are treated as the same peak. Merged peaks are indicated by a colored area in the GUI.
    • Velocity Filtering: The final estimated velocity is low-pass filtered using velocity_lp_coeff.
  12. How button press detection works

    master

    The button press detection algorithm is built on top of the envelope-service. It works by measuring changes in the radar signal caused by interference between 'direct leakage' (the signal traveling directly from the transmitter to the receiver) and the signal reflecting off a finger or hand.

    When a button is pressed, the interference causes oscillations in the signal. The algorithm processes this by:

    1. Averaging the envelope sweep data to create a single signal value per sweep.
    2. Applying an exponential low-pass filter to the signal.
    3. Calculating a normalized deviation to account for variations in direct leakage.
    4. Applying a second low-pass filter to that deviation.
    5. Detecting a press if the filtered deviation exceeds a threshold and a minimum time buttonpress_length_s has passed since the last detection.

    Best Practices for Implementation:

    • Hardware Setup: Place the radar sensor close to the plastic cover with an air-gap of only a few millimeters for best performance.
    • Radar Configuration: Use the envelope-service with maximize_signal_attenuation enabled, lower gain, and the shortest wavelet (Profile 1). This prevents saturation from strong direct leakage.
    • Scan Range: The default scan range is 3 to 4 cm. Scanning closer than 3 cm may decrease sensitivity due to direct leakage strength, while scanning further may cause premature detection.