How to move small distances

269 views
Skip to first unread message

nino....@gmail.com

unread,
May 9, 2014, 3:52:37 PM5/9/14
to moveit...@googlegroups.com
Hey

i am using the move group interface to move my ABB IRB-140. Almost all works fine except, when i try to move just 0.1 mm in the Cartesian space. I tried the following:

//////////////////////////////////////////////////////////////////my code

%%some staff for the initialization ....


    //get the current position of the robot
    robot_state::RobotState start_state(*group->getCurrentState());
    geometry_msgs::Pose start_pose2;
    geometry_msgs::Pose target_pose1;
    geometry_msgs::PoseStamped target_pose;

    //get the actual Cartesian point
    target_pose=group->getCurrentPose();
    //set constrain
    group->setGoalPositionTolerance(0.0001);

    //build the fake start position
    start_pose2=target_pose.pose;
    start_pose2.position.x-=0.04;
    const robot_state::JointModelGroup *joint_model_group1 =start_state.getJointModelGroup(group->getName());
    start_state.setFromIK(joint_model_group1, start_pose2);
    group->setStartState(start_state);

    //build the goal position
    target_pose1=target_pose.pose;
    target_pose1.position.x -= 0.0015;
    target_pose1.position.x += 0.0015;
    group->setPoseTarget(target_pose1);
 
    //execute the path
    group->move();


//////////////////////////////////////////////////
But the Robot don't move. I get the following message from the Interface:

/////////////////////////////////////////////// msg
[ INFO] [1399664374.268209344]: Goal constraints are already satisfied. No need to plan or execute any motions
/////////////////////////////////////////////
I do understand the message, but i  do not know how to handle it. As you can see in my code, i tried to set a fake start position.

Do some one have a idea how to solve these easy problem?

Regards
Nino

Shaun Edwards

unread,
May 27, 2014, 9:28:01 PM5/27/14
to nino....@gmail.com, moveit-users
Nino,

Sorry I missed this email earlier.  The goal constraints checking is done at the action node level in ROS-Industrial.  The action node uses the current robot position as reported by the robot directly.  This is why setting a fake start position does not work as expected.  The "close enough" distance is loaded in the action node by parameter.  The moveit goal tolerance is most likely ignored.  I recommend looking at the joint trajectory action node to achieve the desired behavior.

Shaun
Reply all
Reply to author
Forward
0 new messages