环境配置
1、测试环境:
- 系统:ubuntu18.04
- opencv:3.2.0
- 硬件:IntelRealsense D435i(使用RGB镜头) 或者笔记本自带摄像头/任何USB摄像头
2、驱动安装
- 使用IntelRealsense D435i
注意事项:使用时,需要使用USB3.0。
ROS版本的直接根据github教程realsense-ros
非ROS版本参考连接install-the-packages
- 使用普通USB相机(推荐源码安装)
非ROS版本:opencv直接直接调用接口使用摄像头;
ROS版本:
sudo apt-get install ros-melodic-usb-cam
#使用
roslaunch usb_cam usb_cam-test.launch
或者源码安装usb_cam包
cd catkin_ws/src
git clone https://github.com/ros-drivers/usb_cam
cd ..
catkin_make
roslaunch usb_cam usb_cam-test.launch
3、摄像头标定
- InterRealsense D435i 出厂时标定参数已知,无需自行标定,标定参数可从ros中获取,非ROS版程序在程序中修改参数
Camtrix:
915.908935546875, 0.0, 652.4962768554688,
0.0, 914.1989135742188, 364.7724914550781,
0.0, 0.0, 1.0
- USB相机
使用软件包中的标定方法进行标定,使用aruco版本的标定板进行标定,首先对软件包编译:
cd connector
rm -r build
mkdir build && cd build
cmake .. && make
标定板样例
标定板也可以根据实际需求重新create,使用软件包,修改代码中参数然后编译运行:
cd build && make
./create_board
其中,参数说明可以参考以下链接:
4、检测
- ROS版本
无论使用Intersense D435i还是USB摄像头都可以,在aruco的launch文件中修改订阅的topic即可,启动摄像头,然后启动检测节点:
roslaunch aruco aruco.launch
参数说明:
Detector中参数暂时不用修改,Markers可以修改的内容为name中参数的数字,数字代表为识别的ID,value的第一位(被检测marker的实际尺寸,单位cm)
然后使用传输节点,将检测到的位姿信息通过socket转发出去:
rosrun poseture_client poseture_client_node
暂时需要先开启服务端;
- 非ROS版
在开启接收服务端的情况下,直接可以收发,文档进入connector软件包,编译运行:
#Intelreasense D435i
./detect_aruco
#普通USB相机
./detect_aruco_usbcam
5、其他说明
检测出的坐标系说明如下,图一Z为图二中蓝色,Y为图二中的绿色,X为图二中的红色,注意Y轴所画出的方向为负方向。
![](https://img-blog.csdnimg.cn/a73b3172cd3346c697f6971d0ac3a8c5.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATmljb1_mi4nlgJI=,size_7,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/66c0d73af753436c88597be003c58a5f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATmljb1_mi4nlgJI=,size_20,color_FFFFFF,t_70,g_se,x_16)