Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

modelling an endoscopic arm with urdf

Dear ROS-Users,

I'm currently trying to use ROS for a special type of robotic manipulator: it's an endoscope-like, flexible "Snake"-Arm.

At the moment I'm trying to find a good way to describe the kinematics of it for ROS and implement forward/inverse kinematics services.

However, with traditional urdf-modelling using links with rigid shapes as visual and collision as well as revolute joints, I can not describe the manipulator correctly.

Think of bending one of the snake segments, then the according link is not inflexibly flipping but rather bending in a circular arc. Thus, the pose of the segment's tip is not traditional rotate(angle)'n'translate(length) but follows the formula of 'radius of curvature'.

My question now is: is it possible to model such manipulator with urdf? I guess I would need a special type of joint for which (a modified) robot_state_publisher computes the transformations according to the snake arm kinematics. Is there already such a joint type? How can I create a new type? I could then add e.g. publishFlexibleTransforms() for these joints to the robot_state_publisher using the correct forward kinematics similar to publishTransforms() and publishFixedTransforms().

As to simulation of such manipulator: As gazebo does not support flexible/deformable physics (yet -> http://kforge.ros.org/pipermail/gazebo-list/2012-December/004338.html), we already started to use blender as a simulation environment with Morse to interface between ROS and Blender.

Any comments on this are welcome!

modelling an endoscopic arm with urdf

Dear ROS-Users,

I'm currently trying to use ROS for a special type of robotic manipulator: it's an endoscope-like, flexible "Snake"-Arm.

At the moment I'm trying to find a good way to describe the kinematics of it for ROS and implement forward/inverse kinematics services.

However, with traditional urdf-modelling using links with rigid shapes as visual and collision as well as revolute joints, I can not describe the manipulator correctly.

Think of bending one of the snake segments, then the according link is not inflexibly flipping but rather bending in a circular arc. Thus, the pose of the segment's tip is not traditional rotate(angle)'n'translate(length) but follows the formula of 'radius of curvature'.

My question now is: is it possible to model such manipulator with urdf? I guess I would need a special type of joint for which (a modified) robot_state_publisher computes the transformations according to the snake arm kinematics. Is there already such a joint type? How can I create a new type? I could then add e.g. publishFlexibleTransforms() for these joints to the robot_state_publisher using the correct forward kinematics similar to publishTransforms() and publishFixedTransforms().

As to simulation of such manipulator: As gazebo does not support flexible/deformable physics (yet -> http://kforge.ros.org/pipermail/gazebo-list/2012-December/004338.html), we already started to use blender as a simulation environment with Morse to interface between ROS and Blender.

Any comments on this are welcome!