ROS的抓取姿态检测

ROS的抓取姿态检测
flyfish

环境
ROS Kinetic
Ubuntu 16.04

方法1
agile_grasp

参考论文是
Using Geometry to Detect Grasp Poses in 3D Point Clouds

Andreas ten Pas and Robert Platt

参考网址是
http://wiki.ros.org/agile_grasp

论文地址是
http://www.ccs.neu.edu/home/atp/publications/grasp_poses_isrr2015.pdf

github
https://github.com/atenpas/agile_grasp.git
注意自己ROS的版本
这篇论文

提出了一种利用机器学习,在杂波( clutter)中检测新物体抓取姿态的新方法

算法输入是点云和机器人的手的几何参数
算法的输出是一组期望的抓取的姿态

该方法在孤立(isolation)环境中抓取新物体平均成功率为88%
在密集杂波(dense clutter)中抓取新物体的平均成功率为73%。
在源代码的gpd-forward/tutorials文件夹中有krylon.pcd,table_mug.pcd
可视化看一下
使用python,代码如下

import matplotlib.pyplot as plt
import numpy as np 
 
points = np.loadtxt('table_mug.pcd',skiprows=11) 
fig = plt.figure() 
ax = fig.add_subplot(111, projection='3d') 
count = range(0, points.shape[0]) 
ax.scatter(points[count, 0], 
           points[count, 1], 
           points[count, 2],
           c=points[count, 2],
           cmap='spectral', marker=".") 
ax.axis('scaled') # {equal, scaled} 
plt.show()

krylon.pcd的可视化
在这里插入图片描述

table_mug.pcd的可视化
在这里插入图片描述

需要点云文件的文件头跳过

# .PCD v0.7 - Point Cloud Data file format
VERSION 0.7
FIELDS x y z
SIZE 4 4 4
TYPE F F F
COUNT 1 1 1
WIDTH 104444
HEIGHT 1
VIEWPOINT 0 0 0 0 1 0 0
POINTS 104444
DATA ascii

方法2
Grasp Pose Detection (GPD)

forward版本可以使用没有Caffe的版本

github
https://github.com/atenpas/gpd/tree/forward

参考论文是

[1] Grasp Pose Detection in Point Clouds
Andreas ten Pas, Marcus Gualtieri, Kate Saenko, and Robert Platt.
[2] High precision grasp pose detection in dense
Marcus Gualtieri, Andreas ten Pas, Kate Saenko, and Robert Platt.

这篇论文主要考虑点云中抓握姿态检测的问题.首先生成大量的grasp,然后分 good grasp和 bad grasp,第二步是 使用大量的数据集训练一个CNN
在密集杂波中平均抓握成功率为93%。 与之前的工作相比,提高了20%。

这里架设了ROS kinectic 版本
深度相机使用了 astra,所以执行命令稍微有点不同

Detect Grasps With an RGBD Camera

1 启动相机命令roslaunch astra_launch astra.launch
2 之后启动rviz
rosrun rviz rviz
在rviz中加载配置文件 gpd/tutorials/openni2.rviz.

3启动ROS节点 detects grasps
roslaunch gpd tutorial1.launch

rostopic list

/camera/camera_nodelet_manager/bond
/camera/depth/camera_info
/camera/depth/image
/camera/depth/image_raw
/camera/depth/image_rect
/camera/depth/image_rect_raw
/camera/depth/points
/camera/depth_rectify_depth/parameter_descriptions
/camera/depth_rectify_depth/parameter_updates
/camera/depth_registered/camera_info
/camera/depth_registered/image_raw
/camera/depth_registered/points
/camera/depth_registered/sw_registered/camera_info
/camera/depth_registered/sw_registered/image_rect
/camera/depth_registered/sw_registered/image_rect_raw
/camera/driver/parameter_descriptions
/camera/driver/parameter_updates
/camera/ir/camera_info
/camera/ir/image
/camera/projector/camera_info
/camera/rgb/camera_info
/camera/rgb/image_raw
/camera/rgb/image_rect_color
/camera/rgb_rectify_color/parameter_descriptions
/camera/rgb_rectify_color/parameter_updates
/clicked_point
/detect_grasps/clustered_grasps
/detect_grasps/grasps_rviz
/initialpose
/move_base_simple/goal
/rosout
/rosout_agg
/tf
/tf_static

rosservice list

/camera/camera_nodelet_manager/get_loggers
/camera/camera_nodelet_manager/list
/camera/camera_nodelet_manager/load_nodelet
/camera/camera_nodelet_manager/set_logger_level
/camera/camera_nodelet_manager/unload_nodelet
/camera/depth_metric/get_loggers
/camera/depth_metric/set_logger_level
/camera/depth_metric_rect/get_loggers
/camera/depth_metric_rect/set_logger_level
/camera/depth_points/get_loggers
/camera/depth_points/set_logger_level
/camera/depth_rectify_depth/get_loggers
/camera/depth_rectify_depth/set_logger_level
/camera/depth_rectify_depth/set_parameters
/camera/depth_registered_sw_metric_rect/get_loggers
/camera/depth_registered_sw_metric_rect/set_logger_level
/camera/driver/get_loggers
/camera/driver/set_logger_level
/camera/driver/set_parameters
/camera/get_serial
/camera/ir/set_camera_info
/camera/points_xyzrgb_sw_registered/get_loggers
/camera/points_xyzrgb_sw_registered/set_logger_level
/camera/register_depth_rgb/get_loggers
/camera/register_depth_rgb/set_logger_level
/camera/rgb/set_camera_info
/camera/rgb_rectify_color/get_loggers
/camera/rgb_rectify_color/set_logger_level
/camera/rgb_rectify_color/set_parameters
/camera_base_link/get_loggers
/camera_base_link/set_logger_level
/camera_base_link1/get_loggers
/camera_base_link1/set_logger_level
/camera_base_link2/get_loggers
/camera_base_link2/set_logger_level
/camera_base_link3/get_loggers
/camera_base_link3/set_logger_level
/detect_grasps/get_loggers
/detect_grasps/set_logger_level
/rosout/get_loggers
/rosout/set_logger_level
/rviz_1544686216572815198/get_loggers
/rviz_1544686216572815198/reload_shaders
/rviz_1544686216572815198/set_logger_level
  • 4
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
你好!对于ROS和YOLO结合的抓取任务,可以通过以下步骤来实现: 1. 安装ROS:首先,确保你已经安装了ROS(Robot Operating System)。具体安装步骤可以参考ROS官方网站的文档。 2. 安装YOLO:接下来,你需要安装YOLO(You Only Look Once)目标检测算法。YOLO是一个开源的深度学习算法,可以用于实时目标检测。你可以从YOLO的官方网站上获取相关的代码和模型。 3. 创建ROS包:使用ROS的工具,你可以创建一个ROS包,用于管理你的代码和资源文件。可以使用以下命令来创建一个新的ROS包: ``` $ cd catkin_ws/src $ catkin_create_pkg my_package rospy std_msgs ``` 这将在catkin工作空间的src目录下创建一个名为my_package的ROS包,并添加rospy和std_msgs作为依赖项。 4. 编写ROS节点:在ROS包中,你可以编写一个节点来调用YOLO算法进行目标检测抓取。你可以使用Python编写ROS节点,利用rospy库来与ROS系统进行交互。在节点中,你可以调用YOLO算法的相关函数,读取图像数据,并进行目标检测抓取操作。 5. 配置机器人硬件:如果你的抓取任务需要与机器人硬件进行交互,例如控制机械臂进行抓取操作,你需要配置机器人硬件的接口和驱动程序。具体的配置过程将根据你使用的硬件和机器人平台而有所不同。 6. 运行ROS节点:完成节点的编写后,可以使用ROS命令来运行节点。例如,你可以使用以下命令来运行一个名为"my_node"的节点: ``` $ rosrun my_package my_node.py ``` 请注意,以上步骤只是一个大致的指导,具体实现和配置过程将根据你的具体需求和环境而有所不同。希望这些信息对你有所帮助!如果你有更多的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

西笑生

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

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

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

打赏作者

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

抵扣说明:

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

余额充值