Skip to content

Commit f6ab831

Browse files
committed
Complete checklist
1 parent f37470e commit f6ab831

1 file changed

Lines changed: 87 additions & 1 deletion

File tree

TEST_CHECKLIST.md

Lines changed: 87 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,93 @@
7373
- [ ] Command 2π rad/s with gear_ratio=1.0, pole_pairs=1 → verify VESC receives 60 ERPM
7474
- [ ] Command 1 rad/s with gear_ratio=5.0, pole_pairs=7 → verify VESC receives ~333 ERPM
7575

76-
## Published topics
76+
## Motor Current State Interfaces (D/Q Components)
77+
78+
### Average D-axis Current (Amperes)
79+
- [ ] Verify `average_id` is in Amperes
80+
- [ ] Verify value matches VESC packet `avg_id()`
81+
- [ ] Check sign: positive/negative indicates direction in D-axis
82+
- [ ] Verify updates in real-time during motor operation
83+
84+
### Average Q-axis Current (Amperes)
85+
- [ ] Verify `average_iq` is in Amperes
86+
- [ ] Verify value matches VESC packet `avg_iq()`
87+
- [ ] Check sign: positive/negative indicates direction in Q-axis
88+
- [ ] Verify updates in real-time during motor operation
89+
- [ ] Iq typically correlates with torque production
90+
91+
## Motor Voltage State Interfaces (D/Q Components)
92+
93+
### Average D-axis Voltage (Volts)
94+
- [ ] Verify `average_vd` is in Volts
95+
- [ ] Verify value matches VESC packet `avg_vd()`
96+
- [ ] Check magnitude relative to battery voltage
97+
- [ ] Verify updates in real-time during motor operation
98+
99+
### Average Q-axis Voltage (Volts)
100+
- [ ] Verify `average_vq` is in Volts
101+
- [ ] Verify value matches VESC packet `avg_vq()`
102+
- [ ] Check magnitude relative to battery voltage
103+
- [ ] Verify updates in real-time during motor operation
104+
105+
## Duty Cycle State Interface
106+
107+
### Duty Cycle (unitless, range [0, 1])
108+
- [ ] Verify `duty_cycle` is unitless (0.0 to 1.0)
109+
- [ ] Verify value matches VESC packet `duty_cycle_now()`
110+
- [ ] At rest: duty cycle should be near 0.0
111+
- [ ] At full throttle: duty cycle should approach 1.0
112+
- [ ] Verify updates in real-time during motor operation
113+
114+
## Servo State Interface
115+
116+
### Servo Position (unitless)
117+
- [ ] Verify `servo` mirrors the commanded servo value
118+
- [ ] VESC cannot read back servo position, so state = last command
119+
- [ ] Verify value persists between write cycles
120+
121+
## Command Interfaces
122+
123+
### Position Command (radians, mechanical)
124+
- [ ] Command position in mechanical radians
125+
- [ ] Verify conversion to VESC degrees: `vesc_deg = mechanical_rad * gear_ratio * 180/π`
126+
- [ ] Test with various gear_ratio values
127+
- [ ] Verify motor moves to commanded position
128+
129+
### Velocity Command (rad/s, mechanical)
130+
- [ ] Command velocity in mechanical rad/s
131+
- [ ] Verify conversion to VESC ERPM: `erpm = mechanical_rad_s * (60/2π) * gear_ratio * pole_pairs`
132+
- [ ] Test with various gear_ratio and pole_pairs values
133+
- [ ] Verify motor rotates at commanded speed
134+
135+
### Servo Command (unitless)
136+
- [ ] Command servo position (typically -1.0 to +1.0 or 0.0 to 1.0)
137+
- [ ] Verify value is sent directly to VESC `setServo()`
138+
- [ ] Verify state interface mirrors commanded value
139+
140+
### Current/Effort Command (Amperes)
141+
- [ ] Command current in Amperes using `effort` interface
142+
- [ ] Verify value is sent to VESC `setCurrent()`
143+
- [ ] Test positive values (forward torque)
144+
- [ ] Test negative values (reverse torque)
145+
- [ ] Verify motor torque correlates with commanded current
146+
147+
### Duty Cycle Command (unitless, range [0, 1])
148+
- [ ] Command duty cycle between 0.0 and 1.0
149+
- [ ] Verify values are clamped to [0, 1] range
150+
- [ ] Test command < 0.0 → verify clamped to 0.0
151+
- [ ] Test command > 1.0 → verify clamped to 1.0
152+
- [ ] Test command = 0.5 → verify exactly 0.5 sent to VESC
153+
- [ ] Verify motor speed correlates with duty cycle
154+
155+
### Brake Command (Amperes)
156+
- [ ] Command brake current in Amperes
157+
- [ ] Verify value is sent to VESC `setBrake()`
158+
- [ ] Test various brake current values
159+
- [ ] Verify motor decelerates/stops when brake is applied
160+
- [ ] Brake current should be positive (magnitude of braking force)
161+
162+
## Published Topics
77163

78164
- [ ] Verify `~/vesc_state` topic publishes `vesc_msgs::msg::VescState` messages
79165
- [ ] Verify `~/vesc_imu` topic publishes `vesc_msgs::msg::VescImuStamped` messages

0 commit comments

Comments
 (0)