我们是一群正在攻读学士学位的学生,我们遇到一个问题,我们需要使用ROS的moveit为6自由度机器人手臂生成一系列轨迹目标(姿势,速度,acc)(无碰撞)虽然机器人模型和碰撞是在Rviz的环境中设置的,但主要目的是让机器人用球拍击球,所以这就是为什么我们需要发送一系列目标的原因,以便可以将击球力施加到球上而不是只需移至球的位置并在到达时具有零acc即可。
请,我们将不胜感激:)
答案 0 :(得分:0)
似乎有两种可能。一种是您可以plan over Cartesian paths使用MoveIt:
moveit::planning_interface::MoveGroup group("right_arm");
std::vector<geometry_msgs::Pose> waypoints;
geometry_msgs::Pose target_pose3 = start_pose;
geometry_msgs::Pose target_pose3 = waypoint_pose;
waypoint_pose.position.x += 0.2;
waypoints.push_back(waypoint_pose); // Add first waypoint
waypoint_pose.position.y -= 0.2;
waypoints.push_back(waypoint_pose); // Add second waypoint
// Compute the Cartesian trajectory (stored in a RobotTrajectory)
moveit_msgs::RobotTrajectory trajectory;
group.computeCartesianPath(waypoints,
0.01, // task space stepsize (meters)
0.0, // jump threshold
trajectory);
缺点可能是我不确定您是否可以在每个航路点指定所需的速度和加速度,因此,如果您有这些限制,此选项可能对您不起作用。
另一个选项可以是Descartes,它可以进行笛卡尔路径规划。有教程here和here,在Descartes / MoveIt上还有some discussion!积分。 This page看起来有很多关于笛卡尔的文档。