UR5+robotiq_85_gripper GAZEBO模拟视觉抓取平台仿真-2

2023-05-16

6,视觉算法

这里我以OpenCv中的SIFT描述子检测目标物体相对于相机的位姿。这里有个开源的包。find_object_2d是ROS平台下一个功能强大的识别物体的功能包。由于对于纯颜色物体具有很少的特征,所以我决定把另外两个物快设置成纯红色,只有一个物快设置成木质色用于目标抓取。

1,首先把之前平台搭建起的Kinect V2图像的RGB和深度图像作为输入进行包的重映射。
find_object_3d_kinect2.launch

		<remap from="rgb/image_rect_color" to="/kinect_V2/rgb/image_raw"/>
		<remap from="depth_registered/image_raw" to="/kinect_V2/depth/image_raw"/>
		<remap from="depth_registered/camera_info" to="/kinect_V2/depth/camera_info"/>

2,然后需要设置SIFT参数
在这里插入图片描述
在这里插入图片描述
3,截图选定目标物体区域
在这里插入图片描述

这块的设置步骤大致是这样,下一步就是结合之前的模拟环境进行视觉抓取
1,

roslaunch ur5_single_arm_tufts ur5_single_arm_gazebo.launch

在这里插入图片描述
这里要强调一下,这里木色物快的位姿相对于机械臂基座标的位姿。
(0.6 0.0 0.181 0 0 0 )

2,

roslaunch find_object_2d find_object_3d_kinect2.launch

按照上面的配置提示,可以识别物体的位姿,并发布到TF树中,用于订阅抓取
在这里插入图片描述
启动RVIZ的TF树,可以查看发布的物体坐标,这里有个疑问在于发布的物体坐标在姿态上有变换
在这里插入图片描述
在这里插入图片描述
我也没搞明白为什么,先留下一个疑问吧。
可以运行

rqt_tf_tree rqt_tf_tree

形象的查看tf树的关联
在这里插入图片描述
可以物体坐标是可以通过kinect v2的坐标转换到world(base_link)坐标下,我的模型两者的坐标系重合。

3,

rosrun opencv tf_listener.py

需要注意程序中是根据rviz下的物体序号进行修改
在这里插入图片描述
这个函数主要是订阅tf树中的world和object的坐标变换,然后进行重新话题发布物体位姿到/objection_position_pose 话题下
在这里插入图片描述
这里需要对比我们之前设定好的位姿法线,在位置上的误差并不是很大,但是姿态的变化还存在疑问。
(0.6 0.0 0.181)
(0.5840022262580775, 0.057023499981076364, 0.18070173712197124)
4,

rosrun ur5_single_arm_manipulation grasping_demo_vision2.py 

主要是一套抓取路点结合,但是其中物体的位姿是订阅话题/objection_position_pose,主要通过一个callback回调函数进行了路点设定,部分程序如下

def callback(pose):
    object_position_info = pose.position
    object_orientation_info = pose.orientation
    print object_position_info

    moveit_commander.roscpp_initialize(sys.argv)
    #rospy.init_node('move_group_grasp', anonymous=True)
    #robot = moveit_commander.robot.RobotCommander()

    arm_group = moveit_commander.move_group.MoveGroupCommander("manipulator")
    hand_group = moveit_commander.move_group.MoveGroupCommander("gripper") 
   
    arm_group.set_named_target("home_j")
    plan = arm_group.go()

    print("Point 1")

    # Open
    #hand_group.set_joint_value_target([9.800441184282249e-05, -9.800441184282249e-05,   9.800441184282249e-05, 9.800441184282249e-05, -9.800441184282249e-05, 9.800441184282249e-05])
    #hand_group.go(wait=True)
    #print("Point 2")
    hand_group.set_named_target("open")
    plan = hand_group.go()
    print("Point 2")

    pose_target = arm_group.get_current_pose().pose

    # Block point top
    pose_target.position.x = object_position_info.x
    pose_target.position.y = object_position_info.y
    pose_target.position.z = object_position_info.z+0.25

实验效果:
在这里插入图片描述
在这里插入图片描述

参考网址:
1,https://github.com/Dzy-HW-XD/kinectv2_ur5
2,https://github.com/ldahee/wecar/tree/1a6e5ebc7534f314410f1ee50a71c75df9a52c0b/find-object
3,http://introlab.github.io/find-object/
4,http://wiki.ros.org/find_object_2d

7,手眼标定

手眼标定的目的是为了得到相机相对于机械臂基座标的坐标变换。

主要程序链接:

https://github.com/harrycomeon/ur5-gazebo-visual-grasping/tree/master

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UR5+robotiq_85_gripper GAZEBO模拟视觉抓取平台仿真-2 的相关文章

随机推荐

  • Win10 Selenium设置Firefox

    文章目录 1 Firefox与驱动对比关系图2 下载Firefox与驱动3 配置Firefox驱动4 验证配置 1 Firefox与驱动对比关系图 https liushilive github io github selenium dri
  • 分享篇--esp32直连天猫精灵

    今天给大家分享怎么用ESP32直连天猫精灵 启明云端ESP32开发板直连天猫精灵 第一步 xff1a 环境搭建 1 阿里物联网 SDK https github com espressif esp ali smartliving https
  • CentOS7部署FTP

    文章目录 1 安装FTP2 配置FTP3 创建登录用户4 修改 etc pam d vsftpd 文件5 新建系统用户vsftpd xff0c 用户目录为 home vsftpd6 建立虚拟用户个人配置文件7 重启 1 安装FTP 0 关闭
  • Ceph-Quincy-17.2.1版本集群部署

    文章目录 1 环境准备1 1 关闭防火墙1 2 关闭Selinux1 3 配置yum源1 4 时间同步1 5 cephadm下载 2 部署2 1 环境依赖2 2 cephadm部署集群2 3 扩容节点2 4 添加OSD服务2 5 创建一个文
  • Ceph文件存储-挂载文件系统

    文章目录 1 创建文件系统1 1 方法11 2 方法2 2 挂载文件系统3 卸载 1 创建文件系统 1 1 方法1 span class token number 1 span 创建存储池 ceph osd pool create tgmf
  • sshd: Cloudn‘t open /dev/null : permission denied

    1 问题 在通过 MobaXterm 链接节点时 xff0c 报错如下 xff1a Remote side unexpectedly closed network connection systemctl restart sshd 重启 s
  • CentOS8联网部署Ceph-Quincy集群

    文章目录 1 环境准备1 1 关闭selinux1 2 关闭防火墙1 3 配置免密1 4 设置yum源1 5 安装依赖1 6 设置时间同步1 7 安装docker 2 安装Ceph2 1 安装cephadm2 2 部署ceph集群2 3 集
  • 有时间细读这些书

    1 Windows程序设计 第5版 珍藏版 xff1a 这是很经典的一本介绍Win32 API编程的书了 xff0c 基本介绍到了大多数关于Windows程序设计的基本内容 2 Windows程序设计 王艳平版 xff1a 这本和上一本的区
  • reStructuredText(.rst)语法规则快速入门

    reStructuredText是一种轻量级的文本标记语言 xff0c 直译为 xff1a 重构建的文本 xff0c 为Python中Docutils项目的一部分 其一般保存的文件以 rst为后缀 在必要的时候 xff0c rst文件可以被
  • VHDL移位操作

    通过SLL实现五比特数的移动 xff0c 另外常见的还有 SRL 逻辑右移 实现数据右移 xff0c 左端补0 xff1b SLA 算术左移 实现数据左移 xff0c 同时复制最右端的位 xff0c 填充在右端空出的位置 xff1b SRA
  • 过孔----通孔,盲孔,埋孔

    过孔 xff08 via xff09 是多层 PCB 的重要组成部分之一 xff0c 钻孔的费用通常占 PCB 制板费用的 30 40 简单的来说 xff0c PCB 上的每一个孔都可以称之为过孔 从作用上看 xff0c 过孔可以分成两类
  • RS-422与RS-485传输线上的匹配

    对RS 422与RS 485总线网络一般要使用终接电阻进行匹配 但在短距离与低速率下可以不用考虑终端匹配 那么在什么情况下不用考虑匹配呢 xff1f 理论上 xff0c 在每个接收数据信号的中点进行采样时 xff0c 只要反射信号在开始采样
  • 小明分享:SSD201/202系统烧录篇,多种烧录方式,小明都做了分享,有需要的小伙伴拿走不谢哈!更多资料需求可以关注我,我是启明云端的小明MM!

    一 ISP 烧录 当 flash 没有烧过系统或系统损坏时 xff0c 可以先通过 ISP 烧录 boot xff0c 然后再通过 eth usb 或 sd 烧录完整的系统 下载并解压 tools ssd201 ISP 5 0 15 rar
  • CAN总线详解

    概述 CAN xff08 Controller Area Network xff09 总线协议是由 BOSCH 发明的一种基于消息广播模式的串行通信总线 xff0c 它起初用于实现汽车内ECU之间可靠的通信 xff0c 后因其简单实用可靠等
  • 终端电阻对CAN总线的作用和影响

    在CAN总线测试中 xff0c 会遇到找不出原因的错误 xff0c 那你可能忽略了一个解决异常的利器 终端电阻 究竟终端电阻对CAN总线有什么重要作用和影响呢 xff1f 电信号在电缆中的传播与光相似 xff0c 光从空气射入水中会发生光的
  • CAN总线

    最近在看stm32的通讯部分由于can总线在工业上的应用 xff0c 我选择以can总线为突破口进行学习 实际上在串口通讯所有的协议中 xff0c can总线也是我认为最复杂的一个协议 看了几天 xff0c 为了能够更加通俗的理解can的原
  • 「过孔盖油」、「过孔塞油」

    作为刚接触PCB板的新手 xff0c 是否有遇到过这样的疑问 xff1a 过孔盖油和过孔塞油听起来差不多 xff0c 是不是同一种东西 xff1f 确实两者听起来很像 xff0c 但实际上这是两个完全不一样的的制作要求 过孔盖油的专业解释是
  • 【转】过孔

    在一个高速印刷电路板 PCB 中 xff0c 通孔在降低信号完整性性能方面一直饱受诟病 然而 xff0c 过孔的使用是不可避免的 在标准的电路板上 xff0c 元器件被放置在顶层 xff0c 而差分对的走线在内层 内层的电磁辐射和对与对之间
  • HDC2021技术分论坛:OpenHarmony驱动框架解读和开发实践

    转自 xff1a OpenAtom OpenHarmony 作者 xff1a yuanbo xff0c 华为高级工程师 在IoT时代下 xff0c 终端设备差异较大 形态各异 尺寸各异 交互方式各异 xff0c 解决设备适配问题无疑是实现万
  • UR5+robotiq_85_gripper GAZEBO模拟视觉抓取平台仿真-2

    6 视觉算法 这里我以OpenCv中的SIFT描述子检测目标物体相对于相机的位姿 这里有个开源的包 find object 2d是ROS平台下一个功能强大的识别物体的功能包 由于对于纯颜色物体具有很少的特征 xff0c 所以我决定把另外两个