aubo i5 + realsense D435i识别抓取实践三
aubo i5 + realsense D435i识别抓取实践三
前言
一、安装ORK
二、安装couchDB数据库并添加模型
1.安装数据库
2.验证数据库安装成功
3.在数据库中创建一条可乐罐模型的数据
4.训练模型
三、物体识别
1.启动realsense相机
2.修改识别配置文件
3.运行识别程序
前言
前面完成了相机与机械臂的手眼标定,接下来我们将使用realsense D435i进行物体识别来获取相机坐标系下物体的位置信息。
这里我们用到的核心工具是ORK (Object Recognition Kitchen) ,它是ROS 集成的物体识别库,当前 Kinetic 版本的 ROS 只集成了部分功能包的二进制安装文件,所以需通过源码编译安装。具体可参照官方文档:https://wg-perception.github.io/object_recognition_core/
一、安装ORK
安装依赖
$ sudo apt-get install meshlab
$ sudo apt-get install libosmesa6-dev
$ sudo apt-get install python-pyside.qtcore
$ sudo apt-get install python-pyside.qtgui
下载编译ork
$ cd aubo_ws/
$ wstool merge -t src https://raw.github.com/wg-perception/object_recognition_core/master/doc/source/ork.rosinstall.kinetic.plus
$ cd src && wstool update -j8
$ cd .. && rosdep install --from-paths src -i -y
$ catkin_make -j2 -DCAMKE_BUILD_TYPE=RELEASE
二、安装couchDB数据库并添加模型
ORK 中的 LINEMOD 算法基于模板匹配,需要建立已知物体的数据模型,根据采集的信息逐一匹配,找到与数据库中匹配的物体。
1.安装数据库
$ sudo apt-get install couchdb
2.验证数据库安装成功
$ curl -X GET http://localhost:5984
3.在数据库中创建一条可乐罐模型的数据
$ cd ~/aubo_ws
$ source devel/setup.bash
$ rosrun object_recognition_core object_add.py -n "coke1" -d "A universal can of coke" --commit
运行指令之后返回的一串id号,后面添加模型时需要用到。可以在浏览器中查看该数据库:http://localhost:5984/_utils/database.html?object_recognition/_design/objects/_view/by_object_name
可乐罐的模型包含在ork_tutorials中,直接下载即可
$ git clone https://github.com/wg-perception/ork_tutorials.git ~/aubo_ws/src
然后将可乐罐的stl文件加载到数据库中
$ rosrun object_recognition_core mesh_add.py 04f438b53d8dbb4dc9392c5c870007a6 ~/aubo_ws/src/ork_tutorials/data/coke.stl --commit
4.训练模型
$ rosrun object_recognition_core training -c `rospack find object_recognition_linemod`/conf/training.ork
运行结果如下,数据库里面有两个模型,其中一个是之前添加的。
三、物体识别
1.启动realsense相机
$ roslaunch realsense2_camera rs_camera.launch filters:=pointcloud
- 查看topic
$ rostopic list
这里用到的topic包括/camera/color/camera_info、/camera/color/image_raw、/camera/depth/camera_info、/camera/depth/image_rect_raw四个话题。
2.修改识别配置文件
$ gedit `rospack find object_recognition_linemod`/conf/detection.ros.ork
这里修改了对应的话题名称以及对应的frame_id。
3.运行识别程序
$ rosrun object_recognition_core detection -c `rospack find object_recognition_linemod`/conf/detection.ros.ork
打开rviz观察
添加 Pointcloud2,选择话题 /camera/depth/color/points
添加 OrkObject,选择话题 /recognized_object_array (若能够成功识别,则会发布此话题)
订阅/recognized_object_array
至此,相机识别就基本完成了,接下来就可以通过获取到的物体位姿进行抓取。
评论(0)
您还未登录,请登录后发表或查看评论