Closed YaoweiFan closed 3 years ago
Hi @YaoweiFan,
sorry for the late reply. Looking at your image it looks like you are very close to a singularity. Especially joint 6 is very heavily bent. Changing this joint angle even slightly from 3.328 to 3.1 rad makes the impedance controller stable in my case. Is it possible to change your starting configuration?
I also quickly calculated the singular values from J * J^T. They quickly drop to 10^-5. I'm wondering if it would makes sense to print some warning if the smallest singular value drops below a certain threshold, something like:
Eigen::Matrix<double, 6, 6> M = J.data * J.data.transpose();
Eigen::JacobiSVD<Eigen::MatrixXd> svd(M, Eigen::ComputeFullU | Eigen::ComputeFullV);
double critical = svd.singularValues()(5);
if (critical < 0.01) {
ROS_WARN_STREAM_THROTTLE(1, "Zero Jacobian close to Singularity. Smallest singular value of SVD: " << critical);
}
What do you think?
Thank you very much for your reply @gollth. Recently I found that the end-effector of the arm is going to be under the floor if the joint angles are what I specified before. Singularity maybe the reason too.
Under the floor seems unlikely to me, because you have z:=0.5
in your launch file. But I'm glad, that you solved your issue. All the best
I'm using
franka_gazebo
recently. When I change the value of argumentinitial_joint_position
, I find that the arm moves strangely. This is the joint position which I set,and this is my expected arm configuration ( I just set the argument
paused
true ). But when I set the value of argumentpaused
false, the arm moves strangely and can not maintain in equilibrium position ( I use cartesian_impedance_example_controller ). This is the full launch file:Could you give me a hint why does this happen?