优化轨迹制动与轮速反馈并补充实验记录和中英文说明
This commit is contained in:
+27
-15
@@ -16,8 +16,8 @@ The current work remains focused on the **single robot** and is in chassis integ
|
||||
| Stage | Current status | Notes |
|
||||
| --- | --- | --- |
|
||||
| 1. Basic single-robot functions | Integration in progress | Motion control, MCU communication, wheel feedback, emergency-stop I/O, battery, lights, remote control, and diagnostics are connected in code; physical validation is ongoing |
|
||||
| 2. Add parking functions | Partially started | Clamp control, limits, alarms, and test entries exist; tire recognition, vehicle entry, and the complete parking workflow are not implemented |
|
||||
| 3. Improve tracking | Started | Straight, arc, S-curve, and crab tests, experiment CSV recording, and Python plotting tools are available |
|
||||
| 2. Add parking functions | Partially started | Clamp control, limits, and alarms are connected; the clamp movement tests are currently commented out, while tire recognition, vehicle entry, and the complete parking workflow are not implemented |
|
||||
| 3. Improve tracking | Started | Legacy `SendMotion` tests remain, with new Stanley lateral + PID longitudinal control, composite motion plans, experiment CSVs, and a new plotting tool |
|
||||
| 4. Multi-robot scenarios | Deferred | Multi-robot R&D settings are excluded from the build, and the current version provides no fleet coordination |
|
||||
|
||||
## Overview
|
||||
@@ -41,7 +41,8 @@ No ROS/ROS 2, Docker, or Web simulator project is present. The plugins are loade
|
||||
| Single-robot motion | Straight, arc, and S-curve paths; forward, crab, and in-place rotation |
|
||||
| Chassis commands | `SendMotion`, `SendXYThSpeed`, and a virtual-Ackermann test backend |
|
||||
| Mode switching | Normal, crab, and spin modes; stop, pre-steer, and wait for wheel alignment before motion |
|
||||
| Tracking | Destination tracking, line tracking, Detour-based line tracking, and crab motion-frame tracking |
|
||||
| Tracking | Legacy destination, line, and crab tracking; new Stanley lateral control, PID longitudinal control, front/rear GCP allocation, path-deviation protection, and terminal-state checks |
|
||||
| State estimation | Detour pose and differentiated velocity; new experiments can retain the Detour pose while replacing its differentiated longitudinal velocity with a low-pass-filtered body velocity derived from steer-wheel feedback |
|
||||
| Clamp | Left/right speed commands, position feedback, soft limits, driver alarms, physical/virtual remote control, and target-position actions |
|
||||
| MCU communication | Bridge open/reset, version/state queries, digital I/O, synchronous serial/CAN access, and asynchronous callbacks |
|
||||
| Drive and feedback | Commands and speed/position/steering feedback for eight drive motors and four steer modules, plus remote-frame state |
|
||||
@@ -99,7 +100,9 @@ MyParking/
|
||||
│ └── commonusage/ # CommonUsage chassis-library source
|
||||
├── ref/ # Generated CommonUsage.dll (do not overwrite by hand)
|
||||
├── data_process/
|
||||
│ ├── 轨迹测试处理/ # Trajectory comparison, error, speed, and yaw plots
|
||||
│ ├── plot_new_controller_experiment.py # Six-panel plots for new-controller trials
|
||||
│ ├── 新版控制器轨迹测试处理/ # Python dependencies for the new plotting tool
|
||||
│ ├── 旧版控制器轨迹测试处理/ # Legacy trajectory, error, and response plots
|
||||
│ └── 电机响应处理/ # Steering-response snapshot analysis
|
||||
├── docs/
|
||||
│ ├── SteeringConstraintDesign.md # Steering-limit design notes
|
||||
@@ -186,7 +189,7 @@ MCU defaults confirmed from the current source:
|
||||
| CAN | One channel at `500000 bit/s`, with a `10 ms` retry time |
|
||||
| Serial | Three channels at `9600 bit/s`, with a `10 ms` receive-frame time |
|
||||
| Battery port index | `3` |
|
||||
| Maximum spin rate | `30 deg/s` |
|
||||
| Maximum remote-control spin rate | `30 deg/s` |
|
||||
| Wheel-speed diagnostic directory | `logs\wheel-speed` |
|
||||
|
||||
`docs/chassis参考.json` is a chassis-parameter example. No automatic loader for it was found in the source. Treat the actual host configuration as authoritative.
|
||||
@@ -195,20 +198,20 @@ Before physical testing, verify the port, vehicle ID, steering zero and limits,
|
||||
|
||||
## Single-Robot Test Entries
|
||||
|
||||
`MultiWheelC/MovementTests.cs` currently registers:
|
||||
`MultiWheelC/Experiments` currently enables these host test entries:
|
||||
|
||||
- `准备:四个舵轮与车头方向一致`
|
||||
- `SendMotion:连续前进4m`
|
||||
- `SendXYThSpeed:原地自转90°`
|
||||
- `SendXYThSpeed:原地自转180°`
|
||||
- `SendXYThSpeed:输入角度原地自转`
|
||||
- `SendMotion:左转90°半径2m圆弧`
|
||||
- `SendMotion:蟹行直线4m`
|
||||
- `SendMotion:蟹行左转90°半径2m圆弧`
|
||||
- `SendMotion:4m S型曲线`
|
||||
- `夹臂关闭测试`
|
||||
- `夹臂启动测试`
|
||||
- `新版控制器:4m直线轨迹跟踪`
|
||||
- `新版控制器:直线-左半圆-直线轨迹跟踪`
|
||||
- `新版控制器:直线-圆弧-折线组合测试`
|
||||
|
||||
These are run through the Clumsy host's test interface and are not an automated `dotnet test` suite. Motion tests record the experiment number, reference path, Detour pose, and control commands according to their configuration.
|
||||
These are run through the Clumsy host's test interface and are not an automated `dotnet test` suite. Motion tests record the experiment number, reference path, Detour pose, wheel-derived velocity, and control commands according to their configuration. The clamp tests in `MultiWheelC/Experiments/ClampTests.cs` are currently commented out in full and are not registered with the host.
|
||||
|
||||
## Experiment Data Analysis
|
||||
|
||||
@@ -224,14 +227,23 @@ Medulla wheel-speed diagnostics can be controlled with the `StartWheelSpeedDiagn
|
||||
logs/wheel-speed/
|
||||
```
|
||||
|
||||
### Trajectory processing
|
||||
### New-controller trajectory processing
|
||||
|
||||
```powershell
|
||||
python -m pip install -r data_process\轨迹测试处理\requirements.txt
|
||||
python data_process\轨迹测试处理\run_all_plots.py "path\trial1.csv" "path\trial2.csv" --output-dir "path\plots"
|
||||
python -m pip install -r data_process\新版控制器轨迹测试处理\requirements.txt
|
||||
python data_process\plot_new_controller_experiment.py "path\trial1.csv" "path\trial2.csv" --output-dir "path\plots"
|
||||
```
|
||||
|
||||
The default resampling frequency is `20 Hz`, and the default filter window is `0.55 s`; use `--frequency` and `--window` to change them.
|
||||
This tool creates one six-panel summary for each new-controller CSV, covering the path, lateral/heading errors, speed, and front/rear GCP and four-wheel steering angles. When no CSV is passed, it scans only the `data_process` root and its `data` subdirectory.
|
||||
|
||||
### Legacy-controller trajectory processing
|
||||
|
||||
```powershell
|
||||
python -m pip install -r data_process\旧版控制器轨迹测试处理\requirements.txt
|
||||
python data_process\旧版控制器轨迹测试处理\run_all_plots.py "path\trial1.csv" "path\trial2.csv" --output-dir "path\plots"
|
||||
```
|
||||
|
||||
The legacy tool defaults to `20 Hz` resampling and a `0.55 s` filter window; use `--frequency` and `--window` to change them.
|
||||
|
||||
### Steering-response processing
|
||||
|
||||
|
||||
Reference in New Issue
Block a user