utiasDSL / upright

[RA-L 2023] Fast nonprehensile object transportation with model predictive control on a mobile manipulator.
https://arxiv.org/abs/2305.17484
MIT License
63 stars 8 forks source link

About MPC Solver Method : SLQ and SQP #7

Closed DiomandLEE closed 2 months ago

DiomandLEE commented 2 months ago

Hello, sorry to bother you again. Do you know what practical problems the OCS2 SQP (multiple shooting) and SLQ (DDP) are suitable for? I see that only the quadruped robot example uses the SQP option, while the other examples use the SLQ algorithm of DDP. Also, the useFeedbackPolicy option is set to false for SLQ and true for SQP.

I'm not sure why this is the case, but I noticed that you are using the SQP algorithm. What was your reason for choosing this? Additionally, you changed SensitivityIntegratorType::RK2 to SensitivityIntegratorType::RK4. Why is that?

adamheins commented 2 months ago

DDP does not have a way to handle hard inequality constraints, which means they need to be added to the cost as penalties. For this work, I found this led to weird cost landscapes and odd behaviour that was difficult to tune, which is why I switched to SQP. I also actually found SQP to run a bit faster.

Regarding changing the integrator, I don't have a really strong reason for doing this. While doing some initial tuning I think I changed that setting and it didn't make a big difference to performance either way, if I recall correctly.

DiomandLEE commented 2 months ago

I see, thank you for making this attempt and helping others save time exploring. I also noticed your issue in OCS2: ocs2/issues/30. Very detailed, respect!