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

Support Floating, Planar joint types #8

Open
1 of 3 tasks
gkjohnson opened this issue Feb 3, 2018 · 5 comments
Open
1 of 3 tasks

Support Floating, Planar joint types #8

gkjohnson opened this issue Feb 3, 2018 · 5 comments
Labels
help wanted Extra attention is needed three.js Unity

Comments

@gkjohnson
Copy link
Owner

gkjohnson commented Feb 3, 2018

http://wiki.ros.org/urdf/XML/joint

  • prismatic
  • floating
  • planar

Open question: How do we set a float joint? 6 inputs for setOffset?

@gkjohnson
Copy link
Owner Author

gkjohnson commented May 16, 2018

Supporting the planar, floating, and prismatic joints would require updating the API for setting the position of the joint / adding a new function because angle doesn't make as much sense here

@gkjohnson
Copy link
Owner Author

Test model needed

@gkjohnson gkjohnson added the help wanted Extra attention is needed label Oct 8, 2020
@gkjohnson gkjohnson added this to the Feature Complete milestone Oct 10, 2020
@gkjohnson gkjohnson changed the title Support more joint types Support Floating, Planar joint types Oct 10, 2020
@EzraBrooks
Copy link
Contributor

I'm intending to contribute planar joint support sometime this week, as my project that uses urdf-loaders needs to support whole-body motion planning (achieved in the simplest case via an infinitely-variable "planar joint" representing the X,Y location of the robot). Do you have any advice or preferences on how I should implement the API?

@gkjohnson
Copy link
Owner Author

@EzraBrooks Awesome!

I think the setJointValue function can just be modified as it is. URDFJoint.setJointValue already takes a set of values to accommodate a multi dimensional joint case, so setting the joint would look like so:

robot.setJointValue( 'joint_name', x_value, y_value );

// or

robot.joints.joint_name.setJointValue( x_value, y_value );

This, of course, only lets you set both dimensions at a time. Setting one at a time could be done by just reusing the existing set joint value but if you need something more convenient then something like the following interface could work where the first argument is the index into the joint value tuple:

joint.setJointValueComponent( joint_value_index, joint_value );

@EzraBrooks
Copy link
Contributor

thanks. got held up behind another bug so far this week but myself or one of my teammates should be taking a stab at this soon :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed three.js Unity
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants