Intel RealSense Camera 学习 之一 “Hello RealSense”

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ljp1205/article/details/53440438

今年4月份在深圳的IDF上见过intel realsense demo,觉得很酷,也觉得可能是一种新的交互方式,而且google 也推出了Tango Project,Apple也宣称AR会是它接下来的重点,种种表明这都会是接下来的一个热点方向哈。而手上恰好有一个Intel RealSense 摄像头,型号是R200,所以想利用起来好好学习下,Android做久了,也需要一个新的东西来刺激下自己的学习新的东西了。
初步的想法是先把realsense的东西整熟悉,然后跟OpenCV结合起来,看看能做些什么有意思的东西。Let’s go go go….

第一步,把环境搭好,Intel 已经提供了RealSense Camera 在Linux上的运行环境,详情见:

        https://github.com/IntelRealSense/librealsense

Intel 在这里已经将怎么在Ubuntu下搭建RealSense开发环境写得很清楚了

       https://github.com/IntelRealSense/librealsense/blob/master/readme.md

照着步骤,就能把环境搭好,我这边出了点问题,后来是直接自己编译了一个ubuntu-xenial的kernel安装进自己在自己的笔记本上,现在一直使用的就是这个kernel.另外还需要注意的是librealsense 对realsense camera firmware 的版本是有要求的:

     RealSense R200 (Firmware 1.0.72.06 and up)
     RealSense F200 (Firmware 2.60.0.0 and up)
     RealSense SR300 (Firmware 3.10.10.0 and up)
     RealSense LR200 (Firmware 2.0.71.18 and up)
     RealSense ZR300
        Camera Firmware 2.0.71.18 and up
        USB Adapter Board Firmware 1.27.0.0 and up
        Motion Module Firmware 1.23.0.0 and up

如果发现你手上的realsense跑不起来或者老是出错,建议先升级下camera的firmware版本,但是比较不幸的是你需要在另外的一台windows 10的机器上去做升级,只能从intel官网上下载驱动安装包。而且只有windows的环境。

2,第二步,我们开始写自己的测试程序啦。我们先来写一个简单的命令行程序提取camera的相关信息吧。
首先创建一个新目录:

   mkdir example-leon

再来写一个CMakeList.txt,主要都可以参考examples中的CMakeList.txt,稍微加一点自己的东西即可:

INCLUDE_DIRECTORIES(
    /usr/local/include/librealsense/
    )
link_directories(  
          /usr/local/lib 
     )
add_executable(realsense_example realsense_example.cpp)
target_link_libraries(realsense_example ${DEPENDENCIES})

写个简单的测试程序:

 /////////////////////////////////////////////////////
 //realsense_example.cpp
 // create by leon at 2016.12.02
 /////////////////////////////////////////////////////

 // First include the librealsense C++ header file
 #include <librealsense/rs.hpp>
 #include <cstdio>

 int main() try
{
// Create a context object. This object owns the handles to all connected realsense devices.
rs::context ctx;
printf("There are %d connected RealSense devices.\n", ctx.get_device_count());
if(ctx.get_device_count() == 0) return EXIT_FAILURE;

// This tutorial will access only a single device, but it is trivial to extend to multiple devices
rs::device * dev = ctx.get_device(0);
printf("\nUsing device 0, an %s\n", dev->get_name());
printf("    Serial number: %s\n", dev->get_serial());
printf("    Firmware version: %s\n", dev->get_firmware_version());
printf("    RS Camera device name: %s\n ",dev->get_info(rs::camera_info::device_name));

printf("    RS Camera device serial number: %s\n ",dev->get_info(rs::camera_info::serial_number));
printf("    RS Camera device fw version: %s\n ",dev->get_info(rs::camera_info::camera_firmware_version));
//   printf("    RS Camera device adapter board fw : %s\n           ",dev->get_info(rs::camera_info::adapter_board_firmware_version));
//   printf("    RS Camera device motion fw: %s\n ",dev->get_info(rs::camera_info::motion_module_firmware_version));
printf("    RS Camera device camera type: %s\n ",dev->get_info(rs::camera_info::camera_type));
printf("    RS Camera device ODM ID: %s\n ",dev->get_info(rs::camera_info::oem_id));
printf("    RS Camera device ISP fw: %s\n ",dev->get_info(rs::camera_info::isp_fw_version));
printf("    RS Camera device content fw: %s\n ",dev->get_info(rs::camera_info::content_version));
printf("    RS Camera device module fw: %s\n ",dev->get_info(rs::camera_info::module_version));
printf("    RS Camera device image module number: %s\n ",dev->get_info(rs::camera_info::imager_model_number));
//    printf("    RS Camera device built date: %s\n ",dev->get_info(rs::camera_info::build_date));

return EXIT_SUCCESS;
}
catch(const rs::error & e)
{
// Method calls against librealsense objects may throw exceptions of type rs::error
printf("rs::error was thrown when calling %s(%s):\n", e.get_failed_function().c_str(), e.get_failed_args().c_str());
printf("    %s\n", e.what());
return EXIT_FAILURE;
}

运行结果如下:

Using device 0, an Intel RealSense R200
Serial number: 2131008505
Firmware version: 1.0.72.10
RS Camera device name: Intel RealSense R200
 RS Camera device serial number: 2131008505
 RS Camera device fw version: 1.0.72.10
 RS Camera device camera type: Non-PRQ type (255)
 RS Camera device ODM ID: OEM None
 RS Camera device ISP fw: 0x0
 RS Camera device content fw: 10
 RS Camera device module fw: 4.2.3.2
 RS Camera device image module number: 31

在ubuntu 平台上第一个realsense程序算是写好啦。

猜你喜欢

转载自blog.csdn.net/ljp1205/article/details/53440438
今日推荐