ZED stereo camera开发入门教程(4)

本教程详述如何使用ZED stereo相机进行位置跟踪。在Windows和Linux上构建程序,初始化相机,开启位置跟踪,捕获姿势数据。适用于已安装ZED SDK和CUDA的用户。
摘要由CSDN通过智能技术生成

教程4:使用ZED进行位置跟踪

原教程及代码链接:

本教程将介绍如何使用ZED作为位置跟踪器。程序将循环,直到1000位置被抓住。我们假设你已经遵循了以前的教程。

先决条件

  • Windows 7 64位或更高版本,Ubuntu 16.04
  • ZED SDK及其依赖项(CUDA)

构建程序

构建Windows

  • 在源文件夹中创建一个“build”文件夹
  • 打开cmake-gui并选择源和构建文件夹
  • 生成Visual Studio Win64解决方案
  • 打开生成的解决方案并将配置更改为 Release
  • 构建解决方案

构建Linux

在示例目录中打开一个终端,并执行以下命令:

mkdir build
cd build
cmake ..
make

代码概述

创建一个相机

与以前的教程一样,我们创建,配置和打开ZED。

// Create a ZED camera object
Camera zed;

// Set configuration parameters
InitParameters init_params;
init_params.camera_resolution = RESOLUTION_HD720; // Use HD720 video mode (default fps: 60)
init_params.coordinate_system = COORDINATE_SYSTEM_RIGHT_HANDED_Y_UP; // Use a right-handed Y-up coordinate system
init_params.coordinate_units = UNIT_METER; // Set units in meters

// Open the camera
ERROR_CODE err = zed.open(init_params);
if (err != SUCCESS)
    exit(-1);

启用位置跟踪

一旦相机打开,我们必须启用位置跟踪模块才能获得ZED的位置和方向。
// Enable positional tracking with default parameters
sl::TrackingParameters tracking_parameters;
err = zed.enableTracking(tracking_parameters);
if (err != SUCCESS)
    exit(-1);
在上面的例子中,我们留下默认的跟踪参数。有关可用参数的列表,请查看在线文档。

拍摄姿势数据

现在打开ZED并启用位置跟踪,我们创建一个循环来抓取并检索相机位置。
相机位置由类sl :: Pose给出。该类包含相机的翻译和方向,以及图像时间戳和跟踪信心(质量)。
姿势总是与参考框架相关联。SDK提供了两个参考框架:REFERENCE_FRAME_WORLD和REFERENCE_FRAME_CAMERA。
本教程的目的不在于参考这些参考框架的细节。阅读文档了解更多信息。
在这个例子中,我们得到了在World Frame中的设备位置。
// Track the camera position during 1000 frames
int i = 0;
sl::Pose zed_pose;
while (i < 1000) {
    if (zed.grab() == SUCCESS) {

        zed.getPosition(zed_pose, REFERENCE_FRAME_WORLD); // Get the pose of the left eye of the camera with reference to the world frame

        // Display the translation and timestamp
        printf("Translation: Tx: %.3f, Ty: %.3f, Tz: %.3f, Timestamp: %llu\n", zed_pose.getTranslation().tx, zed_pose.getTranslation().ty, zed_pose.getTranslation().tz, zed_pose.timestamp);

        // Display the orientation quaternion
        printf("Orientation: Ox: %.3f, Oy: %.3f, Oz: %.3f, Ow: %.3f\n\n", zed_pose.getOrientation().ox, zed_pose.getOrientation().oy, zed_pose.getOrientation().oz, zed_pose.getOrientation().ow);

  i++;
    }
}
这将循环,直到ZED被跟踪1000帧。我们在控制台窗口中显示照相机翻译(以米为单位),并在退出应用程序之前关闭相机。

// Disable positional tracking and close the camera
zed.disableTracking();
zed.close();
return 0;
您现在可以使用ZED作为内向外位置跟踪器。您还可以阅读下一个教程,了解如何使用空间映射。

要使用zed2i相机,您可以按照以下步骤进行设置和操作: 1. 首先,确保您已经启动了ZED节点。使用以下命令之一启动ZED节点: - 对于ZED相机:`roslaunch zed_wrapper zed.launch` - 对于ZED Mini相机:`roslaunch zed_wrapper zedm.launch` - 对于ZED 2相机:`roslaunch zed_wrapper zed2.launch` - 对于ZED 2i相机:`roslaunch zed_wrapper zed2i.launch` 2. 要设置相机参数,您可以修改`param/common.yaml`(所有相机通用参数)和`param/zed2.yaml`文件。在这些文件中,您可以调整各种参数以满足您的需求。有关可用参数的详细信息,请参阅官方文档的参数调整部分。 3. 如果您想尝试教程,请进入`tutorials`文件夹,然后进入`tutorial 1 - hello ZED\csharp`文件夹。在此文件夹中,您可以找到用于C#编程的示例代码。然后,创建一个名为`build`的新文件夹,用于构建代码。 请注意,以上是zed2i相机的基本使用教程。如果您需要更详细的操作指南或进一步的说明,请参考官方文档或相关教程资源。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [ZED2相机使用及检测目标功能](https://blog.csdn.net/SKGLZ/article/details/126279712)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [ZED2i相机使用环境搭建(Windows 环境下 C#API)](https://blog.csdn.net/sunsoldeir1/article/details/128379438)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值