图漾相机-ROS1_SDK_ubuntu版本编译(新版本)

news2024/12/22 9:36:59

文章目录

  • 官网编译文档链接
  • 官网SDK下载链接
  • 1、下载 Camport ROS1 SDK
    • 1.下载git
    • 2、下载链接
  • 2、准备编译工作
    • 1、安装 catkin
    • 2、配置环境变量
    • 3. 将Camport3中的linux库文件拷贝到 user/lib目录下
    • 4、修改lunch文件制定相机(可以放在最后可以参考在线文档)
      • **percipio.launch.xml**
      • **percipio.cfg:**
      • a.执行以下命令,打开 percipio.launch 文件 ,指定相机ID.
      • b.修改 Percipio.cfg 配置
    • 5、下载和安装ROS-noetic版本
    • 6、下载和安装ROS1 SDK
    • 7,软件运行环境配置
    • 8,连接相机运行
    • 9.添加图像
        • 1、在页面左侧 Global Options 设置项中设置 “Fixed Frame” 为 “camera_depth_frame”。
        • 2、添加深度图显示。
        • 3、添加彩色图显示。
        • 4、添加点云图显示。
        • 5、根据成像情况,动态调整相机参数
    • 10.常见问题汇总
      • 问题1: python3-catkin-pkg 0.4.24-2 在处理时有错误发生,需要强行覆盖:
      • 问题2:default sources list file already exists”的错误
      • 问题3:其他问题链接
      • 问题4: 环境变量为设置包 percipio_launch
      • 问题5:缺少rgbd-launch库
      • 问题6:缺少pcl(opencv类似)
      • 问题7:编译缺少ros-noetic-camera-info-manager (其他库类似)

官网编译文档链接

官网SDK下载链接

1、下载 Camport ROS1 SDK

1.下载git

sudo apt install git

2、下载链接

 国内:git clone https://gitee.com/percipioxyz/camport_ros.git
 国外:git clone https://github.com/percipioxyz/camport_ros.git

2、准备编译工作

1、安装 catkin

sudo apt install catkin
或者
git clone https://github.com/ros/catkin
cd catkin/ && mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release ../ && make && sudo make install
export CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:/home/tuyang/Workspace/catkin/build/devel/

2、配置环境变量

echo "source <开发包存放路径>/camport_ros/devel/setup.bash" >> ~/.bashrc

3. 将Camport3中的linux库文件拷贝到 user/lib目录下

cd /camport_ros/src/camport3/lib/linux/lib_x64
sudo cp -fr * /usr/lib/

4、修改lunch文件制定相机(可以放在最后可以参考在线文档)

注意修改配置文件都要重新cakin_make

percipio.launch.xml

src/percipio_launch/launch/percipio.launch.xml用于配置相机启动时加载的默认参数,一般配置好
不需要动态修改的参数会放在这里。如:指定相机的 SN 或 IP、配置网络重传、组件配置(配置 color 和 depth 的分辨率、配置 SGBM 参数或者 ToF 相关参数,配置畸变校正是否打开等)。

percipio.cfg:

在这里插入图片描述

a.执行以下命令,打开 percipio.launch 文件 ,指定相机ID.

cd src/percipio_launch/launch  
 gedit/percipio.launch
 <arg name="device_id" default="207000106930" />  //制定相机ID
 <arg name="color_depth_synchronization" default="true" /> //左右灰度图像曝光完全同步开关
 <arg name="depth_registration" default="true" />  //设置深度图和彩色图对齐开关

device_id 默认值为 #1,表示默认打开找到的第一个相机。
只有同时打开彩色图和深度图后,此项使能开关才会生效。对于没有 RGB 组件的相机此设置无效。

b.修改 Percipio.cfg 配置

percipio.cfg 文件中的参数支持动态调节,修改 Percipio.cfg 参数最大值和最小值后,参见 运行 调出
rqt_reconfigure_Param 页面并进行调节。

cd src/percipio_camera/cfg/
gedit Percipio.cfg
//在 gen.add() 中设置参数的最小值和最大值
gen.add(name, type, level, description, default, min, max) 
//表示属性名称、类型、优先级、描述、默认值、最小值、最大值。
//布尔类型的值必须写成 True 或 False (首字母大写)。

1、若不知道相机属性的最小值和最大值,可通过以下方式查看相机支持的组件和属性:
可运行 SDK 示例程序 DumpAllFeatures,在列出的信息中查看相机支持的组件和属性。
可运行 SDK 示例程序 DumpAllFeatures -d,在生成 fetch_config.xml 文件中查看相机支持的组件和属性。
2、以下参数的设置范围可自定义:
depth_speckle_filter:斑点滤波开关。斑点滤波用于过滤深度图中的小块斑点噪声。
max_speckle_size:斑点噪声的最大尺寸。尺寸大于该设定值的斑点被认为不是噪声。建议设置范围为 [10,3000]。
max_speckle_diff:同块斑点中相邻像素的最大深度差值。若相邻像素的深度差值大于该设定值,则认为该相邻像素属于两块斑点。建议设置范围为 [10,1500]。
data_skip:跳帧。例如,图漾发布节点实际是 30fps,ROS 接收节点只想接收 10fps,此时可将 data_skip 设置为建议设置范围为 [0,20]。
z_scaling:深度图中像素值的单位。建议设置范围为 [0,8]。
use_device_time:默认设置为 True,表示使用相机内部时间戳;设置为 False 时,表示使用 ROS 的时间戳。

5、下载和安装ROS-noetic版本

需要注意:sudo apt install ros-noetic-desktop-full(18.04)
因ubuntu版本的不同其安装指令也有可能不同,我的是ubuntu20.04 执行上面的代码时显示:无法定位软件包 ros-melodic-desktop-full ,然后改为执行下面的命令来安装:

 sudo apt install ros-noetic-desktop-full
 sudo apt install ros-noetic-rgbd-launch
 source /opt/ros/noetic/setup.bash
 //注意:sudo apt install ros-noetic-rqt* 安装过程中若提示缺少该包再要安装

18.04ROS1安装链接
20.04ROS1 国内资源安装教程
20.04ROS1安装教程

6、下载和安装ROS1 SDK

//到达workspace目录
git clone -b pre_release https://github.com/percipioxyz/camport_ros.git 
cd /home/tuyang/Workspace/camport_ros
 catkin_make

7,软件运行环境配置

//打开~/.bashrc文件
vi ~/.bashrc
//写入
source /home/tuyang/Workspace/camport_ros/devel/setup.bash
//source 生效
source ~/.bashrc

8,连接相机运行

可以使用官网的percipio-view正确连接相机,确认本地网络和相机在同一个网段
//启动节点服务
roscore
//在开发包根目录下执行以下命令,订阅服务
roslaunch percipio_launch percipio.launch
//重新开一个终端,执行以下命令,运行 RViz:获取相机取图
rosrun rviz rviz

9.添加图像

1、在页面左侧 Global Options 设置项中设置 “Fixed Frame” 为 “camera_depth_frame”。

在这里插入图片描述

2、添加深度图显示。

点击 add, 添加 “Camera”,命名为 Depth Camera。
在这里插入图片描述
在页面左侧新增的 Depth Camera 设置项中设置“Image Topic”为“/camera/depth/image”。
在这里插入图片描述

3、添加彩色图显示。

点击 add, 添加 “Camera”,命名为 Color Camera。

勾选在页面左侧新增的 Color Camera,并在设置项中设置“Image Topic”为“/camera/rgb/image_raw”

4、添加点云图显示。

DepthCloud 是输入深度图和内参给 ROS,ROS 内部通过 rgbd_launch 转换出来的点云。
点击 add, 添加 “PointCloud2”,命名为 Point Cloud 2。
勾选在页面左侧新增的 Point Cloud 2,并在设置项中设置“Topic”为“/camera/PointCloud2”。

5、根据成像情况,动态调整相机参数

执行以下命令,调出 rqt_reconfigure_Param 页面。选择 driver,并在页面中调节参数。
rosrun rqt_reconfigure rqt_reconfigure
在这里插入图片描述

10.常见问题汇总

问题1: python3-catkin-pkg 0.4.24-2 在处理时有错误发生,需要强行覆盖:

你可以尝试强制覆盖安装python3-catkin-pkg-modules 软件包,使其覆盖已经存在的文件。在终端中执行以下命令:
sudo dpkg -i --force-overwrite /var/cache/apt/archives/python3-catkin-pkg-modules_1.0.0-1_all.deb
这会强制 dpkg 覆盖文件而不会终止安装过程。之后你可以运行 apt install -f 命令修复可能的依赖问题: sudo apt install -f

问题2:default sources list file already exists”的错误

default sources list file already exists”的错误

问题3:其他问题链接

其他问题链接

问题4: 环境变量为设置包 percipio_launch

在这里插入图片描述

source   /home/tuyang/Workspace/camport_ros/devel/setup.bash
source ~/.bashrc

问题5:缺少rgbd-launch库

在这里插入图片描述

sudo apt install ros-noetic-rgbd-launch

问题6:缺少pcl(opencv类似)

在这里插入图片描述

sudo apt install ros-noetic-pcl-ros

问题7:编译缺少ros-noetic-camera-info-manager (其他库类似)

在这里插入图片描述

//基于上面说的缺少库文件进行安装,例如上图中少了 camera_info_manager
sudo apt install ros-noetic-camera-info-manager 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

十二、从0开始卷出一个新项目之瑞萨RZN2L 基于IAR coremark fsp200工程构建和iar icf链接文件修改方法

目录 一、概述 二、rzn2l_fsp2.0.0_coremark工程构建 2.1 目录结构 2.2 项目一览 2.3 iar工程打开报错如何处理 三、代码优化的问题 3.1 system.c中复制内存 3.2 iar代码优化等级与volatile关键字 3.3 iar配置优化单个文件与预编译宏的范围 四、iar .icf链接文件修改…

内容与资讯API优质清单

作为开发者&#xff0c;拥有一套API合集是必不可少的。这个开发者必备的API合集汇集了各种实用的API资源&#xff0c;为你的开发工作提供了强大的支持&#xff01;无论你是在构建网站、开发应用还是进行数据分析&#xff0c;这个合集都能满足你的需求。你可以通过这些免费API获…

线程知识总结(二)

本篇文章以线程同步的相关内容为主。线程的同步机制主要用来解决线程安全问题&#xff0c;主要方式有同步代码块、同步方法等。首先来了解何为线程安全问题。 1、线程安全问题 卖票示例&#xff0c;4 个窗口卖 100 张票&#xff1a; class Ticket implements Runnable {priv…

多智能体/多机器人网络中的图论法

一、引言 1、网络科学至今受到广泛关注的原因&#xff1a; &#xff08;1&#xff09;大量的学科&#xff08;尤其生物及材料科学&#xff09;需要对元素间相互作用在多层级系统中所扮演的角色有更深层次的理解&#xff1b; &#xff08;2&#xff09;科技的发展促进了综合网…

OB删除1.5亿数据耗费2小时

目录 回顾&#xff1a;mysql是怎么删除数据的&#xff1f; 删除方案 代码实现 执行结果 结论 本篇是实际操作 批量处理数据以及线程池线程数设置 记录学习 背景&#xff1a;有一张用户标签表&#xff0c;存储数据量达4个亿&#xff0c;使用OceanBase存储&#xff0c;由于…

简洁IIC协议讲述

目录 一&#xff1a;首先&#xff0c;IIC传输是在2条线上传输的。 二&#xff1a;时钟信号的频率和占空比解释&#xff08;可以看作PWM波形&#xff09; 三&#xff1a;传输信号的流程图&#xff08;起始和终止信号都是由主机(我)控制&#xff09; 四&#xff1a;开始信号和…

IIC I2C子协议 SMBus协议 通信协议原理 时序 SMBus深度剖析

引言&#xff1a;系统管理总线&#xff08;SMBus&#xff09;是一种双线接口&#xff0c;通过该接口&#xff0c;各种系统组件芯片和设备可以相互以及与系统其他部分通信。它基于IC总线的操作原理。附录B提供了一些SMBus特性与IC总线不同的方式的描述。 SMBus为系统和电源管理相…

重拾设计模式--建造者模式

文章目录 建造者模式&#xff08;Builder Pattern&#xff09;概述建造者模式UML图作用&#xff1a;建造者模式的结构产品&#xff08;Product&#xff09;&#xff1a;抽象建造者&#xff08;Builder&#xff09;&#xff1a;具体建造者&#xff08;Concrete Builder&#xff…

Orleans异常传递测试

Orleans具备非常简单的异常传递机制&#xff0c;Grain或Placement注解逻辑抛异常&#xff0c;可以直接传递到客户端&#xff0c;测试代码如下&#xff1a; 首先在客户端、Silo服务程序的Main方法增加ThreadException事件处理函数&#xff0c;避免未处理异常导致进程闪退。 sta…

【Linux进程】基于管道实现进程池

目录 前言 1. 进程池 1.1 基本结构&#xff1a; 1.2. 池化技术 1.3. 思路分析 1.4. 代码实现 总结 前言 上篇文章介绍了管道及其使用&#xff0c;本文在管道的基础上&#xff0c;通过匿名管道来实现一个进程池&#xff1b; 1. 进程池 父进程创建一组子进程&#xff0c;子进…

PCL点云库入门——PCL库中点云数据拓扑关系之K-D树(KDtree)

1、点云的拓扑邻域 在三维空间数据处理的领域中&#xff0c;点云的邻域概念显得尤为关键&#xff0c;它不仅链接了点云数据之间的拓扑结构&#xff0c;而且在构建点云间的拓扑关系时起到了桥梁的作用。这种关系的建立&#xff0c;使得我们能够以一种高效、迅速的方式管理庞大的…

Leecode刷题C语言之根据第k场考试的分数排序

执行结果:通过 执行用时和内存消耗如下&#xff1a; int gk 0;int compare(const void* a, const void* b) {int* ua *(int**)a;int* ub *(int**)b;return ub[gk] - ua[gk]; }int** sortTheStudents(int** score, int scoreSize, int* scoreColSize, int k, int* returnSiz…

由popover框一起的操作demo问题

场景&#xff1a; 当popover框弹出的时候&#xff0c;又有MessageBox 提示&#xff0c;此时关闭MessageBox 提示&#xff0c;popover就关闭了。将popover改为手动激活&#xff0c;可以解决这个问题&#xff0c;但是会引起另外一个问题&#xff0c;之前&#xff08;click触发的时…

QT修改运行窗口的图标

首先&#xff0c;在.pro下添加两行&#xff1a; Debug:DESTDIR $$PWD Release:DESTDIR $$PWD 指定目标文件的路径 指定生成的debug和release文件夹路径在当前项目下 上面是为了防止爆奇怪的错 右键项目添加新文件 选择QT-》QT Resource File 起个名&#xff0c;然后下一步…

降低Mobx技术债问题-React前端数据流方案调研整理

我们现在主要是使用Mobx&#xff0c;但是Mobx的易于上手和灵活度也带来了很多预期以外的问题&#xff0c;随着项目的增长我们的代码技术债变得愈加沉重&#xff0c;不同的模块杂糅一起、单一store无限膨胀。 为此我们的调研是希望能找到一个更好的state配置、数据流的约定方案。…

sql server索引优化语句

第一步 建一个测试表 --create table TestUsers --( -- Id int primary key identity(1,1), -- Username varchar(30) not null, -- Password varchar(10) not null, -- CreateDateTime datetime not null --)第二步 插入100w数据 大概1分钟执行时间 ----插入数据…

aioice里面candidate固定UDP端口测试

环境&#xff1a; aioice0.9.0 问题描述&#xff1a; aioice里面candidate固定UDP端口测试 解决方案&#xff1a; /miniconda3/envs/nerfstream/lib/python3.10/site-packages/aioice import hashlib import ipaddress import random from typing import Optional import…

Java(二十五)final关键字

Java中的final关键字在编写程序中,比较常用。尤其是在上文中的匿名内部类中。 final 表示最终,也可以称为完结器,表示对象是最终形态的,不可改变的意思。 使用final修饰的的类,是“断子绝孙”的。 一:final修饰成员变量 Final修饰的类的成员变量是常量,不可被改变。 …

MySQL三大日志-Redo Log

Redo Log简介 事务中修改的任何数据&#xff0c;将最新的数据备份存储的位置&#xff08;Redo Log&#xff09;&#xff0c;被称为重做日志。 Redo Log 的生成和释放 随着事务操作的执行&#xff0c;就会生成Redo Log&#xff0c;在事务提交时会将产生Redo Log写入Log Buff…

【libuv】Fargo信令2:【深入】client为什么收不到服务端响应的ack消息

客户端处理server的ack回复,判断链接连接建立 【Fargo】28:字节序列【libuv】Fargo信令1:client发connect消息给到server客户端启动后理解监听read消息 但是,这个代码似乎没有触发ack消息的接收: // 客户端初始化 void start_client(uv_loop_t