141 SCOPED_TRACE(
"PositionConstraint");
144 move_group_->setStartStateToCurrentState();
145 const geometry_msgs::msg::PoseStamped eef_pose = move_group_->getCurrentPose();
148 geometry_msgs::msg::PoseStamped pose_goal = eef_pose;
149 pose_goal.pose.position.y += 0.3;
150 pose_goal.pose.position.z -= 0.3;
153 moveit_msgs::msg::PositionConstraint position_constraint;
154 position_constraint.header.frame_id = ref_link_;
155 position_constraint.link_name = ee_link_;
156 position_constraint.weight = 1.0;
158 shape_msgs::msg::SolidPrimitive cbox;
159 cbox.type = shape_msgs::msg::SolidPrimitive::BOX;
160 cbox.dimensions = { 0.1, 0.4, 0.4 };
161 position_constraint.constraint_region.primitives.emplace_back(cbox);
163 geometry_msgs::msg::Pose cbox_pose;
164 cbox_pose.position.x = eef_pose.pose.position.x;
165 cbox_pose.position.y = 0.15;
166 cbox_pose.position.z = 0.45;
167 cbox_pose.orientation.w = 1.0;
168 position_constraint.constraint_region.primitive_poses.emplace_back(cbox_pose);
171 moveit_msgs::msg::Constraints path_constraint;
172 path_constraint.name =
"position constraint";
173 path_constraint.position_constraints.emplace_back(position_constraint);
175 planAndMove(pose_goal, path_constraint);