0.前言
我的学习思路向我的文章方向一样发散,但是我的感受是, 及时的进行实物实验会拓展自己的思路
1.驱动实际UR机器人
1.1连接
ur10与ros连接
如果出现rviz,初始化失败,无法plan的情况
把ur10.urdf.xacro里边的关节限制该成-2pi到2pi(好像是两个文件,反正你找ur_description,有几个改几个)
1.2示教器驱动
那个示教器(就是ur10自带的gui界面)功能可多了,我第一次实现圆弧就是通过这个
1.3rviz界面
这个学rviz1的时候都不难的哈,然后界面的robot/link/wrist_3_link的位置就是终端位置
1.4c++文件驱动
文件配置方法
#include<moveit/move_group_interface/move_group_interface.h>
#include <moveit/planning_scene_interface/planning_scene_interface.h>
#include <moveit_msgs/DisplayRobotState.h>
#include <moveit_msgs/DisplayTrajectory.h>
#include <moveit_msgs/AttachedCollisionObject.h>
#include <moveit_msgs/CollisionObject.h>
#include <vector>
int main(int argc, char **argv)
{
//初始化,其中ur_test02为节点名
ros::init(argc, argv, "ur_test01");
//多线程
ros::AsyncSpinner spinner(1);
//开启新的线程
spinner.start();
//初始化需要使用move group控制的机械臂中的arm group
moveit::planning_interface::MoveGroupInterface arm("manipulator");
//允许误差
arm.setGoalJointTolerance(0.001);
//允许的最大速度和加速度
arm.setMaxAccelerationScalingFactor(0.2);
arm.setMaxVelocityScalingFactor(0.2);
geometry_msgs::Pose target_pose1;
target_pose1.orientation.x = -0.21228;
target_pose1.orientation.y = 0.3;
target_pose1.orientation.z = -0.55395;
target_pose1.orientation.w = 0.74702;
target_pose1.position.x = -1.0747;
target_pose1.position.y = -0.14314;
target_pose1.position.z = 0.56907;
//std::vector&