Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/ode joint factory #128

Open
wants to merge 24 commits into
base: develop
Choose a base branch
from

Conversation

haider8645
Copy link
Contributor

@haider8645 haider8645 commented Jan 2, 2023

Hello this PR introduces:

  1. Object factories for ODE Joints and objects
  2. The header and source files can be found in simulation/sim. Each object/joint has its own file.
  3. The factories keep a map of string, function pointers to static methods inside derived classes from ODEObject / ODEJoint.
  4. The NodeData class has a new string member variable nodeType which is used to then get the respective static method Instantiate(). The NodeType enum is not used anymore so that new objects can be registered to the factory via <string, functionptr> and we have no need to limit the objects to the enum. All default objects / joints area loaded into the factory at the time of intantiation of the NodeManager / JointManager respectively.

and this PR does not contain:

  1. The ODEJoint class still heavily depends on the enum JointType so dynamical loading of new joint types from configmaps etc. is not possible yet. The question is whether we need to do this or not?
  2. No implementatin of dynamic loading of new object types via plugin etc. is implemented/tested.

Successful Tests

  • The indoor_waste_site environment
  • The robot model for artemis
  • Loading primitive object types from the gui buttons

Failed Tests:

  • The Utah environment gives a segmentation fault. Not certain if this is due to the changes or something else

Best,
Haider

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants