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

Add joinType option to linkattacher #461

Merged
merged 1 commit into from
Jan 28, 2020

Conversation

lrapetti
Copy link
Member

This PR add the possibility to use linkattacher plugin creating type of joint different from fixed. In particular, the fixed joint will remain the default type, but any other existing jointType can be used by defining jointType in the configuration as explained in https://github.com/lrapetti/gazebo-yarp-plugins/tree/update-linkattacher/plugins/linkattacher#usage

@lrapetti
Copy link
Member Author

The only problem with this implementation involves the fact that when the jointType does not exists, calling _world->Physics()->CreateJoint(jointType,parent_model) raises an exception error with no info.

libc++abi.dylib: terminating with uncaught exception of type gazebo::common::Exception
gzclient(28783,0x1160b85c0) malloc: Incorrect checksum for freed object 0x7fcd835c39d0: probably modified after being freed.
Corrupt value: 0x746c7561666564
gzclient(28783,0x1160b85c0) malloc: *** set a breakpoint in malloc_error_break to debug

I don't know if this should be somehow handled.

CHANGELOG.md Outdated Show resolved Hide resolved
@traversaro
Copy link
Member

The only problem with this implementation involves the fact that when the jointType does not exists, calling _world->Physics()->CreateJoint(jointType,parent_model) raises an exception error with no info.

libc++abi.dylib: terminating with uncaught exception of type gazebo::common::Exception
gzclient(28783,0x1160b85c0) malloc: Incorrect checksum for freed object 0x7fcd835c39d0: probably modified after being freed.
Corrupt value: 0x746c7561666564
gzclient(28783,0x1160b85c0) malloc: *** set a breakpoint in malloc_error_break to debug

I don't know if this should be somehow handled.

I would list explicitly the supported joint types, and fail early with a clear error message if one of the non-supported types is passed.

@lrapetti
Copy link
Member Author

lrapetti commented Jan 27, 2020

I would list explicitly the supported joint types, and fail early with a clear error message if one of the non-supported types is passed.

@traversaro
I think this can be a solution. However, I am not sure what documentation I should refer to list the available joints in Gazebo, since as far as I understood, it depends on the Physics Engine .

A possibility, is that I might refer to SDF documentation regarding joint types.

@traversaro
Copy link
Member

A possibility, is that I might refer to SDF documentation regarding joint types.

Yes, let's refer to that and only allow those values. In the remote case in which a new joint type will be added to SDF, we will update the plugin.

@lrapetti
Copy link
Member Author

A possibility, is that I might refer to SDF documentation regarding joint types.

Yes, let's refer to that and only allow those values. In the remote case in which a new joint type will be added to SDF, we will update the plugin.

I have add the check with 99485d1, and I have also tested all the available joint types noting that gearbox joint type is currently not working (gazebo crashes as if the joint type doesn't exist). I have updated the documentation accordingly with 00b2711.

@lrapetti
Copy link
Member Author

I have cleaned the commit history, waiting for the checks to merge.

@traversaro traversaro merged commit 42d6f74 into robotology:devel Jan 28, 2020
@traversaro
Copy link
Member

I have cleaned the commit history, waiting for the checks to merge.

CI is fine, merged. Thanks for the contribution. We do not plan for any feature release in the near future, if you need this change out for 2020.02 feel free to ping me (see robotology/robotology-superbuild#331).

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.

2 participants