当前位置: 首页 > news >正文

奥比中光 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

相关文章:

奥比中光 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&#…...

scala表达式

1.8 表达式(重点) # 语句(statement):一段可执行的代码# 表达式(expression):一段可以被求值的代码,在Scala中一切都是表达式 - 表达式一般是一个语句块,可包含一条或者多条语句,多条语句使用“…...

uniapp,点击选中并改变颜色,第二次点击取消选中状态

一、效果图 二、代码实现 字符串的indexOf和数组的indexOf用法一致! arr.indexOf(item) 该方法返回某个元素在数组中的位置。若没检索到,则返回 -1。 关键代码:(通过:class绑定) :class"selectList.indexOf(sub.type) ! -1 ? right_ite…...

mmyolo的bbox_loss和检测bbox都是空

最近用mmyolo训练自己的数据集的时候发现训练的时候loss_bbox0,测试和eval的时候结果也全是空的,排除了数据集读取的问题,最后发现是config中自定义了自己的类别但是没有传给dataset。。。 简而言之,在自定义了数据集里的metainf…...

Linux——基本指令(二)

​ 个人主页:日刷百题 系列专栏:〖C语言小游戏〗〖Linux〗〖数据结构〗 〖C语言〗 🌎欢迎各位→点赞👍收藏⭐️留言📝 ​ ​ 写在前面: 紧接上一章,我们在理解接下来的命令之前&#xff0c…...

渲染农场对工业产品渲染带来的意义与优势?

随着科技的进步,利用精细渲染图来呈现和推广工业设计的创新已成为行业标准。这些图像在产品研发、设计评审和营销阶段起着关键作用,同时对产品最终的成功也产生深远影响。然而,由于产品设计日渐复杂,制作渲染图的任务变得极具挑战…...

产品入门第二讲:Axure产品元件库的使用

📚📚 🏅我是默,一个在CSDN分享笔记的博主。📚📚 ​​​​ 🌟在这里,我要推荐给大家我的专栏《Axure》。🎯🎯 🚀无论你是编程小白,还是…...

(第7天)Linux 静默安装单机 Oracle 19C 数据库

Linux 静默安装安装单机 Oracle 19C 数据库(第7天) 很多朋友经常会问,如果生产环境不允许安装 Linux 图形化界面怎么办?是不是有其他的方式来安装部署 Oracle 数据库呢?答案是肯定的! 我们可以通过命令行的方式来静默安装,不调用图形化界面,当然也就没有那么简单了!…...

智能优化算法应用:基于入侵杂草算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于入侵杂草算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于入侵杂草算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.入侵杂草算法4.实验参数设定5.算法结果6.…...

数据挖掘目标(Kaggle Titanic 生存测试)

import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns1.数据导入 In [2]: train_data pd.read_csv(r../老师文件/train.csv) test_data pd.read_csv(r../老师文件/test.csv) labels pd.read_csv(r../老师文件/label.csv)[Su…...

【Vue】router.push用法实现路由跳转

目录 router.push用法 在Login.vue中 在Register.vue中 ​ 上一篇:登录与注册界面的制作 https://blog.csdn.net/m0_67930426/article/details/134895214?spm1001.2014.3001.5502 制作了登录与注册界面,并介绍了相关表单元素即属性的用法 在登录页面…...

设计原则 | 接口隔离原则

一、接口隔离原则 1、原理 客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上。如果强迫客户端依赖于那些它们不使用的接口,那么客户端就面临着这个未使用的接口的改变所带来的变更,这无意间导致了客户程序之…...

maui 调用文心一言开发的聊天APP 3

主要是对代码进行了优化 上一个版本写死了帐号跟密码 ,这一个帐本有户可以直接设置对相关的key以及secret如果设置错时,在聊天中也会返回提示。注册帐号时同时也设置了key及secrete升级到了net.8.0导出APK,上一个版本是导出abb.解决了变型问…...

鸿蒙开发 - ohpm安装第三方库

前端开发难免使用第三方库,鸿蒙亦是如此,在使用 DevEco Studio 开发工具时,如何引入第三方库呢?操作步骤如下,假设你使用的是MacOS,假设你已经创建了了一个项目: 一、配置 HTTP Proxy 在打开了…...

[C++] new和delete

使用new时调用构造函数使用delete时调用析构函数 构造函数 使用new动态分配内存时,如果分配的是基本类型的内存,则不会调用构造函数。如果分配的是自定义类型的内存,则会调用构造函数进行对象的初始化。 例如: int* pInt new…...

OpenVINS学习2——VIRAL数据集eee01.bag运行

前言 周末休息了两天,接着做上周五那个VIRAL数据集没有运行成功的工作。现在的最新OpenVINS需要重新写配置文件,不像之前那样都写在launch里,因此需要根据数据集情况配置好estimator_config.yaml还有两个标定参数文件。 VIRAL数据集 VIRAL…...

jemeter,断言:响应断言、Json断言

一、响应断言 接口A请求正常返回值如下: {"status": 10013, "message": "user sign timeout"} 在该接口下创建【响应断言】元件,配置如下: 若断言成功,则查看结果树的接口显示绿色,若…...

【vue实战项目】通用管理系统:信息列表,信息的编辑和删除

本文为博主的vue实战小项目系列中的第七篇,很适合后端或者才入门的小伙伴看,一个前端项目从0到1的保姆级教学。前面的内容: 【vue实战项目】通用管理系统:登录页-CSDN博客 【vue实战项目】通用管理系统:封装token操作…...

基于FPGA的视频接口之高速IO(光纤)

简介 对于高速IO口配置光纤,现在目前大部分开发板都有配置,且也有说明,在此根据自己的工作经验以及对于各开发板的说明归纳 通过高速IO接口,以及硬件配置,可以实现对于光纤的收发功能,由于GTX的速率在500Mbs到10Gbps之间,但通道高速io可配置光纤10G硬件,物理通完成,则…...

HTML实现页面

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>工商银行电子汇款单</title> </head> &…...

跨域空间匹配(CDSM):解锁摄像头与雷达融合的3D感知新范式

1. 为什么自动驾驶需要跨域空间匹配技术 当你坐在一辆自动驾驶汽车里&#xff0c;最不希望看到的就是系统把前方停着的卡车误判成广告牌。这种错误在单一传感器系统中其实很常见——摄像头可能因为逆光看不清物体轮廓&#xff0c;雷达又难以识别物体的具体形状。这就是为什么我…...

从CVE-2017-11882到CVE-2018-0802:一个Office漏洞的“补丁绕过”实战复现与调试分析

从CVE-2017-11882到CVE-2018-0802&#xff1a;Office漏洞补丁绕过的深度解析与实战复现 漏洞背景与历史沿革 2017年11月&#xff0c;微软修补了一个存在近20年的Office公式编辑器组件漏洞&#xff08;CVE-2017-11882&#xff09;&#xff0c;该漏洞允许攻击者通过特制的RTF文档…...

AMD Zen 5架构深度解析:从芯片设计到市场格局的算力突围

1. 项目概述&#xff1a;一场迟来的算力突围战最近几年&#xff0c;但凡关注高性能计算、人工智能或者游戏显卡的朋友&#xff0c;心里可能都憋着一股气&#xff1a;市场几乎被一家公司主导&#xff0c;无论是数据中心里训练大模型的GPU&#xff0c;还是我们电脑里的独立显卡&a…...

AnyVisLoc:专为低空多视角无人机定位打造的全球首个统一评测基准

一、论文背景与开创性意义 AnyVisLoc 是专为低空多视角条件下的无人机绝对视觉定位&#xff08;Absolute Visual Localization&#xff0c;简称 AVL&#xff09;设计的全球首个统一评测基准与大尺度数据集&#xff0c;论文题为 《Exploring the best way for UAV visual local…...

告别GDB依赖:在NEMU里打造专属调试器,我是如何搞定单步执行与内存扫描的

从零构建教学级调试器&#xff1a;NEMU Monitor模块深度解析与实践指南 在计算机系统与体系结构的学习过程中&#xff0c;调试器如同探索程序执行奥秘的显微镜。传统调试工具如GDB虽然功能强大&#xff0c;但其内部工作机制对初学者而言却如同黑箱。本文将带您深入NEMU模拟器的…...

企业Agent落地:从0到1搭建员工Agent体系

一、项目背景 某中型企业在数字化转型过程中遇到以下痛点&#xff1a; 合同审批流程平均耗时3天&#xff0c;效率低下员工每天约30%的时间花在重复操作上流程规则散落在员工经验中&#xff0c;难以标准化缺乏统一的操作审计和权限管理 二、落地路径 阶段一&#xff1a;验证…...

从Ubuntu 16.04到自定义Rootfs:Firefly-RK3399系统镜像DIY全记录

从Ubuntu 16.04到自定义Rootfs&#xff1a;Firefly-RK3399系统镜像DIY全记录 在嵌入式开发领域&#xff0c;Firefly-RK3399凭借其强大的六核ARM架构和丰富的扩展接口&#xff0c;成为众多开发者的首选平台。然而&#xff0c;官方提供的Ubuntu 16.04镜像往往无法满足特定项目需求…...

别再只调参了!深入pix2pixHD的多尺度鉴别器与实例地图,解决你的图像合成‘塑料感’难题

突破图像合成瓶颈&#xff1a;pix2pixHD多尺度鉴别器与实例地图的实战精要 当你在深夜调试生成对抗网络&#xff0c;屏幕上的合成图像却始终带着难以消除的"塑料感"——表面过于光滑、边缘模糊、纹理缺乏层次。这种挫败感或许正是促使你点开本文的原因。作为GAN领域的…...

别再死记硬背了!用Python+Simulink仿真液压系统,帮你彻底搞懂帕斯卡原理和伯努利方程

用Python和Simulink仿真液压系统&#xff1a;从理论到实践的沉浸式学习 液压传动作为现代机械工程的核心技术之一&#xff0c;其理论基础往往让初学者望而生畏。帕斯卡原理、伯努利方程这些看似简单的公式背后&#xff0c;隐藏着复杂的物理现象和工程应用。传统的死记硬背方式不…...

打卡信奥刷题(3286)用C++实现信奥题 P8929 「TERRA-OI R1」别得意,小子

P8929 「TERRA-OI R1」别得意&#xff0c;小子 题目背景 战至中途&#xff0c;蓝紫色天空瞬间变为黑压压一片&#xff0c;噬神者身上一些紫色外壳开始脱落&#xff0c;化为更小的蟒蛇&#xff0c;这些小家伙从出现开始便不要命的向你冲过来&#xff0c;刚清理掉这些小家伙&…...