Open firesurfer opened 9 months ago
@RobertWilbrandt and @fmauch sorry for already pushing. But this is a real show stopper and I have not clue what to do about. If there is additional information needed I am happy to provide that.
It seems to be especially related to a certain configuration of the arm:
In this configuration neither the Pilz linear planner nor Ompl with a cartesian target is able to plan the motion.
Hey, sorry for not getting back to you on this sooner. I'm currently trying to reproduce this. Could you provide some more information on the problem? In particular:
I hope that i'm able to reproduce this locally
Hey,
Joint positions: [0.2, -0.8, 1.6, 0.0, 0.0, 0.1] - Plan to a cartesian pose ["ur/tool0", xyz=(-0.1,0.1,0.0), rpy=(0.0,0.0,0.0)] Endeffector also "ur/tool0". Pilz linear planer reports:
[winder_moveit_node-14] [ERROR] [1710410153.520596082] [moveit.pilz_industrial_motion_planner.trajectory_functions]: Joint acceleration limit of ur_top/elbow_joint violated. Set the acceleration scaling factor lower! Actual joint acceleration is 25.3806, while the limit is 5.
[winder_moveit_node-14] [ERROR] [1710410153.520642549] [moveit.pilz_industrial_motion_planner.trajectory_functions]: Inverse kinematics solution at 1.6s violates the joint velocity/acceleration/deceleration limits.
[winder_moveit_node-14] [ERROR] [1710410153.520694916] [moveit.pilz_industrial_motion_planner.trajectory_generator]: Failed to generate valid joint trajectory from the Cartesian path
In this specific case the OMPL Cartesian planner actually manages to plan a trajectory but it is not straight.
Regarding the collision meshes. Please see my email as we do not want to show screenshots of the additional tools online. Also note: with the default calibration it plans just fine. Also for many, many other motions it also just works fine. It was just by random that I implemented an integration test for our framework which uses this combination.
Just as a follow up what I already tried:
As a follow-up on our offline discussions: Our current assumption is that the robot with the correction appplied is too close to a singularity (4 axes in parallel) and the planners cannot correctly handle this (even though i'm not quite sure why a configuration-space planner like the ompl-based ones should have problems with this). I did not yet get to reproducing this, but at this point we mainly want to exclude that there is some problem with some collision geometry that plays into the observed problems.
@RobertWilbrandt I am pretty sure that the assumption is correct after doing more tests. It really only happens if the two wrist joints are in parallel.
We solved this by turning the component we want to interact with by 90°...
What still puzzles me a bit is that this only happens after applying the calibration from the robot.
Feature summary
Hi,
we just finished the mechanical setup of the second version of our machine. Today a read the kinematics calibration from the new arms and applied them to the URDF. Interestingly especially the PILZ planner (linear in the provided example) is not able the plan motions that it were able to plan before applying the calibration.
I disabled all machine specific parts in RVIZ for the screenshot but I guess the point becomes clear. We want to perform a linear cartesian motion from
start_pose
toend_pose
.PILZ reports either
unable to find IK Solution
or the typicalJoint velocity limit of ur_top/elbow_joint violated. Set the velocity scaling factor lower! Actual joint velocity is -33.3537, while the limit is 3.14159.
With the default kinematics applied the planning succeeds.
The kinematics read from the arm:
In our setup we have two arms. Whats interesting is that the behavior occurs on both of them. (In our old machine setup we also have two arms and both of them work fine). So this looks somehow systematic.