奥比中光 Femto Bolt相机ROS配置

作者: Herman Ye @Auromix
测试环境: Ubuntu20.04/22.04 、ROS1 Noetic/ROS2 Humble、X86 PC/Jetson Orin、Kinect DK/Femto Bolt
更新日期: 2023/12/12
1 @Auromix 是一个机器人爱好者开源组织。
2 由于笔者水平有限,以下内容可能存在事实性错误。
3 本文中直接引用各包官方文档的图片等内容,版权归各官方所有。

前言

记录了奥比中光 Femto Bolt相机的配置过程。
包括在边缘平台Jetson Orin以及普通的x86 PC上的ROS1ROS2版本相机包的配置。
在博文发布的时间点,以下步骤测试有效。

参数
测试日期2023-12-11
系统环境1Ubuntu20.04 + x86 PC + ROS1 Noetic
系统环境2Ubuntu20.04 + Jetson Orin 64G Jetpack5.1.2+ ROS1 Noetic
系统环境3Ubuntu22.04 + Jetson Orin 64G Jetpack6.0 + ROS2 Humble
相机型号Femto bolt
相机固件v1.0.9
接线原装DC电源+TypeC数据
驱动包 1OrbbecSDK_ROS1
驱动包 2OrbbecSDK_ROS2

在这里插入图片描述

ROS1 Noetic

测试环境为Ubuntu20.04 + x86 PC + ROS1 Noetic以及Ubuntu20.04 + Jetson Orin 64G Jetpack5.1.2+ ROS1 Noetic

配置

方式一: 自动脚本配置

Auromix提供了Femto Bolt的ROS1自动配置脚本,复制以下命令到终端中使用:

wget -O $HOME/orbbec_femto_bolt_ros1_install.sh https://raw.githubusercontent.com/auromix/ros-install-one-click/main/orbbec_femto_bolt_ros1_install.sh && sudo chmod +x $HOME/orbbec_femto_bolt_ros1_install.sh && bash $HOME/orbbec_femto_bolt_ros1_install.sh && rm $HOME/orbbec_femto_bolt_ros1_install.sh

如果希望了解自动配置脚本的内容,可查看github上的ros-install-one-click项目。

方式二:手动配置

  • 下载
# Create ROS workspace
mkdir -p ~/orbbec_test_ws/src && cd ~/orbbec_test_ws/src
# Download Camera ROS SDK
git clone https://github.com/orbbec/OrbbecSDK_ROS1.git
  • 安装依赖
# Install dependencies
cd ~/orbbec_test_ws
rosdep install --from-paths src --ignore-src -r -y
sudo apt install libgflags-dev ros-$ROS_DISTRO-image-geometry ros-$ROS_DISTRO-camera-info-manager
sudo apt install ros-$ROS_DISTRO-image-transport ros-$ROS_DISTRO-image-publisher 
sudo apt install libgoogle-glog-dev libusb-1.0-0-dev libeigen3-dev
  • 编译
# Build
cd ~/orbbec_test_ws
catkin_make
  • 设置ROS环境
# Set workspace environment
echo "source ~/orbbec_test_ws/devel/setup.bash" >> ~/.bashrc
source ~/orbbec_test_ws/devel/setup.bash
  • 设置udev
# Set udev rules for camera
roscd orbbec_camera
cd script
sudo cp 99-obsensor-libusb.rules /etc/udev/rules.d/99-obsensor-libusb.rules
# Reset udev to activate rules for camera
sudo udevadm control --reload && sudo  udevadm trigger
  • 重启相机
    重新插拔相机的电源及数据线。

测试

  • 启动相机节点
# Terminal 1
roslaunch orbbec_camera femto_bolt.launch
  • 启动RViz观察
# Terminal 2
rviz
  • 获取相机内参等参数
# Terminal 3
rosservice call /camera/get_camera_params "{}"
# Terminal 4
rostopic echo /camera/depth/camera_info
# Terminal 5
rostopic echo /camera/color/camera_info

TroubleShooting

如果出现[ERROR] [1702263159.133516247]: Failed to initialize device uvc_open path=2-6-7.2 failed,return res-6 ,可以尝试重装libuvc库或重启相机节点。

git clone https://github.com/libuvc/libuvc
cd libuvc
mkdir build
cd build
cmake ..
make && sudo make install
sudo ldconfig

ROS2 Humble

测试环境为Ubuntu22.04 + Jetson Orin 64G Jetpack6.0 + ROS2 Humble

配置

方式一: 自动脚本配置

Auromix提供了Femto Bolt的ROS2自动配置脚本,复制以下命令到终端中使用:

wget -O $HOME/orbbec_femto_bolt_ros2_install.sh https://raw.githubusercontent.com/auromix/ros-install-one-click/main/orbbec_femto_bolt_ros2_install.sh && sudo chmod +x $HOME/orbbec_femto_bolt_ros2_install.sh && bash $HOME/orbbec_femto_bolt_ros2_install.sh && rm $HOME/orbbec_femto_bolt_ros2_install.sh

如果希望了解自动配置脚本的内容,可查看github上的ros-install-one-click项目。

方式二:手动配置

  • 下载
# Create ROS2 workspace
mkdir -p ~/orbbec_test_ws/src && cd ~/orbbec_test_ws/src
# Download Camera ROS2 SDK
git clone https://github.com/orbbec/OrbbecSDK_ROS2.git
  • 安装依赖
# Install dependencies
cd ~/orbbec_test_ws
rosdep install --from-paths src --ignore-src -r -y
sudo apt install libgflags-dev nlohmann-json3-dev libgoogle-glog-dev
sudo apt install ros-$ROS_DISTRO-image-transport ros-$ROS_DISTRO-image-publisher ros-$ROS_DISTRO-camera-info-manager
  • 构建
# Build release version
cd ~/orbbec_test_ws
colcon build --event-handlers  console_direct+  --cmake-args  -DCMAKE_BUILD_TYPE=Release
  • 设置ROS环境
# Set workspace environment
echo "source ~/orbbec_test_ws/install/setup.bash" >> ~/.bashrc
source ~/orbbec_test_ws/install/setup.bash
  • 设置udev
# Set udev rules for camera
cd ~/orbbec_test_ws/src/OrbbecSDK_ROS2/orbbec_camera/scripts
sudo bash install_udev_rules.sh
# Reset udev to activate rules for camera
sudo udevadm control --reload-rules && sudo udevadm trigger
  • 重启相机
    重新插拔相机的电源及数据线。

测试

# Terminal 1
ros2 launch orbbec_camera femto_bolt.launch.py
# Terminal 2
rviz2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/247145.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FL Studio水果软件最新版本号V21.0.3.3517内置中文补丁,可以切换成中文界面。

FL Studio 21.0.3.3517 Producer Edition 全称Fruity Loops Studio 21 Producer Edition ,就是大家熟悉的水果编曲软件,一个全能的音乐制作软件,包括编曲、录音、剪辑和混音等诸多功能,让你的电脑编程一个全能的录音室。FL Studio…

关于响应式布局,你需要了解的知识点

什么是响应式布局? 响应式布局,就是根据不同设备展示不同的布局,以免更方便用户浏览页面。 举个很简单的例子,我们在电脑上浏览网页,屏幕非常大,这时候可能采用的是如下图所示的布局方式。这种布局方式很宽…

C++类和对象(3)

目录 再谈构造函数 构造函数体赋值 初始化列表 【注意】 explicit关键字 Static成员 概念 特性 友元 友元函数 友元类 内部类 概念 特性: 匿名对象 拷贝对象时的一些编译器优化 再谈构造函数 构造函数体赋值 在创建对象时,编译…

后端打印不了trace等级的日志?-SpringBoot日志打印-Slf4j

在调用log变量的方法来输出日志时,有以上5个级别对应的方法,从不太重要,到非常重要 调用不同的方法,就会输出不同级别的日志。 trace:跟踪信息debug:调试信息info:一般信息warn:警告…

炒股怎么做杠杆?安全正规的融资融券了解一下!

加杠杆炒股是指放大投资资金进行股票交易,比如自有资金100万,向证券公司融资100万,那么投资者炒股的本金就有200万。当股市行情好的时候可以放大我们的收益! 目前我国股票加杠杆通过融资融券来实现,这个是唯一安全正规…

网络协议 - DNS 相关详解

网络协议 - DNS 相关详解 DNS简介域名层级结构域名服务器 DNS 解析流程为什么DNS通常基于UDP DNS 查询dig 查询host查询nslookup查询whois查询在线工具查询 DNS 调度原理地理位置调度不准确规则变更生效时间不确定高可用 DNS 安全相关什么是DNS劫持什么是DNS污染为什么要DNS流量…

电源适配器老化测试方法分享 电源测试系统助力老化测试

电源适配器老化测试是指对适配器进行高负荷、长时间的运行测试,从而评估电源适配器的性能、稳定性和可靠性。通过老化测试可以检测电源适配器长时间的使用情况,从而指导适配器的设计和研发,提高电源适配器的质量。由于老化测试要求长时间运行…

innovus:ccopt_design流程

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 ccopt完整的流程包括如下几个步骤: spec文件可以只创建一次,无需多次创建。 1)clustering阶段 set_ccopt_property balance_mode cluster …

camunda流程引擎——Java集成Camunda(上)(笔记)

目录 一、以一个处理流程开始1.1 后端1.2 前端1.3 执行 二、Camunda的补充2.1 使用方式2.2 可视化平台的Cockpit2.3 流程相关数据2.4 表介绍2.5 前端集成Modeler 三、用Java集成Camunda3.1 集成配置3.2 自动部署3.2.1 修改process.xml位置3.2.2 多进程引擎配置与多租户 3.3 历史…

《Java 核心技术·卷I (第11版)》笔记

文章目录 第1章 Java程序设计概述1.1 Java程序设计平台1.2 Java “白皮书” 的关键术语1.2.1 简单性1.2.2 面向对象1.2.3 分布式1.2.4 健壮性1.2.5 安全性1.2.6 体系结构中立1.2.7 可移植性1.2.8 解释型1.2.9 高性能1.2.10 多线程1.2.11 动态性 1.3 Java applet 与 Internet1.4…

线性回归在数据库中的应用

简介 今天看到微信群有人问,如何知道数据库一年的磁盘增量?如果没有研究过统计学,IT人员对于这个问题就只能靠经验了去断定了。没经验的往往都是回复扩容越大越好。当然未来的事情我们是无法预料的。本博主就通过简单的线性回归做一个计算&am…

XS9922B-国产cvi协议,满足国内车载视频传输领域国产化降本需求

XS9922B 是一款 4 通道模拟复合视频解码芯片,支持 HDCCTV 高清协议和 CVBS 标 清协议,视频制式支持 720P/1080P 高清制式和 960H/D1 标清制式。芯片将接收到的高清 模拟复合视频信号经过模数转化,视频解码以及 2D 图像处理之后,转…

CVE-2023-49371|RuoYi 若依后台管理系统存在SQL注入漏洞

0x00 前言 RuoYi是一个后台管理系统,基于经典技术组合(Spring Boot、Apache Shiro、MyBatis、Thymeleaf)主要目的让开发者注重专注业务,降低技术难度,从而节省人力成本,缩短项目周期,提高软件安…

相信99%的朋友都没有注意到的数据库时间类型的问题

文章目录 创建表SQL实例小测试知识点小测试可以怎样处理只有查询有问题吗?MySQL时间 很多时候,程序运行起来没有问题,并不代表程序就精确,例如创建时间多一秒少一秒这种事情,很多时候是没有人注意到这个问题。 当然&am…

C++/语法@初始化列表

目录 初始化列表特征疑惑区别必在初始化列表中初始化的三种成员变量1、引用成员变量程序例子:运行结果: 2、const成员变量程序例子:运行结果: 3、自定义类型成员(没有默认构造函数的类)程序例子&#xff1a…

【LeetCode:2132. 用邮票贴满网格图 | 二维前缀和 + 二维差分和】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

【docker 】Dockerfile指令学习

学习文档地址 上篇文章:【docker 】基于Dockerfile创建镜像 Dockerfile指令文档地址 .dockerignore 文件 Dockerfile指令 常见的指令 Dockerfile 指令说明FROM指定基础镜像,用于后续的指令构建。MAINTAINER指定Dockerfile的作者/维护者。&#xff…

伦敦金投资者的本质其实是风险管理者

长期在市场中可以稳定盈利的投资者,他们的秘密是什么?很多人以为,肯定是他有别人所没有的交易策略。其实并不是,交易技术固然很重要,但在持续盈利的问题上,技术所占的重要性是次要的,而主要的是…

Django 模型操作 - 多对多(九)

一、多对多关联管理器(对象调用) 前提:多对多(双向均有关联管理器)一对多(只有多的那个类的对象有关联管理器,即反向才有) 语法格式:正向:属性名反向:小写类名加 _set注意…

H3C ER G2系列路由器信息泄露漏洞

H3C ER G2系列路由器信息泄露漏洞 免责声明漏洞描述漏洞影响漏洞危害漏洞页面漏洞复现1. 构造poc2. 发生数据包,获取密码3. 登录系统 免责声明 仅用于技术交流,目的是向相关安全人员展示漏洞利用方式,以便更好地提高网络安全意识和技术水平。 任何人不得利用该文章…