Rosanswers logo

I would like to create a simple simulation of a ball screw mechanism. I understand how I must create a mesh of a threaded ball screw hex nut and a mesh of a threaded ball screw shaft, but how would I connect them joint-wise?

How do I make the threaded bolt shaft turn to move the nut?

Is it necessary to do this as a plugin, and if not, would it be better to do it as a plugin as an easily distributable example for others?


Originally posted by TurtleBot_Fan on ROS Answers with karma: 287 on 2012-06-02

Post score: 5

Original comments

Comment by JonW on 2012-07-12:
are you trying to model the ball screw itself, or just the effect of the ball screw? Could you create the effect using a prismatic joint? http://gazebosim.org/wiki/sdf_joint

Comment by Ryan on 2012-07-18:
What general approaches have you considered? This is outside of the realm of what Gazebo is usually used for, so providing additional context might help the community answer if certain approaches are good or bad.

Comment by Ryan on 2012-07-22:
Hi @TurtleBot_Fan, I notice you're still having problems here. What have you tried so far in terms of joint types to connect the two links?

Comment by TurtleBot_Fan on 2012-07-24:
JonW, I want to model the ball screw mechanism so I can accurately simulate a Linear Actuator that will be coupled with a titanium spring much like the SAFFIR Humanoid uses.

Comment by TurtleBot_Fan on 2012-07-24:
Ryan, I don't see an appropriate joint type to try, so I am stumped, hence needing guidance. I was hoping someone already did this or somthing similar already so I could push forward to more important problems instead of reinventing the wheel at this elementary level.

Comment by TurtleBot_Fan on 2012-07-24:
Ryan, You mentioned my simulation to be "outside the realm of what Gazebo is usually used for". I'm under the impression that DARPA deemed Gazebo to be the simulator of choice for the Humanoid-centric latest Grand Challenge, so it seemed doing the simulation I proposed would be simple compared to a complete Humanoid simulation. I expected more existing support already done along the lines of my ball screw simulation due to DARPA's selection of this simulator.


1 Answer 1


Rosanswers logo

gazebo supports a screw joint natively, if you take a look at pr2_description, there's a small example in torso.gazebo.xacro:

  <joint:screw name="${name}_screw_torso_lift_joint">
      <anchorOffset>0 0 0</anchorOffset>
      <axis>0 0 1</axis>

here is a video of a simple screw joint

if this is what you were looking for, I can provide a more succinct example?

Originally posted by hsu with karma: 5780 on 2012-07-24

This answer was ACCEPTED on the original site

Post score: 4

Original comments

Comment by bit-pirate on 2012-07-24:
That should do the trick! Did you implement more such complex joints? And how is this implemented?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.