loco-3d / crocoddyl

Crocoddyl is an optimal control library for robot control under contact sequence. Its solver is based on various efficient Differential Dynamic Programming (DDP)-like algorithms
BSD 3-Clause "New" or "Revised" License
808 stars 166 forks source link

Crocoddyl with pinocchio3-preview branch tests fail #1143

Closed jameswzhu closed 1 year ago

jameswzhu commented 1 year ago

Hello,

I would like to use Crocoddyl with the pinocchio3-preview branch of Pinocchio in order to compute the contact dynamics derivatives of optimal trajectories. When I build Crocoddyl with the master branch of Pinocchio, all the tests pass, but building with the pinocchio3-preview branch causes many of the tests to fail:

Test project /home/james/crocoddyl/build
      Start  1: test_states
 1/43 Test  #1: test_states ...................................***Failed    0.03 sec
      Start  2: test_actuation
 2/43 Test  #2: test_actuation ................................***Failed    0.01 sec
      Start  3: test_activations
 3/43 Test  #3: test_activations ..............................   Passed    0.01 sec
      Start  4: test_residuals
 4/43 Test  #4: test_residuals ................................***Failed    0.01 sec
      Start  5: test_costs
 5/43 Test  #5: test_costs ....................................***Failed    0.02 sec
      Start  6: test_costs_noFF
 6/43 Test  #6: test_costs_noFF ...............................***Failed    0.01 sec
      Start  7: test_cost_sum
 7/43 Test  #7: test_cost_sum .................................***Failed    0.01 sec
      Start  8: test_contacts
 8/43 Test  #8: test_contacts .................................***Failed    0.01 sec
      Start  9: test_controls
 9/43 Test  #9: test_controls .................................   Passed    0.01 sec
      Start 10: test_impulses
10/43 Test #10: test_impulses .................................***Failed    0.01 sec
      Start 11: test_multiple_contacts
11/43 Test #11: test_multiple_contacts ........................   Passed    1.23 sec
      Start 12: test_multiple_impulses
12/43 Test #12: test_multiple_impulses ........................   Passed    1.23 sec
      Start 13: test_contact_costs
13/43 Test #13: test_contact_costs ............................***Failed    0.02 sec
      Start 14: test_impulse_costs
14/43 Test #14: test_impulse_costs ............................***Failed    0.01 sec
      Start 15: test_actions
15/43 Test #15: test_actions ..................................***Failed    0.01 sec
      Start 16: test_diff_actions
16/43 Test #16: test_diff_actions .............................***Failed    0.02 sec
      Start 17: test_problem
17/43 Test #17: test_problem ..................................***Failed    0.02 sec
      Start 18: test_cop_support
18/43 Test #18: test_cop_support ..............................   Passed    0.00 sec
      Start 19: test_friction_cone
19/43 Test #19: test_friction_cone ............................   Passed    0.00 sec
      Start 20: test_wrench_cone
20/43 Test #20: test_wrench_cone ..............................   Passed    0.01 sec
      Start 21: test_boxqp
21/43 Test #21: test_boxqp ....................................   Passed    0.01 sec
      Start 22: test_solvers
22/43 Test #22: test_solvers ..................................***Failed    0.78 sec
      Start 23: pybinds-states
23/43 Test #23: pybinds-states ................................***Exception: SegFault  0.52 sec
      Start 24: pybinds-actuations
24/43 Test #24: pybinds-actuations ............................***Exception: SegFault  0.40 sec
      Start 25: pybinds-actions
25/43 Test #25: pybinds-actions ...............................***Exception: SegFault  0.41 sec
      Start 26: pybinds-shooting
26/43 Test #26: pybinds-shooting ..............................***Exception: SegFault  0.41 sec
      Start 27: pybinds-solvers
27/43 Test #27: pybinds-solvers ...............................***Exception: SegFault  0.42 sec
      Start 28: pybinds-costs
28/43 Test #28: pybinds-costs .................................***Exception: SegFault  0.54 sec
      Start 29: pybinds-contacts
29/43 Test #29: pybinds-contacts ..............................***Exception: SegFault  0.39 sec
      Start 30: pybinds-impulses
30/43 Test #30: pybinds-impulses ..............................***Exception: SegFault  0.38 sec
      Start 31: pybinds-squashing
31/43 Test #31: pybinds-squashing .............................   Passed    0.20 sec
      Start 32: example-python-double_pendulum
32/43 Test #32: example-python-double_pendulum ................***Exception: SegFault  0.38 sec
      Start 33: example-python-boxfddp_vs_boxddp
33/43 Test #33: example-python-boxfddp_vs_boxddp ..............***Exception: SegFault  1.88 sec
      Start 34: example-python-quadrotor
34/43 Test #34: example-python-quadrotor ......................***Exception: SegFault  0.25 sec
      Start 35: example-python-quadrotor_ubound
35/43 Test #35: example-python-quadrotor_ubound ...............***Exception: SegFault  0.25 sec
      Start 36: example-python-arm_manipulation
36/43 Test #36: example-python-arm_manipulation ...............***Exception: SegFault  0.35 sec
      Start 37: example-python-quadrupedal_gaits
37/43 Test #37: example-python-quadrupedal_gaits ..............***Exception: SegFault  1.83 sec
      Start 38: example-python-quadrupedal_walk_ubound
38/43 Test #38: example-python-quadrupedal_walk_ubound ........***Exception: SegFault  1.86 sec
      Start 39: example-python-bipedal_walk
39/43 Test #39: example-python-bipedal_walk ...................***Failed    0.88 sec
      Start 40: example-python-bipedal_walk_ubound
40/43 Test #40: example-python-bipedal_walk_ubound ............***Failed    0.85 sec
      Start 41: example-python-humanoid_manipulation
41/43 Test #41: example-python-humanoid_manipulation ..........***Exception: SegFault  0.92 sec
      Start 42: example-python-humanoid_manipulation_ubound
42/43 Test #42: example-python-humanoid_manipulation_ubound ...***Exception: SegFault  0.89 sec
      Start 43: example-python-humanoid_taichi
43/43 Test #43: example-python-humanoid_taichi ................***Exception: SegFault  0.91 sec

21% tests passed, 34 tests failed out of 43

Total Test time (real) =  18.39 sec

The following tests FAILED:
      1 - test_states (Failed)
      2 - test_actuation (Failed)
      4 - test_residuals (Failed)
      5 - test_costs (Failed)
      6 - test_costs_noFF (Failed)
      7 - test_cost_sum (Failed)
      8 - test_contacts (Failed)
     10 - test_impulses (Failed)
     13 - test_contact_costs (Failed)
     14 - test_impulse_costs (Failed)
     15 - test_actions (Failed)
     16 - test_diff_actions (Failed)
     17 - test_problem (Failed)
     22 - test_solvers (Failed)
     23 - pybinds-states (SEGFAULT)
     24 - pybinds-actuations (SEGFAULT)
     25 - pybinds-actions (SEGFAULT)
     26 - pybinds-shooting (SEGFAULT)
     27 - pybinds-solvers (SEGFAULT)
     28 - pybinds-costs (SEGFAULT)
     29 - pybinds-contacts (SEGFAULT)
     30 - pybinds-impulses (SEGFAULT)
     32 - example-python-double_pendulum (SEGFAULT)
     33 - example-python-boxfddp_vs_boxddp (SEGFAULT)
     34 - example-python-quadrotor (SEGFAULT)
     35 - example-python-quadrotor_ubound (SEGFAULT)
     36 - example-python-arm_manipulation (SEGFAULT)
     37 - example-python-quadrupedal_gaits (SEGFAULT)
     38 - example-python-quadrupedal_walk_ubound (SEGFAULT)
     39 - example-python-bipedal_walk (Failed)
     40 - example-python-bipedal_walk_ubound (Failed)
     41 - example-python-humanoid_manipulation (SEGFAULT)
     42 - example-python-humanoid_manipulation_ubound (SEGFAULT)
     43 - example-python-humanoid_taichi (SEGFAULT)
Errors while running CTest
make: *** [Makefile:110: test] Error 8

I will try to look into this more, but I was wondering if this was a known issue and if there are any fixes for this?

Thanks

cmastalli commented 1 year ago

We are planning to provide support for Pinocchio v3 only.

cmastalli commented 1 year ago

Please note that there is no feature of this branch we are exploiting in Crocoddyl.

Thank you for your patience.