ROS Moveit выбрать и разместить план движения не удалось

Я работаю над маршрутом захвата и размещения, используя робота-экскаватора, используя moveit pick and place и moveit_simple_grasps, чтобы генерировать захваты для конвейера выбора и размещения. У меня генератор схватывания работает нормально, но независимо от того, какие параметры я изменяю в файле config .yaml, я всегда получаю сообщение об ошибке без плана движения. может кто-нибудь помочь с проблемой? приложен код c ++ и файл grasp_data.yaml, требуемый в генераторе moveit_simple_grasps.

     [ INFO] [1521633757.233173297]: Added plan for pipeline 'pick'. Queue is now of size 130
[ INFO] [1521633757.233387878]: Added plan for pipeline 'pick'. Queue is now of size 131
[ INFO] [1521633757.233565758]: Added plan for pipeline 'pick'. Queue is now of size 132
[ INFO] [1521633757.233661266]: Added plan for pipeline 'pick'. Queue is now of size 133
[ INFO] [1521633757.259952855]: Manipulation plan 17 failed at stage 'reachable & valid pose filter' on thread 2
[ INFO] [1521633757.270448057]: Manipulation plan 119 failed at stage 'reachable & valid pose filter' on thread 3
[ INFO] [1521633757.270590459]: Manipulation plan 16 failed at stage 'reachable & valid pose filter' on thread 1
[ INFO] [1521633757.270922774]: Manipulation plan 118 failed at stage 'reachable & valid pose filter' on thread 0
[ INFO] [1521633757.294972059]: Manipulation plan 51 failed at stage 'reachable & valid pose filter' on thread 2
[ INFO] [1521633757.306820635]: Manipulation plan 84 failed at stage 'reachable & valid pose filter' on thread 1
[ INFO] [1521633757.309723185]: Manipulation plan 85 failed at stage 'reachable & valid pose filter' on thread 0
[ INFO] [1521633758.492223810]: Re-added last failed plan for pipeline 'pick'. Queue is now of size 1
[ INFO] [1521633758.500294621]: IK failed
[ INFO] [1521633758.507225297]: IK failed
[ INFO] [1521633758.515416594]: IK failed
[ INFO] [1521633758.515482202]: Sampler failed to produce a state
[ INFO] [1521633758.515531577]: Manipulation plan 1 failed at stage 'reachable & valid pose filter' on thread 0
[ INFO] [1521633758.515687029]: Pickup planning completed after 1.270707 seconds    ^C[rviz_mostafabakr_Inspiron_3537_29798_1993362218023763011-5] killing on exit [move_group-4] killing on exit   [robot_state_publisher-3] killing on exit [joint_state_publisher-2] killing on exit [virtual_joint_broadcaster_0-1] killing on exit shutting down processing monitor...

код:

  void pick(moveit::planning_interface::MoveGroupInterface &group){
ros::NodeHandle nh;
moveit_simple_grasps::SimpleGraspsPtr simpleGrasps;
moveit_visual_tools::MoveItVisualToolsPtr visualTools;
moveit_simple_grasps::GraspData graspData;
//graspData.base_link_ = "chassis";

if (!graspData.loadRobotGraspData(nh, "gripper"))
ros::shutdown();

visualTools.reset(new moveit_visual_tools::MoveItVisualTools("chassis"));
simpleGrasps.reset(new moveit_simple_grasps::SimpleGrasps(visualTools));

geometry_msgs::Pose objectPose;
objectPose.position.x = 3.0;
objectPose.position.y = 0.0;
objectPose.position.z = 0.25;
objectPose.orientation.x = 0.0;
objectPose.orientation.y = 0.0;
objectPose.orientation.z = 0.0;
objectPose.orientation.w = 1.0;

std::vector<moveit_msgs::Grasp> possibleGrasps;
simpleGrasps->generateBlockGrasps(objectPose, graspData, possibleGrasps);
//ROS_INFO_STREAM(possibleGrasps[0].grasp_pose.header.frame_id);

group.pick("barrel", possibleGrasps);
}int main(int argc, char **argv){

ros::init(argc, argv, "grippertrial");
ros::AsyncSpinner spinner(1);
spinner.start();

moveit::planning_interface::MoveGroupInterface moveGroup("e1_complete");   moveit::planning_interface::PlanningSceneInterface planningScene;
const robot_state::JointModelGroup* jointModelGroup = moveGroup.getCurrentState()->getJointModelGroup("gripper");

moveGroup.setPlanningTime(200.0);

moveit_msgs::CollisionObject barrel; barrel.id = "barrel";

barrel.operation = moveit_msgs::CollisionObject::ADD;
shape_msgs::SolidPrimitive primitive;
primitive.type = primitive.CYLINDER;
primitive.dimensions.resize(2);
primitive.dimensions[0] = 0.5;   //length
primitive.dimensions[1] = 0.25;  //diameter

//barrel upright
geometry_msgs::Pose barrelPose;
barrelPose.position.x = 3.0;
barrelPose.position.y = 0.0;
barrelPose.position.z = 0.25;
barrelPose.orientation.x = 0.0;
barrelPose.orientation.y = 0.0;
barrelPose.orientation.z = 0.0;
barrelPose.orientation.w = 1.0;
barrel.primitives.push_back(primitive);
barrel.primitive_poses.push_back(barrelPose);

std::vector<moveit_msgs::CollisionObject> collisionObjectsVector;
collisionObjectsVector.push_back(barrel);
std::vector<std::string> objectIds;
objectIds.push_back(barrel.id);
planningScene.removeCollisionObjects(objectIds);
planningScene.addCollisionObjects(collisionObjectsVector);
// sleep(5.0);
ros::WallDuration(5.0).sleep();

pick(moveGroup);

return 0;
}

и это файл .yaml, необходимый для moveit_simple_grasps

base_link: ‘шасси’

   gripper:
end_effector_name: 'gripper' #eef group name

# Default grasp params
joints: ['gripper_rotator_joint' , 'gripper_left_joint' , 'gripper_right_joint']

#open Gripper
pregrasp_posture: [0.0, 1.0, 1.0]
pregrasp_time_from_start: 4.0

#closed Gripper
grasp_posture: [0.0, 0.8, 0.8]
grasp_time_from_start: 4.0

postplace_time_from_start: 4.0

#max object width that can fit between fingers
max_grasp_width : 0.35

# Desired pose from end effector to grasp [x, y, z] + [R, P, Y]
grasp_pose_to_eef: [2.75869, -0.035, 2.23794]
grasp_pose_to_eef_rotation: [0.0, 0.0443414, 0.0]

end_effector_parent_link: 'quickcoupler'

проблема может быть в параметрах .yaml или что-то не так с кодом ??

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]