-
Notifications
You must be signed in to change notification settings - Fork 320
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
tool_pose action fails #149
Comments
Hi @Achllle First of all, this package is officially supported on Ubuntu 14.04 only, not Ubuntu 16.04. Ideally, please test on an Ubuntu 14.04 machine Then, it is possible that the robot is not able to reach a pose, even if this pose is in the robot workspace, depending where is the robot initially. Have you tried with other poses as well? Please have a look at the Q and A below that explains what happens within the robot when you send a pose request: Q: I am providing a list of Cartesian position to the robot, but it almost always stops right in the middle. Why? A: When you send a Cartesian position command to the robot, it does a bunch of things:
this means that the robot will never stop trying to reach a commanded Cartesian pose until it reaches it within an acceptable error margin.This explains why the robot can stop in the middle of a trajectory. It will not try to reach point 3 if it was not able to reach point 2 before within an acceptable error margin.One important thing to consider is that it is not necessarily the pose you provided that is inaccessible to the robot, but maybe one of the ‘next achievable point’ computed by the robot depending on its current position makes it come too close from a singular config, or too close from a self-collision, etc. Important parameters to consider are:
A few things that help:
Let us know |
A few more details after testing on a MICO here: If you do not want to be bothered by this virtual cylinder and you want the robot to go to this exact pose, you can always choose to control the robot with MoveIt. |
Thanks for your thorough reply. Since I need a planner that will always find the result if it exists and not even attempt moving if it can't, I'll use MoveIt! instead. There's not a lot of documentation on how the tool pose action service works and I assumed it would be superior because it's specific to the MICO robot. Perhaps this should be documented on the wiki. |
Hi @Achllle Ok, I'll add a few more details in the README. In short, the tool pose action service will send Cartesian position commands to the robot and the inverse kinematics will be handled within the robot. The way the inverse kinematics algorithm that is programmed in the robot works is explained in the Q & A I sent earlier. Good luck with Moveit :) |
Problem
MICO arm doesn't execute move sent with tool_pose
Steps to reproduce
Example 1
roslaunch kinova_bringup kinova_robot.launch kinova_robotType:=m1n6s300
. This launches fine.rosrun some_package kinova_test.py. This brings the robot to a preprogrammed pose. It executes, but the bringup terminal reports
Trajectory command failed`.rostopic pub -r 100 /m1n6s300_driver/in/joint_velocity kinova_msgs/JointVelocity "{joint1: 0.0, joint2: -10.0, joint3: 0, joint4: 0.0, joint5: 0.0, joint6: 0}"
--> move joint 2, this executes finerosrun some_package kinova_test.py
. This fails: nothing executes and the sameTrajectory command failed
is shown.The robot is connected to an Ubuntu 16.04 laptop using ROS Kinetic through USB. The pre-programmed pose is clearly in the workspace and any movement using the rostopic pub command will make the next execution of the script fail.
Example 2
Run step 1-3 and change the script
kinova_test.py
below to go to the poseand skip step 4 and 5. The robot will not even get to the pose.
test script (kinova_test.py)
The text was updated successfully, but these errors were encountered: