图漾 Percipio FM810-HD 的使用

Percipio FM810-HD

FM810 采用独立知识产权的主动双目视觉技术,基于普通双目视觉原理,配以红外结构光辅助投影,能够
获取比传统双目视觉更多的景深细节和更强的环境适应性。
FM810 获取到的数据信息,可以帮助机器人、工业、商业和消费等多个领域实现智能化。

相机展示

外壳不错,消费级产品有着工业级产品的外壳。

可用资料

官网地址:http://www.percipio.xyz
产品描述手册:http://res.percipio.xyz/doc/PCP_DS_FM810_CN.pdf
SDK入门手册:http://res.percipio.xyz/doc/PCP_GS_CAMP_CN.pdf
论坛地址:http://bbs.percipio.xyz
SDK下载地址:https://github.com/percipioxyz/camport2
本博客主要参考SDK入门手册。

开发环境

  • Ubuntu14.04
  • x64
  • ROS indigo
  • OpenCV(可选,安装ROS SDK需要)

Linux SDK

下载SDK

$ git clone https://github.com/percipioxyz/camport2.git

编译SDK

注意:根据 Linux 系统的权限管理机制,默认情况下需要 root 权限才能操作深度摄像头设备,非 root
用户可以创建 udev rule 来修改设备权限。
1.创建 udev rule 修改深度模组的权限
在 etc/udev/rules.d 文件所在目录下新建一个扩展名为.rules 的规则文件(如 88-tyusb.rules),并把
用户加入该文件中指定的组(如:tofu)。

SUBSYSTEM=="usb",
ATTRS{idProduct}=="1003",
ATTRS{idVendor}=="04b4",
GROUP="wb",
MODE="0666"

说明:规则文件名的开头须为数字(0 ~ 99),数字越大,优先级越高。
2. 找到 camport2/lib/linux 目录下相应平台的文件夹,将文件夹中的 libcamm.so 文件复制到 /usr/lib/ 目录下。
3. 进入 camport2 目录,执行以下命令编译实例代码

$ cd sample
$ mkdir build
$ cd build
$ cmake ..
$ make

使用 SDK

camport2/sample/build/bin 目录下生成若干编译生成的可执行文件,以 root 权限运行如下命令,即可
查看深度图。

$ sudo ./SimpleView_FetchFrame

程序会打开三个窗口,分别显示RGB图像、深度图和红外图像。
RGB图像


深度图

红外图像

OpenNI2 SDK

下载SDK

$ git clone https://github.com/percipioxyz/camport_openni2.git

安装 SDK

$ sudo dpkg -i libopenni2-0_2.2.0.33+dfsg-4_amd64.deb 
$ sudo dpkg -i libopenni2-dev_2.2.0.33+dfsg-4_amd64.deb

ROS SDK

1.先安装Linux SDK和OpenNI2 SDK。
2.下载ROS SDK

$ git clone https://github.com/percipioxyz/camport_ros.git

3.编译ROS SDK

$ catkin_make

4.配置环境变量

$ echo "source ~/camport_ros/devel/setup.bash" >> ~/.bashrc 
$ source ~/.bashrc

5.在 RVIZ 中查看 Depth Camera、RGB Camera、Depth Cloud。

$ roscore
$ roslaunch openni2_launch openni2.launch
$ rosrun rviz rviz

设置Fixed Frame,然后点击Add添加对应的topic。
效果如下图所示。


6.在 RVIZ 中查看从深度图中仿真出的 Laser Scan 图像。

$ roscore
$ roslaunch depthimage_to_laserscan depthimage_to_laserscan.launch
$ rosrun rviz rviz

同理,设置Fixed Frame,然后点击Add添加对应的topic,即/scan/LaserScan
我感觉效果并不好,就不放图了。

可能遇到的问题

在执行命令roslaunch openni2_launch openni2.launch后,报以下错误:

Traceback (most recent call last):
File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/__init__.py", line 307, in main
p.start()
File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/parent.py", line 268, in start
self._start_infrastructure()
File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/substitution_args.py", line 188, in _find_executable
full_path = _get_executable_path(rp.get_path(args[0]), path)
File "/usr/local/lib/python2.7/dist-packages/rospkg/rospack.py", line 203, in get_path
raise ResourceNotFound(name, ros_paths=self._ros_paths)
ResourceNotFound: rgbd_launch
ROS path [0]=/opt/ros/indigo/share/ros
ROS path [1]=/home/pi/workspace/src
ROS path [2]=/opt/ros/indigo/share
ROS path [3]=/opt/ros/indigo/stacks

提示未发现rgbd_launch,执行以下命令可解决问题。

sudo apt-get install ros-indigo-rgbd-launch

二次开发

Linux 平台下的二次开发需要注意如下:

  • 如要重新编译 SDK,需要安装 libusb 和 Opencv2.4.8 。
  • 如果编译环境与目标平台不是同一个平台,需要对 Libusb、Opencv 和本示例代码做交叉编译。
  • 关于二次开发的编程指南,请参考“第四章”。

猜你喜欢

转载自blog.csdn.net/learning_tortosie/article/details/80887896