plusone-robotics / moveit_simple

A wrapper around MoveIt that enables more traditional industrial robot programming.
Apache License 2.0
15 stars 12 forks source link

Add isNearSingular method #11

Closed shaun-edwards closed 7 years ago

shaun-edwards commented 7 years ago

A method is needed that returns true when the robot arm configuration is near singular.

nsnitish commented 7 years ago

@shaun-edwards! Determinant of the Jacobian is what we are concerned here, right?

shaun-edwards commented 7 years ago

Yes...although @geoffreychiou expressed some reservation about using the jacobian to determine singularity.

nsnitish commented 7 years ago

@geoffreychiou Can you please elaborate?

geoffreychiou commented 7 years ago

Basically a singularity occurs when the determinant of the Jacobian is equal to zero, but I found a article/stackoverflow comment a while back saying that you can't just take the determinant of J and check if it is close to zero.

One possibility is to compare the joint velocities to the Cartesian velocity. When the robot is near a singularity, the joint velocities should be very large compared to the Cartesian velocity. It would be up to you to determine what the threshold should be.