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()
需要点云文件的文件头跳过
# .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