@calcmogul Update on this topic:
I simplified the problem by reducing my desired path to a sort of L-shape made of 3 waypoints: start, middle, and end. For simulation purposes, I set my max velocity to 1 m/s and my max accel to 8 m/s^2.
Re-computed the path, confirmed the jerk is still there (and that it’s pegging the left motor, so I lose control authority for a bit). Looked at the trajectory output by Pathweaver and confirmed that, yes, Pathweaver is asking for a path with discontinuous jerk. Pathweaver is doing this around the waypoint (see sample at bottom), then it settles back into smooth accelerations.
As a workaround, I removed the jerk by deleting the step in the path where acceleration pegs and trusting the Path class to interpolate across the missing point. So the robot ends up a little off the bead because the interpolated path is not the same, but less off the bead than with the wiggle.
I’ll try and pry Pathweaver open to understand why it might be making a non-smooth maneuver around that waypoint.
{
"acceleration": 0.07285177440987455,
"curvature": 3.3342854552381795,
"pose": {
"rotation": {
"radians": 0.5812103411680642
},
"translation": {
"x": 3.4154115992352985,
"y": 0.19334391917364613
}
},
"time": 3.712412833901605,
"velocity": 0.4614674858512714
},
{
"acceleration": 1.3103997600745882,
"curvature": 3.2960189898060612,
"pose": {
"rotation": {
"radians": 0.6423397063788766
},
"translation": {
"x": 3.4303389419949006,
"y": 0.20381754348376724
}
},
"time": 3.7518060087536296,
"velocity": 0.4643373485388798
},
{
"acceleration": 8.000000000000004,
"curvature": 2.7428773377825513,
"pose": {
"rotation": {
"radians": 0.6947093399993889
},
"translation": {
"x": 3.4437141860971394,
"y": 0.21439905096588685
}
},
"time": 3.786806696773539,
"velocity": 0.5102022417226147
},
{
"acceleration": -3.2217203108677803,
"curvature": 5.972926206200937e-14,
"pose": {
"rotation": {
"radians": 0.7440993450278488
},
"translation": {
"x": 3.4677245280905495,
"y": 0.2357495657717692
}
},
"time": 3.833030518087537,
"velocity": 0.8799928122345966
},
{
"acceleration": -0.5951304538540761,
"curvature": 1.9004649819562072,
"pose": {
"rotation": {
"radians": 0.814577028140732
},
"translation": {
"x": 3.513862328033597,
"y": 0.280407110690005
}
},
"time": 3.91977017392661,
"velocity": 0.6005419012601734
},