A multi-channel dance collection and playing system based on unified time base and double-path scheduling
By using unified time base acquisition, dual-path scheduling, and hardware abstraction adaptation, the synchronization and compatibility issues of performing robots in high-precision dance movements are solved, enabling efficient and safe playback of dance movements and reducing system migration costs and failure rates.
Patent Information
- Application Number
- CN202610233758.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-02-27
- Publication Date
- 2026-06-05
Smart Images

Figure CN122152510A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of robot performance control technology, specifically a multi-channel dance acquisition and playback system based on unified time base and dual-path scheduling. Background Technology
[0002] Performing robots are intelligent devices that showcase art by simulating human performance behaviors (such as dancing, playing music, etc.), and typically combine artificial intelligence, mechanical control, and sensor technology to achieve dynamic interaction.
[0003] Current performing robots face several key technological bottlenecks in achieving complex and high-precision dance movements: The timing synchronization accuracy is low, and the action and music use separate clock sources. After long-term operation, the accumulated timing drift generally exceeds 50 milliseconds.
[0004] System migration is costly. Switching from a simulation environment to a physical robot or porting between different hardware platforms requires modifying a large amount of underlying code (usually more than 70%).
[0005] Poor hardware compatibility; the control parameters of servos and motors from different manufacturers and models differ significantly, and more than 80% of the parameters need to be recalibrated when migrating motion data.
[0006] Emergency shutdown carries a high risk; the mechanical impact of directly cutting off power can be up to three times that of a smooth shutdown.
[0007] The system lacks robustness; under a centralized scheduling architecture, the probability of a single channel failure causing overall system failure exceeds 30%.
[0008] In existing technologies, such as Boston Dynamics' Atlas robot, monotonic clocks and drift compensation are used, but audio clocks are not used as the main driver of the system. UBTECH's Walker robot has basic hardware adaptation capabilities, but lacks a multi-level, degradable device mapping strategy. To address this, we propose a multi-channel dance acquisition and playback system based on a unified time base and dual-path scheduling. Summary of the Invention
[0009] The purpose of this invention is to provide a multi-channel dance acquisition and playback system based on a unified time base and dual-path scheduling, which has the advantages of high-precision synchronization, flexible adaptation and safety and reliability, and solves the above-mentioned problems faced by current performing robots when realizing complex and high-precision dance movements.
[0010] To achieve the above objectives, the present invention provides the following technical solution: a multi-channel dance acquisition and playback system based on unified time base and dual-path scheduling, comprising: The unified time base acquisition module is used to establish a timestamp binding relationship between the action data of all execution channels and audio files based on a monotonic clock. The dual-path playback scheduling module supports both multi-threaded concurrent and single-threaded sequential playback paths, and can automatically optimize the thread model based on the number of channels. The hardware abstraction and adaptation module achieves automatic identification and driver adaptation for different hardware devices through a defined unified interface and adapter pattern. The safety control module is used to achieve rapid and safe shutdown of the system and smooth return control of each actuator when an abnormal or interrupt command is detected.
[0011] Preferably, the unified time base acquisition module specifically adopts the CLOCK_MONOTONIC_RAW clock source of the Linux system; Before broadcasting begins, an acoustic or optical calibration pulse is output, which is detected separately by the audio and motion sides to determine a unified starting point. ; And establish the mapping formula from timestamps to audio frames: The sample_rate and audio_offset_ms parameters are written to the metadata file.
[0012] Preferably, in the dual-path playback scheduling module, the multi-threaded path is constructed using C++17's std::jthread and a single producer-single consumer lock-free queue, with the audio device's callback thread as the system's main clock source, and the coordination thread driving each channel controller with a fixed period of 10ms. The single-threaded path manages action events through a priority queue, achieving sequential scheduling with an accuracy of ±2ms.
[0013] Preferably, the hardware abstraction adapter module defines a unified interface for IChannelController that includes functions such as init(), setTarget(), stop(), home(), health(), and caps(). The underlying layer uses a serial port servo adapter and a CAN motor adapter for drive encapsulation. The serial port adapter supports baud rate adaptation, and the CAN adapter supports automatic enumeration of node IDs.
[0014] Preferably, the security control module uses a global atomic variable as a stop flag, and the response time to the SIGINT / SIGTERM signal is less than 150ms; Its smooth return algorithm controls the motor to zero through a trapezoidal speed curve and monitors the current in real time, stopping immediately when it exceeds the 2A threshold.
[0015] Preferably, the unified time base acquisition module also periodically detects the drift Δdrift between the master clock and the audio device clock. When |Δdrift| exceeds a 5ms threshold, a dynamic compensation mechanism is activated, using interpolation or skipping at the motion end and adjusting the speed within ±0.5% at the audio end.
[0016] Preferably, when the dual-path playback scheduling module performs channel matching with the physical controller, it adopts a four-level priority strategy, with the priorities from high to low being: command line parameter overriding, YAML configuration file specification, automatic detection results, and default fallback based on name rules, and supports both strict and lenient matching modes.
[0017] Preferably, the automatic detection process of the hardware abstraction adapter module sends specific handshake instructions to the enumerated serial port and CAN bus devices and identifies the hardware type and identity based on the response frame, with a hardware matching success rate of not less than 98.7%.
[0018] Preferably, it includes a servo PWM normalization module, which uses a bilateral percentage conversion method to normalize the source servo PWM value to the range of [-1,1] before mapping it to the target servo range; Set a safety margin of 5%-10% during the conversion process. With a 0.5% dead zone And apply the first-order smoothing filter formula ; in, Filtering is performed to ensure that the final position fluctuation of the servo motor is no greater than ±0.5°.
[0019] Preferably, it supports both simulation and real machine modes of operation; Switch modes using the dry_run and enable_motors startup parameters; In simulation mode, the system only performs logic and timing verification without performing hardware operations; In live mode, all actuators are fully driven.
[0020] Compared with the prior art, the beneficial effects of the present invention are as follows: 1. This invention uses an audio clock master drive and a unified time base mapping to control the time base deviation within 5ms during 2 hours of continuous operation, reducing the synchronization error by 65% compared to traditional solutions.
[0021] 2. This invention enables seamless one-click switching between simulated and actual machines, with the switching process taking less than 10 seconds, reducing the overall debugging cost by approximately 45%.
[0022] 3. This invention supports more than 80% of mainstream servo / motor models through a hardware abstraction layer and automatic detection, reducing the parameter calibration workload required for cross-platform motion porting by 82%.
[0023] 4. This invention ensures system degradation operation in the event of partial hardware failure through a four-level mapping strategy and simulation degradation mechanism. Fault injection tests show that system availability reaches 99.2%.
[0024] 5. This invention effectively reduces mechanical shock by combining a 150ms emergency stop response with a smooth return algorithm, thereby reducing the equipment failure rate by 60%. Attached Figure Description
[0025] Figure 1 This is a system architecture block diagram of the present invention; Figure 2 This is a flowchart of the overall process of the multi-channel data acquisition and playback system of the present invention; Figure 3 This is a flowchart of the intelligent prediction and preloading scheduling module of the present invention. Detailed Implementation
[0026] The technical solutions of the present invention will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present invention.
[0027] A multi-channel dance acquisition and playback system based on unified time base and dual-path scheduling is disclosed. The system includes a unified time base acquisition module, a dual-path playback scheduling module, a hardware abstraction and adaptation module, and a security control module.
[0028] Unified time base acquisition and file organization The acquisition unit uses the Linux kernel's CLOCK_MONOTONIC_RAW monotonic clock as the sole time base for the entire system. This clock is unaffected by system time adjustments and provides a stable, incremental timestamp. The system defines the audio start time or calibration pulse detection time as the unified starting point of the timeline. .
[0029] To achieve precise alignment, the system outputs a calibration pulse (such as a 100ms beep or flash) before recording. The audio and motion acquisition modules detect the pulse via a microphone and a photoelectric sensor, respectively, and record the detection time as... The time difference between the two events should be controlled within ≤1ms. If there is no pulse, the "start" event on the playback end will be used as the time difference. It also records the audio device startup delay audio_start_latency_ms.
[0030] The motion data acquisition cycle is fixed at 10ms, acquiring the servo angle (accuracy 0.1°) and motor speed (accuracy 1rpm) of each channel. Each frame of data is appended with a relative position to the data acquisition process. The timestamp is set to timestamp_ms. The system establishes a linear mapping relationship between the timestamp and the audio sampling frame, with the core formula as follows: ; Where sample_index is the index of the target sampling frame in the audio file (integer), timestamp_ms is the timestamp of the motion data frame (in milliseconds), audio_offset_ms is the inherent latency of the audio channel calibrated experimentally (12ms in this embodiment), sample_rate is the audio sampling rate (in Hz), and round(・) is the rounding function. Key parameters such as ISO8601 time format should be written into the header of the CSV file or into a metadata file with the same name, .meta.json.
[0031] To suppress clock drift during long-term operation, the system periodically compares the master clock with the audio device clock and calculates the drift amount Δdrift. When |Δdrift| exceeds a 5ms threshold, dynamic compensation is activated: the motion end uses linear interpolation or skip sampling to fine-tune the timing, and the audio end performs slight speed changes of up to ±0.5%.
[0032] The collected results are organized into a dance library in a catalog format, with standardized file names (e.g., left_hand.csv, right_hand.csv) to facilitate automatic scanning and loading by the playback device.
[0033] Dual-path playback scheduling mechanism This module provides two playback paths, sharing the same data structure and hardware abstraction interface.
[0034] Multi-threaded concurrent playback path: Suitable for high-precision, full-channel formal performances. Interruptible threads are implemented using C++17's `std::jthread`, and a lock-free circular queue (SPSC) is used to construct the data path, with queue operation latency ≤200ns. Audio callback threads (such as the PortAudio driver, 48kHz sampling rate) are established as the system master clock source. A dedicated coordinator thread uses this master clock to advance the global timeline `t`, waking up every 480 audio samples (i.e., 10ms) and sending target instructions to the worker threads of each actuator channel via the SPSC queue.
[0035] When the system detects that the total number of channels exceeds 16, it automatically switches from the "one thread, one channel" mode to the thread pool mode. Tests in the Linux pthread environment show that this optimization reduces the average overhead of thread context switching from 80μs to 46μs, a reduction of 42%.
[0036] Single-threaded sequential playback path: Suitable for debugging, verification, or resource-constrained scenarios. This path stores all channel action events in a min-heap priority queue according to their timestamp_ms. A single thread continuously reads the event at the head of the queue, and immediately executes the output when the system time reaches or exceeds the event timestamp. In actual testing on the ARM Cortex-A72 platform, the scheduling accuracy of this mode is ±2ms.
[0037] The matching of channels and physical controllers employs a four-level priority strategy, from highest to lowest: command-line parameter overriding > YAML configuration file specification > automatic detection results > default fallback based on file naming rules. The system supports two matching modes: "strict" and "lenient." The former requires exact device ID matching, while the latter allows fuzzy matching based on role and port hints, enhancing the system's flexibility when devices do not fully match.
[0038] Hardware abstraction and self-adaptation mechanism To completely decouple the upper-layer logic from the lower-layer hardware, this invention defines a unified hardware abstraction layer interface, IChannelController, whose core includes: Bool init(const Config& cfg): Initializes the device.
[0039] Void setTarget(doublet_ms,const Target& tgt): Sets the target value according to the uniform time base t.
[0040] Void stop(): Emergency stop.
[0041] Void home(): Returns to its original position safely.
[0042] Health health() const: Gets the health status of the device.
[0043] Capabilitycaps()const: Retrieves the set of device capabilities.
[0044] The underlying layer is encapsulated using the adapter pattern: The IServoController adapter encapsulates serial port servo communication and supports adaptive baud rates from 9600 to 115200 bps.
[0045] The IMotorBus adapter encapsulates CAN bus motor communication and features automatic node ID enumeration with an enumeration time of <300ms.
[0046] Upon system startup, an automatic detection process is executed: all / dev / ttyUSB serial ports and CAN devices such as can0 / can1 are enumerated, and a handshake command of 0xAA is sent to each device. The device type and identity are identified based on the response (servo response 0x55, motor response 0x66). Using a common USB-CAN adapter and serial servo combination for testing, the automatic matching success rate reaches 98.7%. Unmatched devices are automatically marked as being in emulation mode to ensure system operation.
[0047] Safety control and fault tolerance mechanism Safe shutdown: The system stops via a global atomic boolean variable `g_stop_flag`. A SIGINT / SIGTERM signal handler is registered, and this flag is set within 150ms upon receiving an interrupt signal. All worker threads frequently check this flag, and immediately terminate output if it becomes true.
[0048] Smooth Return: After shutdown or task completion, power is not immediately cut off; instead, a smooth return algorithm is activated. This algorithm generates a trapezoidal speed curve for the motor, allowing it to smoothly decelerate from the current speed to zero, and then return to the mechanical zero point at a safe speed of 50 rpm. The motor phase current is monitored in real time; if it exceeds the 2A threshold, it is immediately locked.
[0049] This reduces mechanical impact to one-third of that of a direct shutdown solution.
[0050] Servo control optimization: PWM conversion is implemented using bilateral percentage normalization, improving motion smoothness and cross-platform portability. A 5%-10% PWM safety margin is set. (8% in this embodiment) To prevent the servo motor from stalling, a 0.5% control dead zone is set. To suppress zero-point jitter, a first-order infinite impulse response filter is applied for smoothing. The core formula is as follows:
[0051] Where r_filtered[n] is the filtered target control value of the servo in the nth frame (normalized to the range of [-1,1]), r_filtered[n-1] is the filtered output value of the (n-1)th frame, r_desired[n] is the original target control value of the servo in the nth frame, and β is the smoothing coefficient (0.5 in this embodiment, with a value range of (0,1]). Actual measurements show that this processing can significantly reduce the servo position fluctuation from ±3° to within ±0.45°.
[0052] The present invention will be further described in detail below with reference to the embodiments.
[0053] Implementation Example System Configuration The core processing unit in this embodiment uses an embedded motherboard (1.8GHz) based on the ARM Cortex-A72 architecture. This motherboard expands to include four RS485 serial ports for controlling serial servos, two CAN bus interfaces for controlling brushless DC motors, and one I2S audio interface for high-fidelity audio output. The actuators include: 16 DS3218 serial servos (providing 2.5 kg·cm torque), four DJI M3508 CAN bus motors (rated speed 5400 rpm), and an audio output module based on the PortAudio library (48kHz sampling rate, 16-bit bit depth).
[0054] Implementation of unified time base acquisition During initialization, the acquisition program first calls `clock_gettime(CLOCK_MONOTONIC_RAW,&ts)` to obtain a stable time base. Then, a high-level signal lasting 100ms is output through a GPIO pin on the motherboard, driving a bright LED to emit a flash signal as a calibration pulse. The audio acquisition unit detects ambient sound through a microphone array, while the motion control unit detects the flash through a photoelectric sensor. The time difference between the pulse detections recorded by both units is controlled within 1ms, and this difference is used to jointly determine the starting point of the time. .
[0055] The motion data acquisition period is fixed at 10ms. Within each acquisition period, the system reads the current angle of 16 servos (accuracy 0.1°) and the real-time speed of 4 motors (accuracy 1rpm), and marks this frame of data as... The initial timestamp (timestamp_ms) is used for calculation. The audio file is stored in uncompressed 48kHz, 16-bit WAV format. Through multiple calibration experiments, the inherent delay of the audio channel in this system, audio_offset_ms, was determined to be 12ms. Substituting this into the timestamp-audio sample frame mapping formula:
[0056] This allows for precise binding of motion data to audio sampling frames. All acquired data is organized into a catalog-based dance library, categorized by dance segments. For example, a dance named "dance1" might contain the following in its directory: dance1.wav (audio file).
[0057] left_hand.csv, right_hand.csv... (motion trajectory files for each channel).
[0058] dance1.meta.json (metadata file containing sample_rate:48000, audio_offset_ms:12, drift_threshold_ms:5, etc.).
[0059] Implementation of dual-path playback Multi-threaded playback: After system startup, one coordination thread, 16 servo control threads, 4 motor control threads, and one audio playback thread are created. The coordination thread waits for signals from the audio callback thread via `std::condition_variable`. Every 480 samples collected by the audio thread (corresponding to a 10ms duration) are notified to the coordination thread. The coordination thread then advances the global timeline `t` by 10ms and sends the corresponding target value (servo target angle or motor target speed) to all executor threads via its respective SPSC lock-free queue. This system sets the thread pool mode switching threshold to 16 channels. When the total number of channels exceeds 16 (e.g., future expansion to 32 channels), the system automatically allocates the excess channel controllers to a dynamically managed thread pool. Actual testing shows that this optimizes the average thread context switching time from 80μs to 46μs.
[0060] Single-threaded playback: In this mode, during initialization, the system inserts all channel action events (from a CSV file) into a minimum-heap priority queue according to their timestamp_ms. The main thread, in a tight loop, continuously checks if the timestamp of the event at the head of the queue is less than or equal to the current system time. If so, the action instruction is executed immediately and the event is dequeued. In actual testing on the ARM Cortex-A72 platform, the scheduling error of this loop is within ±2ms, fully meeting the debugging and verification requirements for single-channel or a few-channel applications.
[0061] Implementation of Hardware Abstraction Adaptation At the code level, the IChannelController interface is implemented by two concrete adapters: ISevoController and IMotorBus.
[0062] IServoController uses the termios library to configure serial port parameters and supports adaptive baud rate. For example, during initialization, it attempts to send the AT+BAUD=115200 command and waits for the servo to return an ACK confirmation signal within a 500ms timeout period.
[0063] IMotorBus uses tools such as CANoe to enumerate CAN nodes. It broadcasts a 0x01 query command to the bus, and all online nodes reply with their IDs within 280ms, thus constructing a complete list of network nodes.
[0064] The automatic detection process executes automatically upon system startup: it scans serial device files such as / dev / ttyUSB and / dev / ttyACM, as well as CAN network interfaces such as can0 and can1. For each discovered device, it sends a handshake command 0xAA. Servo controllers respond with 0x55, and motor controllers respond with 0x66. The system then completes device identification and matching based on the responses. For devices that do not respond or respond incorrectly, the system will issue an alert in the log and create a simulated controller for that channel to ensure the dance library can still be loaded and played (even though some channels have no actual movement).
[0065] Implementation of security controls The system registers handlers for the SIGINT (Ctrl+C) and SIGTERM (kill command) signals upon startup. When a user triggers a stop, the handler sets the global atomic variable `g_stop_flag` to true within 132ms (average of 100 tests). All worker threads detect this change in the main loop's conditional statement and immediately stop sending new control commands.
[0066] Next, the smooth return-to-center procedure is initiated. For the motor, it generates a 500ms trapezoidal deceleration curve, smoothly reducing the target speed from the current value to zero. Then, it controls the motor to return to the mechanical zero position at a lower, safer speed (50rpm). Throughout the return-to-center process, the system monitors the motor phase current in real time. If any phase current exceeds the 2A safety threshold, the motor is immediately locked to prevent stalling and burnout.
[0067] For the servo motor, normalization and filtering were applied during the PWM conversion process. Specific parameters were set as follows: safety margin. Dead Zone Smoothing coefficient Substituting into the first-order smoothing filter formula:
[0068] Actual tests show that after this treatment, the position fluctuation of the servo during movement is significantly reduced from ±3° to within ±0.45°, and the smoothness of the movement is significantly improved.
[0069] System testing and verification of beneficial effects To verify the effectiveness of this invention, several rigorous tests were conducted: 72-Hour Continuous Operation Test: The system ran uninterrupted for 72 hours under full channel and full load conditions. Results showed that, through the combination of the timestamp-audio sampling frame mapping formula and dynamic drift compensation, the cumulative time base drift remained consistently less than 5ms. The system CPU utilization rate remained stable between 35% and 40%, and the CAN bus load rate never exceeded 50%, indicating reasonable resource utilization and stable and reliable long-term operation.
[0070] Fault injection test: A simulated offline fault was performed on 3 servo motors. The system successfully detected the fault and automatically switched the fault channel to simulation mode. The remaining 13 servo motors and 4 motors continued to perform their planned actions, achieving an overall availability of 99.2%, demonstrating the system's strong fault tolerance.
[0071] Emergency stop test: 100 emergency stop tests were conducted, with an average response time of 132ms, meeting the design requirements. Accelerometer readings showed that the mechanical impact acceleration during the emergency stop process decreased from 15g during a direct power-off shutdown to 5g, effectively protecting the mechanical structure.
[0072] Cross-device porting test: A complex dance sequence captured by the DS3218 servo motor was ported to another robot using the MG996 servo motor. Thanks to the application of the servo motor PWM normalization module and smoothing filter formula, engineers only needed to modify the min, max, and init parameters of the target servo motor in the configuration file. The entire porting and calibration process was shortened from 8 hours to 1.5 hours, improving efficiency by more than 80%, fully demonstrating the significant advantages of this system in hardware compatibility and portability.
[0073] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, and are not intended to limit the scope of protection of the present invention. Although the present invention has been described in detail with reference to preferred embodiments, those skilled in the art should understand that modifications or equivalent substitutions can be made to the technical solutions of the present invention without departing from the essence and scope of the technical solutions of the present invention.
Claims
1. A multi-channel dance acquisition and playback system based on unified time base and dual-path scheduling, characterized in that, include: The unified time base acquisition module is used to establish a timestamp binding relationship between the action data of all execution channels and audio files based on a monotonic clock. The dual-path playback scheduling module supports both multi-threaded concurrent and single-threaded sequential playback paths, and can automatically optimize the thread model based on the number of channels. The hardware abstraction and adaptation module achieves automatic identification and driver adaptation for different hardware devices through a defined unified interface and adapter pattern. The safety control module is used to achieve rapid and safe shutdown of the system and smooth return control of each actuator when an abnormal or interrupt command is detected.
2. The multi-channel dance acquisition and playback system based on unified time base and dual-path scheduling according to claim 1, characterized in that, The unified time base acquisition module specifically adopts the CLOCK_MONOTONIC_RAW clock source of the Linux system; Before broadcasting begins, an acoustic or optical calibration pulse is output, which is detected separately by the audio and motion sides to determine a unified starting point. ; And establish the mapping formula from timestamps to audio frames: The sample_rate and audio_offset_ms parameters are written to the metadata file.
3. The multi-channel dance acquisition and playback system based on unified time base and dual-path scheduling according to claim 1, characterized in that, In the dual-path playback scheduling module, the multi-threaded path is constructed using C++17's std::jthread and a single producer-single consumer lock-free queue. The callback thread of the audio device is used as the system's main clock source, and the coordination thread drives each channel controller with a fixed period of 10ms. The single-threaded path manages action events through a priority queue, achieving sequential scheduling with an accuracy of ±2ms.
4. The multi-channel dance acquisition and playback system based on unified time base and dual-path scheduling according to claim 1, characterized in that, The hardware abstraction and adaptation module defines a unified interface for IChannelController that includes functions such as init(), setTarget(), stop(), home(), health(), and caps(). The underlying layer uses a serial port servo adapter and a CAN motor adapter for drive encapsulation. The serial port adapter supports baud rate adaptation, and the CAN adapter supports automatic enumeration of node IDs.
5. A multi-channel dance acquisition and playback system based on unified time base and dual-path scheduling according to claim 1, characterized in that, The security control module uses a global atomic variable as a stop flag, and its response time to the SIGINT / SIGTERM signal is less than 150ms. Its smooth return algorithm controls the motor to zero through a trapezoidal speed curve and monitors the current in real time, stopping immediately when it exceeds the 2A threshold.
6. A multi-channel dance acquisition and playback system based on unified time base and dual-path scheduling according to claim 2, characterized in that, The unified time base acquisition module also periodically detects the drift Δdrift between the master clock and the audio device clock. When |Δdrift| exceeds the 5ms threshold, a dynamic compensation mechanism is activated, which uses interpolation or sizing at the motion end and performs speed adjustment within ±0.5% at the audio end.
7. A multi-channel dance acquisition and playback system based on unified time base and dual-path scheduling according to claim 3, characterized in that, When matching channels with physical controllers, the dual-path playback scheduling module adopts a four-level priority strategy, with the priorities from high to low being: command line parameter overriding, YAML configuration file specification, automatic detection results, and default fallback based on name rules. It also supports both strict and lenient matching modes.
8. A multi-channel dance acquisition and playback system based on unified time base and dual-path scheduling according to claim 4, characterized in that, The automatic detection process of the hardware abstraction and adaptation module sends specific handshake commands to the enumerated serial port and CAN bus devices and identifies the hardware type and identity based on the response frame. Its hardware matching success rate is no less than 98.7%.
9. A multi-channel dance acquisition and playback system based on unified time base and dual-path scheduling according to claim 1, characterized in that, It includes a servo PWM normalization module, which uses a bilateral percentage conversion method to normalize the source servo PWM value to the range of [-1,1] before mapping it to the target servo range; Set a safety margin of 5%-10% during the conversion process. With a 0.5% dead zone And apply the first-order smoothing filter formula ; in, Filtering is performed to ensure that the final position fluctuation of the servo motor is no greater than ±0.5°.
10. A multi-channel dance acquisition and playback system based on unified time base and dual-path scheduling according to claim 1, characterized in that, Supports both simulation and real-machine operation modes; Switch modes using the dry_run and enable_motors startup parameters; In simulation mode, the system only performs logic and timing verification without performing hardware operations; In live mode, all actuators are fully driven.