我感觉大多数用moveit做机械臂控制的,在一开始,都是控制一个光杆机械臂,但是随着自己对ros和moveit学习的深入,会发现只控制一个光杆机械臂好像没什么意思嘛。最起码要给自己的机械臂加一个夹爪让他做一个抓取和放置的操作吧。好,有需求那么接下来就有问题了。我的这个夹爪的结构应该是什么样子?我有了夹爪结构我该怎么加到机原来械臂上去?原来的机械臂URDF模型我已经做了无数修改了,我该怎么在保留这些设置的基础上,把我的夹爪装上去。接下来就从这两个问题出发,分享一下我解决问题的过程。

1、我的夹爪结构应该是什么样子的?

这里如果熟悉SW等绘图软件的,大家可以根据自己要抓取物体的形状自己画一个夹爪,如果就是想演示一下,那么给大家推荐一个叫机械图纸狗的公众号,里面又非常多的优秀图纸,去挑挑选选,总有一款适合你。

2、我有了夹爪结构我该怎么加到机原来械臂上去?

这里有两种解决办法,一种是你可以直接在sw内做好装配体,然后用swurdf插件生成完整的机械臂+夹爪的URDF文件,这种方式只适合从零开始做机械臂控制的。已经做过一段时间的光杆机械臂控制的兄弟肯定会有这个顾虑,就是一路控制过来,对原来的机械臂URDF 模型已经不知道做了多少修改,重新生成,将会带来一大堆问题。为了个夹爪,付出这么大的工作量肯定不划算。所以,第二种方式更适合这种情况。那就是单独生成夹爪的URDF模型。

第一步在sw中生成夹爪的urdf模型,能用到这种方法的兄弟肯定这都不陌生了,就不在此赘述了

第二步拿到生成的URDF文件,这是我的j夹爪urdf模型,这里记得掐头去尾。把<robot
  name="finger">到</robot>之间的全部内容复制,然后找到自己原来的机械臂URDF文件,找到自己的模型的最后一个link,将刚才复制的内容全部复制他的后面。

<?xml version="1.0" encoding="utf-8"?>
<!-- This URDF was automatically created by SolidWorks to URDF Exporter! Originally created by Stephen Brawner (brawner@gmail.com) Commit Version: 1.5.1-0-g916b5db  Build Version: 1.5.7152.31018For more information, please see http://wiki.ros.org/sw_urdf_exporter -->
<robotname="finger"><linkname="finger_base"><inertial><originxyz="-6.35771586765532E-09 0.000115405302952606 -0.0246430464114306"rpy="0 0 0" /><massvalue="0.0633572386878576" /><inertiaixx="2.16498106909931E-05"ixy="-4.42610892567155E-13"ixz="-2.16945723545907E-14"iyy="2.17602534542266E-05"iyz="3.14411702751438E-08"izz="4.20656899912343E-05" /></inertial><visual><originxyz="0 0 0"   rpy="0 0 0" /><geometry><mesh          filename="package://finger/meshes/finger_base.STL" /></geometry><materialname=""><colorrgba="1 1 1 1" /></material></visual><collision><originxyz="0 0 0"rpy="0 0 0" /><geometry><meshfilename="package://finger/meshes/finger_base.STL" /></geometry></collision></link><linkname="finger_1"><inertial><originxyz="0.0051124 0.051489 -0.0084464"rpy="0 0 0" /><massvalue="0.0084416" /><inertiaixx="1.5817E-06"ixy="-2.3593E-07"ixz="-5.438E-13"iyy="3.5578E-07"iyz="-6.4675E-11"izz="1.474E-06" /></inertial><visual><originxyz="0 0 0"rpy="0 0 0" /><geometry><meshfilename="package://finger/meshes/finger_1.STL" /></geometry><materialname=""><colorrgba="1 1 1 1" /></material></visual><collision><originxyz="0 0 0"rpy="0 0 0" /><geometry><meshfilename="package://finger/meshes/finger_1.STL" /></geometry></collision></link><jointname="finger_joint_1"type="revolute"><originxyz="-0.0084 -0.027341 -0.051905"rpy="-1.5708 0 1.5708" /><parentlink="finger_base" /><childlink="finger_1" /><axisxyz="0 0 -1" /><limitlower="-3.14"upper="3.14"effort="0"velocity="0" /></joint><linkname="finger_2"><inertial><originxyz="-0.013757 0.04988 -0.0084464"rpy="0 0 0" /><massvalue="0.0084416" /><inertiaixx="1.5814E-06"ixy="2.3673E-07"ixz="2.2795E-11"iyy="3.5609E-07"iyz="-6.0454E-11"izz="1.474E-06" /></inertial><visual><originxyz="0 0 0"rpy="0 0 0" /><geometry><meshfilename="package://finger/meshes/finger_2.STL" /></geometry><materialname=""><colorrgba="1 1 1 1" /></material></visual><collision><originxyz="0 0 0"rpy="0 0 0" /><geometry><meshfilename="package://finger/meshes/finger_2.STL" /></geometry></collision></link><jointname="finger_joint_2"type="revolute"><originxyz="0.027885 0.0063046 -0.051905"rpy="-1.5708 0 -2.618" /><parentlink="finger_base" /><childlink="finger_2" /><axisxyz="0 0 -1" /><limitlower="-3.14"upper="3.14"effort="0"velocity="0" /></joint><linkname="finger_3"><inertial><originxyz="-0.0061103 0.051381 -0.0084136"rpy="0 0 0" /><massvalue="0.0084416" /><inertiaixx="1.5721E-06"ixy="2.5953E-07"ixz="-1.7953E-12"iyy="3.654E-07"iyz="6.4629E-11"izz="1.474E-06" /></inertial><visual><originxyz="0 0 0"rpy="0 0 0" /><geometry><meshfilename="package://finger/meshes/finger_3.STL" /></geometry><materialname=""><colorrgba="1 1 1 1" /></material></visual><collision><originxyz="0 0 0"rpy="0 0 0" /><geometry><meshfilename="package://finger/meshes/finger_3.STL" /></geometry></collision></link><jointname="finger_joint_3"type="revolute"><originxyz="-0.027885 0.0063046 -0.051905"rpy="-1.5708 0 2.618" /><parentlink="finger_base" /><childlink="finger_3" /><axisxyz="0 0 1" /><limitlower="-3.14"upper="3.14"effort="0"velocity="0" /></joint>
</robot>

然后再自己夹爪的第一个link后,添加一个夹爪和机械臂最后一个link的关节,夹爪肯定是固定再最后一个link上的,所以添加的内容为:

    <joint name="fixed_1" type="fixed"><origin xyz="0 0.0115 0" rpy="1.5708 0 0" /><parent link="link_5" /><child link="finger_base" /></joint>

如果夹爪位置不对,就微调origin后面的参数,一点一点试一下。到这里,urdf文件的拼接就算完成了,但是有个细节 ,记得把夹爪meshe文件内的stl文件复制到机械臂urdf模型内的meshes文件内,并对上述文件中的路径进行修改。否则夹爪的模型加载的时候会出错。

3、根据新的模型文件用moveit_setupassistant进行配置

这里和之前得区别就是增加一个规划组添加控制器 添加end effectors,我设置的是增加一个新的finger规划组。

添加end effectors,这里end effectors name 可以自定义,end effectors group选择自己刚才设定的规划组。end effectors parent选择机械臂的最后一个link及安装夹爪的link,parent group不用选。 

最后添加控制器,就按照下面这种方式添加即可。

最后再gazbeo和rviz中验证自己的添加的夹爪是否能正常工作。如果moveit控制gazbeo中的夹爪出现问题,请参照我上一篇博文解决。我终于实现Moveit+gazbeo对机械臂的联合仿真控制了

给自己的机械臂添加一个夹爪相关推荐

  1. ROS - UR3机械臂添加robotiq FT sensor和robotiq 140 2指夹爪

    UR3机械臂添加robotiq FT sensor和robotiq 140 2指夹爪 ```建议参考这篇```,[ur机械臂 + robotiq gripper + robotiq ft sensor ...

  2. 强化学习UR机械臂仿真环境搭建(一) - 为UR3机械臂添加robotiq ft300力传感器

    为UR3机械臂添加robotiq ft300力传感器 ```建议参考这篇```,[ur机械臂 + robotiq gripper + robotiq ft sensor + gazebo + 连接真实 ...

  3. 如何给机械臂添加hande机械爪并应用于moveit

    如何给机械臂添加hande机械爪并应用于moveit 1.从源码下载hande机械爪文件: 2.更改srv文件 3.更改gripper_node.py 4.通过clien和service控制机械爪: ...

  4. 【从零开始的ROS四轴机械臂控制】(三) - 为机械臂添加摄像头和夹爪、解决gazebo模型抖动、使用gazebo建立sdf模型

    [从零开始的ROS四轴机械臂控制(三)] 五.在gazebo中添加摄像头 1.修改arm1.gazebo.xacro文件 2.修改arm1.urdf.xacro文件 3.查看摄像头图像 六.为模型添加 ...

  5. 给自己的机械臂添加夹爪

    一.引言 上一节中已经构建了一个可以动的机械臂模型,但是没有夹爪并不可以去执行后续的抓取动作 这一节主要是添加机械臂的夹具到已有的模型上 因为前面已经做好了铺垫,这里就可以简述一下,然后再进一步说下m ...

  6. 工程师的浪漫:用机械臂画一个爱心

    目录 0 写在前面 1 生成爱心轨迹 2 机械臂逆运动学实现 3 实现机械臂画指定轨迹 3.1 读取数据 3.2 绘制机械臂 3.3 反解位姿 4 拓展 0 写在前面 本文基于过去的博客平面2R机器人 ...

  7. ROS Nonetic: 机械臂UR5 + RobotIQ FT300 传感器 配置

    今天需要使用 ROBOTIQ FT300的力/力矩传感器,所以记录一下自己的配置情况. 环境: Ubuntu 20.04, ROS Noetic 机械臂:UR5 (关于如何通过序列号判断UR型号,可以 ...

  8. python 机械臂控制_从零开始的ROS四轴机械臂控制-gazebo仿真控制

    这是一个四轴器械臂练手项目,定为arm0.1版本,使用MG90s舵机来搭建一个四轴机械臂.arm0.1版本的目标是对带颜色的方块进行识别并在Gazebo中模拟出来. 以下是这个ROS四轴机械臂控制的目 ...

  9. 机械臂urdf模型修改及功能包配置

    目录 一.前清提要 二.操作过程 1.转夹爪stl为urdf模型,得到夹爪包命名为GripperURDF 2.将夹爪包移到工作空间下,查看其是否完整,符合要求 3.将夹爪urdf包和机械臂urdf包合 ...

最新文章

  1. python 删除字符串中重复的元素
  2. 13 | 答疑(一):无法模拟出 RES 中断的问题,怎么办?
  3. 前沿实践:垃圾回收器是如何演进的?
  4. 坑 之 You must feed a value for placeholder tensor ‘label_input‘ with dtype float and shape
  5. 程序员放弃阿里60w年薪,选到手5k的公务员,坚信公务员后期完胜程序员
  6. Windows Server 2003下配置IIS6.0+php5+MySql5+PHPMyAdmin环境
  7. (五)通过Python的select监控多个描述符实现并发连接
  8. java 获取泛型_聊聊Java泛型擦除那些事
  9. 4python全栈之路系列之scrapy爬虫s
  10. 鸿蒙空间最高级,洪荒:我能进化万物
  11. Android移动应用基础教程 【程序活动单元Activity】
  12. 好程序员大数据入门学习之Hadoop技术优缺点
  13. C语言算法7744问题
  14. openwrt配置内核,加载air720 4G模块的USB串口设备
  15. Python笔记:第三方IP代理服务与爬虫IP代理
  16. Cassandra Secondary Index 介绍
  17. staruml 依赖于 libgcrypt11 (= 1.4.5);然而:未安装软件包 libgcrypt11。
  18. AutoSAR系列讲解(深入篇)13.1-闪烁一颗LED灯 1
  19. 基于递归神经网络(RNN)的口语理解(SLU)
  20. 卡迪夫大数据专业排名_英国留学:英国大数据专业十大院校推荐!

热门文章

  1. 互联网精准广告定向技术: 一切你该了解的知识总结与整理
  2. 阿里面试乔戈里被问:MySql数据是如何存储在磁盘上存储的?
  3. 产业分析:内容机构(MCN)行业
  4. iOS音视频—OpenCV初体验马赛克的实现
  5. 简谈游戏场景灯光配置方案
  6. 光学镜头参数之—分辨率
  7. 2019最新整理JAVA面试题附答案
  8. 浅析NOIP中的动态规划
  9. 跟小米、特斯拉分“蛋糕”的优必选要IPO
  10. 财富人生:一篇男人必看的雄文