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
858 stars 174 forks source link

Adding missing header for std::set #1118

Closed Sergim96 closed 1 year ago

Sergim96 commented 1 year ago

This PR adds a missing header for the usage of std::set in the constraint manager. The lack of the header was responsible for compilation errors in some machines.

cmastalli commented 1 year ago

@nim65s it seems one of the jobs is using std::shared pointers for FCL geometry. Can you advise us on what to do?

nim65s commented 1 year ago

for those types, we shouldn't explicit std or boost, but rely on exposed types by hpp-fcl or pinocchio

cmastalli commented 1 year ago

for those types, we shouldn't explicit std or boost, but rely on exposed types by hpp-fcl or pinocchio

std::set is not supported by either dependency. At least, I couldn't see any use of it in those repositories.

Additionally, we are already including set in other parts of Crocoddyl, e.g., https://github.com/loco-3d/crocoddyl/blob/devel/include/crocoddyl/core/costs/cost-sum.hpp#L15, which didn't trigger any issue in past. Would this triggers an issue now? If so, it should be a deprecation procedure developed in the above mentioned dependencies; this might affect many other packages.

@Sergim96 could you test this PR with a docker? @nim65s could you share these dockers with him?

Given all these details, @nim65s what is your suggestion for sorting out this PR?

wxmerkt commented 1 year ago

I believe it's about not hard-coding the return type to be boost::shared_ptr but use the Pinocchio/HPP-FCL specified ptr-type as for CollisionGeometryPtr: image

I.e. in cost.cpp try the CollisionGeometryPtr type as the return object. Or use auto

cmastalli commented 1 year ago

Closing this issue due to inactivity.