【软件安装11】抓取姿态检测 Grasp Pose Detection (GPD) 与 gpd_ros 安装Ubuntu18.04

本文主要是介绍【软件安装11】抓取姿态检测 Grasp Pose Detection (GPD) 与 gpd_ros 安装Ubuntu18.04,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、GPD 教程
    • 1.1、依赖要求
    • 1.2、安装GPD
    • 1.3、使用GPD
      • 1.3.1 为点云文件生成抓取
    • 1.4、参数
    • 1.5、可视
    • 1.6、神经网络的输入通道
    • 1.7、CNN框架
    • 1.8、Network Training
    • 1.9、抓取图像/描述符
    • 1.10、故障排除提示
  • 二、gpd_ros 教程
    • 2.1 安装gps_ros流程:
    • 2.2 使用gpd_ros

 
 

抓取姿态检测(GPD)是用于在3D点云中检测2指机器人手(例如,平行颚夹)的6-DOF抓取姿态(3-DOF位置和3-DOF方向)的包。GPD将点云作为输入,并产生可行抓取的姿态估计作为输出。GPD的主要优势是:

  • 适用于新颖的对象(检测不需要CAD模型),
  • 在密集杂乱的环境中工作,并且
  • 输出6自由度抓取姿态(不仅仅是自上而下的抓取)。

GPD由两个主要步骤组成:对大量抓取候选对象进行采样,并将这些候选对象分类为可行抓取对象或不可行抓取对象。

安装过程中的参考博文:
1、ROS kinetic 升级 PCL1.9.0 以安装gpd库和gpd_ros
2、ROS 包封装 GPD【使用方法】
 

一、GPD 教程

1.1、依赖要求

在这里插入图片描述
可以参考之前的博文: 【软件安装9】OpenCV多版本安装Ubuntu18.04
                                        与 【软件安装10】PCL多版本安装Ubuntu18.04 进行提前安装对应的依赖版本。

 
 

1.2、安装GPD


// clone 如下仓库
git clone https://github.com/atenpas/gpdcd gpd
mkdir build && cd build
cmake ..
make -j// 您可以选择使用sudo make install安装GPD,以便它可以作为共享库被其他项目使用。
// 如果构建包不起作用,请尝试修改CMakeLists.txt文件中的编译器标志CMAKE_CXX_FLAGS。

 
 

1.3、使用GPD

 

1.3.1 为点云文件生成抓取

在点云文件(PCD或PLY)上运行GPD


// 在 该路径下 /home/hzx/Videos/zhihu_ws/ws_moveit/src/robot_sim/gpd/build 执行指令
./detect_grasps ../cfg/eigen_params.cfg ../tutorials/krylon.pcd

在这里插入图片描述
 

会依次输出类似于下面的屏幕截图【截图均为PCL的查看器】,该窗口是PCL查看器。您可以按【q】关闭窗口,按【h】查看其他命令列表。

执行指令后,
首先出现标题为 Normals 的查看器1;
鼠标点击选中该查看器1,按键q,会出现标题为 Grasp candidates 的查看器2;
再次鼠标点击两个查看器中的任意一个后,按键q,会出现标题为Selected Grasps 查看器3;
最后点击三个查看器中的任意一个后,按键q,会关闭所有查看器窗口】

在这里插入图片描述

 
下面是GPD用于抓取姿势(位置和方向)的惯例的可视化。抓取位置由橙色十字表示,方向由彩色箭头表示。【坐标轴,副法线,靠近】
在这里插入图片描述

 

1.4、参数

cfg/eigen_params.cfg 中给出了参数的简要说明。

您通常希望用来提高找到的抓取次数的两个参数是workspace和num_samples。第一个将在其中搜索抓取的空间体积定义为以点云框架的原点为中心的维度为[minX,maxX,minY,maxY,minZ,maxZ]的长方体。第二个是从点云中提取的用于检测抓取的样本数量。您应该将工作空间设置得尽可能小,并将样本数量设置得尽可能多。

大部分代码都是并行化的。要提高运行时间,请将num_threads设置为计算机可用的(物理)CPU核心数。

 

1.5、可视

您可以将该套件与一个或两个深度传感器一起使用。这个包附带了两者的CAFFE模型文件。您可以在models/caffe/15channels中找到这些文件。对于单个传感器,使用single _ view _ 15 _ channels . caffe model,对于两个深度传感器,使用two_views_15_channels_[angle]。[角度]是两个传感器视图之间的角度,如下图所示。在双视图设置中,您希望在将两个点云发送到GPD之前将它们注册在一起。

在这里插入图片描述

将摄像机位置提供给配置文件( *.cfg ) 很重要,因为它使PCL能够估计正确的法线方向(指向相机)。或者,使用ROS包装器,可以提供多个摄像机位置。
在这里插入图片描述

要在一个和两个传感器视图之间切换,请更改配置文件中的参数weight_file。
 

1.6、神经网络的输入通道

该软件包带有神经网络的两种不同输入表示的权重文件,用于决定抓取是否可行:3或15个通道。默认为15个通道。但是,您可以使用3个通道来获得更好的运行时间,以弥补抓取质量的损失。有关更多详细信息,请参见下面的参考资料。
 

1.7、CNN框架

GPD附带了许多不同的分类器框架,它们利用不同的硬件并具有不同的依赖性。在框架之间切换需要运行带有附加参数的CMake。例如,要使用OpenVino框架:


cmake .. -DUSE_OPENVINO=ON

您可以使用ccmake来检查所有可能的cmake选项。

GPD支持以下三个框架:

OpenVino: installation instructions for open source version (CPUs, GPUs, FPGAs from Intel)
Caffe (GPUs from Nvidia or CPUs)
Custom LeNet implementation using the Eigen library (CPU)

可以通过对分类器接口进行子类化来添加额外的分类器。

OpenVINO
速度上推荐OpenVINO。要使用OpenVINO,您需要在编译GPD之前运行以下命令。


export InferenceEngine_DIR=/path/to/dldt/inference-engine/build/

 

1.8、Network Training

要用C++代码创建训练数据,需要安装OpenCV 3.4 Contribs。接下来,您需要编译带有DBUILD_DATA_GENERATION标志的GPD,如下所示:


cd gpd
mkdir build && cd build
cmake .. -DBUILD_DATA_GENERATION=ON
make -j

训练网络来预测抓取姿态有四个步骤。
首先,我们需要创建抓取图像。


./generate_data ../cfg/generate_data.cfg

你应该根据需要修改generate_data.cfg。

 
接下来,您需要将创建的数据库调整为train_offset和test_offset(参见generate_data的终端输出)。例如,要调整训练集的大小,请使用以下命令,并将size设置为train_offset的值。


cd pytorch
python reshape_hdf5.py pathToTrainingSet.h5 out.h5 size

 
第三步是训练一个神经网络。训练网络最简单的方法是使用现有的代码。这需要pytorch框架。要训练网络,请使用以下命令。


cd pytorch
python train_net3.py pathToTrainingSet.h5 pathToTestSet.h5 num_channels

 
第四步是将模型转换成ONNX格式。


python torch_to_onxx.py pathToPytorchModel.pwf pathToONNXModel.onnx num_channels

 
最后一步是将ONNX文件转换成OpenVINO兼容格式:tutorial。这提供了两个文件,可以通过修改CFG文件中的weight_file和model_file参数用GPD加载。

 

1.9、抓取图像/描述符

生成一些抓取姿态及其相应的图像/描述符:


./test_grasp_image ../tutorials/krylon.pcd 3456 1 ../models/lenet/15channels/params/

在这里插入图片描述

有关如何创建grasp图像的详细信息,请查看我们的期刊论文。

 

1.10、故障排除提示

Remove the cmake cache: rm CMakeCache.txt
make clean
Remove the build folder and rebuild.
Update gcc and g++ to a version > 5.

 
 

二、gpd_ros 教程

 

2.1 安装gps_ros流程:

 

1. Install GPD. Make sure to run make install to install GPD as a library.【见流程一】
 

2. 源码拉取


cd <location_of_your_workspace>/src
git clone https://github.com/atenpas/gpd_ros

 
3. 编译源码


cd <location_of_your_workspace>
catkin_make

 

2.2 使用gpd_ros

为ROS话题点云生成抓取

  • 1、首先,需要修改 gpd 文件夹中的配置文件,例如 <path_to_gpd>/cfg/ros_eigen_params.cfg, 搜索具有绝对文件路径的参数,并将其更改为系统上的实际路径【也就是有几个配置文件中有绝对路径的,就如/home/***这样的,要根据自己文件的实际路径进行修改】,下面列举了一个例子,还有还几个地方需要修改。

在这里插入图片描述

在这里插入图片描述
 

  • 2、接下来,需要修改ROS启动文件中的路径,该路径指向您在上一步中更改的配置文件,例如这一行。

在这里插入图片描述

 

  • 3、现在,您可以将GPD作为ROS节点运行。以下命令将启动一个等待ROS topic /cloud_stitched上的点云的ROS节点。一旦接收到点云,节点将在云中搜索抓取点。

roslaunch gpd_ros ur5.launch

这篇关于【软件安装11】抓取姿态检测 Grasp Pose Detection (GPD) 与 gpd_ros 安装Ubuntu18.04的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1059522

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X

软件设计师备考——计算机系统

学习内容源自「软件设计师」 上午题 #1 计算机系统_哔哩哔哩_bilibili 目录 1.1.1 计算机系统硬件基本组成 1.1.2 中央处理单元 1.CPU 的功能 1)运算器 2)控制器 RISC && CISC 流水线控制 存储器  Cache 中断 输入输出IO控制方式 程序查询方式 中断驱动方式 直接存储器方式(DMA)  ​编辑 总线 ​编辑

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者