UR5 Yolo+抓取GitHub项目复现(中) | 为UR5+robotiq85配置MoveIt包 | MoveItAssistant配置 | Ubuntu20.04+ Ros Noetic

前言

本篇主要是对上篇中提到的项目进行MoveItAssistant配置,使得我们能用MoveIt控制机械臂和抓手。

控制效果

夹爪控制

在这里插入图片描述

机械臂运动控制

在这里插入图片描述

MoveItAssistant配置

首先我觉得,配置MoveItAssistant的前提是URDF文件没啥大问题,可以拿我的文件对照一下

  • 先启动MoveItAssistant

    • roslaunch moveit_setup_assistant setup_assistant.launch
  • 首选是自碰撞矩阵,按照默认的Sampling Density自动生成就好了
    在这里插入图片描述

  • 添加一个虚拟关节,把base_link连接起来
    在这里插入图片描述

  • 然后是Group的配置,我记得机械臂是添加一个动力学求解器kdl_kinematics_plugin,然后Add Kin.Chain,然后抓手是直接Add joint(并且只用选择robotiq_85_left_kunckle_joint就可以了,下面会设置Passive Joints被动关节。实际运动的时候发现只要这个关节动了,另一个对称关节也会动)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • Robot Pose就是设置几个常用的姿态,在Rviz里可以很方便的调整,按照需求配置就可以了。我这里给机械臂配置了一个home,然后给抓手配置了open和closed两个状态,这样rviz里就可以直接选择机械臂open还是close
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

  • 然后是配置末端执行器,这个也没啥好说的。(关于这个Parent_link,我在URDF描述文件中抓手的Parent就是ee_link,所以这里也是。)(原来的URDF里还有一个robotiq couple被我移除了,我感觉作用不是很大,还会引起collision)
    在这里插入图片描述
  • 设置被动关节,主要是指定抓手上的关节。除了上面我们已选的那个关节,其他5个都添加进去
    在这里插入图片描述
  • Controllers点击自动生成,但是实际生成的过程中我发现我生成的Controllers文件是空的,然后直接调用了这位前辈的控制器文件ros_controllers.yaml
  • 我把他的地址贴出来,如果直接用他的控制器记得【组名】修改成自己的
  • 也可以直接去下面看我的项目,直接运行我的项目就可以了.

后来多次操作,我发现我每次用这里自动生成的控制器都是有问题的,所以还是在这位前辈的基础上进行修改

  • 简单看下他添加的控制器,一个是FollowJointTrajectory,一个是effort_controllers/JointTrajectoryController,按照chatGPT的解释:
    • "FollowJointTrajectory"是MoveIt中的默认控制器类型之一,它基于机器人关节轨迹进行控制。它使用关节轨迹规划器生成的轨迹信息,通过控制机器人的关节运动来执行规划的轨迹。
    • "effort_controllers/JointTrajectoryController"是一种基于关节努力(力或扭矩)控制的控制器类型。与"FollowJointTrajectory"控制器不同,它不仅控制关节的位置,还控制关节的effort。

    在选择控制器时,需考虑机器人的特性和所需的控制方式。如果你只需要控制关节的位置来执行运动规划,则选择"FollowJointTrajectory"控制器即可。如果你需要对关节施加特定effort,例如精确的力控制,则可以选择"effort_controllers/JointTrajectoryController"控制器。

在这里插入图片描述

  • 然后填Author information就可以点击Generate Package了
    在这里插入图片描述

项目地址

  • 我的项目位置
  • 主要指令如下:(记得先要catkin build,看我前一篇博客)
  • 这个是原版的,没有背景
    • roslaunch ur5_gripper_moveit_config demo_gazebo.launch
  • 这个是我改进后的,有背景
    • roslaunch levelManager lego_world_moveit.launch

Rviz控制

  • 我们用上面的指令启动MoveIt后,Gazebo里先点击一下继续
    在这里插入图片描述

  • Rviz先Add 一个 Motion Planning出来,修改Fixed Frame为base_link,就可以看到和Gazebo中一样状态的机械臂了
    在这里插入图片描述

  • 规划的时候分别选择不同的Planning Group,并利用不同的Goal State进行规划,先Plan后Execute,就可以看到开头图的效果。
    在这里插入图片描述

MoveIt指令控制

后面再补充

问题

  • 虽然实现了MoveIt控制,但是发现 在Gazebo中“标定”的过程非常困难,如何使得相机坐标系下的物体转变为机械臂base下的坐标系很难。我也没搞懂他们是怎么标定的,所以这个项目暂时先放一下。

参考内容

  • 其实一开始是看到这个前辈写的文章,用机械臂抓取小方块,感觉做的挺不错的,但是这个前辈做的MoveItAssistant有点不太清楚,前后很多地方都没讲清楚。
  • 然后发现这个前辈的项目的源头是这个项目

这个项目的问题就是版本比较老的,一些东西的编译在Ubuntu20.04+Ros Noetic上都会失败

  • 然后看到了这个项目,Yolo V5 + Grasp很不错,就决定去复现。

这个项目的话没有用到MoveIt,所以我在这篇文章中用MoveIt来控制机械臂和抓手运动

  • 然后配置MoveIt Assistant的过程中参考了这篇文章,写的很不错很详细,给了我很大的帮助。大家可以着重参考我的内容和这篇文章
本文介绍了如何使用ROS和MoveIt实现机械臂的自主避障和抓取。具体来说,我们使用深度相机获取环境的点云数据,并使用YOLO算法识别目标物体。然后,我们使用MoveIt规划机械臂的运动轨迹,以便能够避开障碍物并抓取目标物体。最后,我们使用Gazebo仿真平台对系统进行测试。 1. 环境搭建 首先,我们需要安装ROS和MoveIt。在安装完成后,我们需要安装以下软件: - pcl_ros:用于处理点云数据 - depthimage_to_laserscan:将深度图像转换为激光扫描数据 - yolo_ros:使用YOLO算法识别目标物体 - gazebo_ros_pkgs:使用Gazebo仿真平台进行测试 2. 点云数据处理 我们使用深度相机获取环境的点云数据。然后,我们使用pcl_ros软件将点云数据转换为ROS消息。接下来,我们使用depthimage_to_laserscan软件将深度图像转换为激光扫描数据。这些步骤将使我们能够在ROS使用点云数据和激光扫描数据。 3. 目标物体识别 我们使用yolo_ros软件使用YOLO算法识别目标物体。该软件将摄像机图像作为输入,并输出含检测到的物体的ROS消息。我们可以使用这些消息来确定目标物体的位置和方向。 4. 机械臂运动规划 我们使用MoveIt规划机械臂的运动轨迹。我们需要定义机械臂的运动范围和运动约束。我们可以使用MoveIt的可视化工具来定义这些约束。然后,我们可以使用MoveIt提供的API来规划机械臂的运动轨迹。 5. 自主避障和抓取 我们将目标物体的位置和方向与机械臂的运动轨迹相结合,以便机械臂能够避开障碍物并抓取目标物体。我们可以使用MoveIt提供的运动规划和执行API来控制机械臂的运动。 6. 系统测试 最后,我们使用Gazebo仿真平台对系统进行测试。我们可以将机械臂和目标物体模型添加到Gazebo,并使用ROS消息来控制它们的运动。我们可以使用Gazebo的可视化工具来查看机械臂的运动和目标物体的位置。 通过使用ROS和MoveIt,我们可以轻松地实现机械臂的自主避障和抓取功能。这种技术可以应用于许多领域,如自动化生产和无人机抓取
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乘风会落雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值