图漾相机-ROS2-SDK-Ubuntu版本编译(新版本)

官网编译文档链接:
https://doc.percipio.xyz/cam/latest/getstarted/sdk-ros2-compile.html

国内gitee下载SDK链接:
https://gitee.com/percipioxyz

国外github下载SDK链接:
https://github.com/percipioxyz

1.Camport ROS2 SDK 介绍

1.1 Camport ROS2 SDK源文件介绍

Camport ROS2 SDK 的目录,目录包含了camport3,include,launch,src。

1.README.md

简述了 ROS2 编译过程。
2.src/percipio_camera/CMakeLists.txt:

Cmake 编译系统的规则文件。
3.src/percipio_camera/camport3:

包含 Percipio SDK 的库文件和头文件。

4.src/percipio_camera/include:

包含头文件。
5.src/percipio_camera/launch:

包含 ROS2 的启动文件,用于启动节点和配置参数。
6.src/percipio_camera/package.xml:

描述功能包清单的文件,包括功能包的名称、版本号、作者信息、许可信息、编译依赖等。
7.src/percipio_camera/src:

包含主要的源代码文件,包括节点实现、相机驱动等。

1.2 Camport ROS2 SDK工作流程

1.2.1 包含头文件

包含必要的 ROS 2 头文件,例如 rclcpp。

1.2.2 2 初始化 ROS 2 节点

使用 rclcpp::init(argc, argv); 初始化 ROS 2。

1.2.3 创建节点对象

使用 rclcpp::Node::make_shared("节点名称") 创建节点对象。

1.2.4 创建发布者对象并实现发布逻辑

使用 node->create_publisher<消息类型>("话题名称", 队列大小);

创建发布者对象。实现发布逻辑,例如在回调函数中发布消息。

1.2.5 启动 ROS 2

使用 ros2 run 包名 节点名 运行指定的 ROS 2 节点。

使用 ros2 launch 包名 launch文件名 启动包含多个节点的 launch 文件。

1.3 ROS2 SDK环境配置与编译

主要针对ubuntu20.04对应ROS2 Foxy,以及ubuntu22.04对应ROS2 Humble两个版本的系统进行操作。

1.3.1 Ubuntu 20.04 下ROS2 Foxy环境配置与编译

环境配置与编译步骤:
第一步:设置编码

cpp 复制代码
sudo apt update && sudo apt install locales 
sudo locale-gen en_US en_US.UTF-8 
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 
export LANG=en_US.UTF-8

第二步:添加ROS源的公钥

cpp 复制代码
sudo apt update && sudo apt install curl gnupg lsb-release 
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg 
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] 
https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

第三步:安装ROS2-foxy

cpp 复制代码
sudo apt update 
sudo apt upgrade 
sudo apt install ros-foxy-desktop
sudo apt install python3-colcon-common-extensions
sudo apt install ros-foxy-camera-info-manager
sudo apt install ros-foxy-image-publisher
sudo apt install ros-foxy-diagnostic-updater

**第四步:**设置环境变量

cpp 复制代码
source /opt/ros/foxy/setup.bash
echo " source /opt/ros/foxy/setup.bash" >> ~/.bashrc

第五步:camport3_ros2目录下,编译SDK

cpp 复制代码
cd ~/ros2_ws/src/camport_ros2/
colcon build --event-handlers  console_direct+  --cmake-args  -DCMAKE_BUILD_TYPE=Release
sudo echo "source ./install/setup.bash" >> ~/.bashrc
source ~/.bashrc

colcon build 说明

--event-handlers console_direct+:这个选项指定了事件处理程序。console_direct+ 表示直接在控制台输出构建事件的详细信息。这样可以更清楚地看到构建过程中的每一步和可能的错误信息。
--cmake-args -DCMAKE_BUILD_TYPE=Release :这个选项传递了额外的 CMake 参数。在这种情况下,-DCMAKE_BUILD_TYPE=Release 设置了 CMake 的构建类型为

Release。这意味着构建将进行优化,适合发布版本,而不是调试版本。

编译后会生成 build 文件夹(包含中间文件和目标文件)、install 文件夹(包括可执行文件、库文件、头文件和其他资源文件)和 log 文件夹(包含编译和运行时生成的日志文件)。

1.3.2 Ubuntu 22.04 下ROS2 Humble环境配置与编译

环境配置与编译步骤:
第一步:设置编码

cpp 复制代码
sudo apt update && sudo apt install locales 
sudo locale-gen en_US en_US.UTF-8 
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 
export LANG=en_US.UTF-8

第二步:添加ROS源的公钥

cpp 复制代码
sudo apt update && sudo apt install curl gnupg lsb-release 
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg 
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

第三步:安装ROS2-humble

cpp 复制代码
sudo apt update 
sudo apt upgrade 
sudo apt install ros-humble-desktop
sudo apt install python3-colcon-common-extensions
sudo apt install ros-humble-camera-info-manager
sudo apt install ros-humble-image-publisher
sudo apt install ros-humble-diagnostic-updater

第四步:设置环境变量

cpp 复制代码
source /opt/ros/ humble /setup.bash
echo " source /opt/ros/ humble /setup.bash" >> ~/.bashrc

第五步:camport3_ros2目录下,编译SDK

cpp 复制代码
cd ~/ros2_ws/src/camport_ros2/
colcon build --event-handlers  console_direct+  --cmake-args  -DCMAKE_BUILD_TYPE=Release
sudo echo "source ./install/setup.bash" >> ~/.bashrc
source ~/.bashrc 

colcon build 说明

--event-handlers console_direct+:这个选项指定了事件处理程序。console_direct+ 表示直接在控制台输出构建事件的详细信息。这样可以更清楚地看到构建过程中的每一步和可能的错误信息。
--cmake-args -DCMAKE_BUILD_TYPE=Release:这个选项传递了额外的 CMake 参数。在这种情况下,-DCMAKE_BUILD_TYPE=Release 设置了 CMake 的构建类型为Release。这意味着构建将进行优化,适合发布版本,而不是调试版本。

1.3.3 编译文件检查

编译后会生成build,install,log。
1.build:

这个目录包含了编译过程中生成的中间文件和目标文件。包括对象文件(.o)、依赖文件等。 该目录在每次编译时都会被更新。

2.install:

这个目录包含了安装后的文件。包括可执行文件、库文件、头文件和其他资源文件。 该目录用于运行时使用,包含了所有需要的文件和依赖项。

3.log:

这个目录包含了编译和运行时生成的日志文件。包括编译日志、运行时日志和错误日志等。 这些日志文件对于调试和诊断问题非常有用。

1.4 参数配置

1.4.1 单相机

camport3_ros2/install/percipio_camera/share/percipio_camera/launch/percipio_camera.launch.py:

用于配置相机启动时加载的默认参数。如:指定相机的SN或IP、组件配置(配置color和depth的分辨率、ToF相关参数等)。
注意:当前连接相机的方式有两种:相机SN、相机IP


1.4.2 多相机

camport3_ros2/install/percipio_camera/share/percipio_camera/launch/multi_cam.launch.py

1.用于配置相机启动时加载的默认参数。如:指定相机的SN或IP、组件配置(配置color和depth的分辨率、ToF相关参数等)。

2.如果要添加第三台及以上,需要在下图红框处添加相关的代码,可以仿照第一、二台填写。

1.5 打开相机

第一步:修改

camport3_ros2/install/percipio_camera/share/percipio_camera/launch/ percipio_camera.launch.py 文件后,发布 ros2 launch percipio_camera

percipio_camera.launch.py

第二步:观察出图效果

1.5.1 方法一配置camera_ros.py

方法一:重新开一个终端,将camera_ros2.py复制到camport3_ros2目录下,并打开camera_ros2.py,进行编辑。修改下图内容中的红框为 launch中camera name参数的值。



执行命令:python3 ./camera_ros2.py ,下图为该程序的用法。

1.5.2 方法二使用RVIZ

方法二:重新开一个终端,运行Rviz(Robot Visualization),执行命令:

cpp 复制代码
ros2 run rviz2 rviz2

1.打开RVIZ界面

2.配置深度图

3.打开深度图/彩色图/红外图

4.配置点云图并打开点云图

1.6 测试Camport ROS2 SDK

1.6.1 参数测试

支持配置的参数如下所示:

1.6.2 相机测试

通过下表所列出的相机测试不同组件下的属性是否可以进行设置值,比如,Color组件下彩色相机的分辨率和格式;Depth组件下相机的分辨率和格式、ToF特有属性参数;IR组件下的相机的分辨率和格式等。

1.6.3 Storage 参数加载测试

ROS2 SDK支持打开相机后加载相机Storage配置参数,参数均可通过Percipio-viewer进行配置。测试方法如下:

1.确认相机的fetch_config.xml中有storage 组件。

2.使用Percipio-Viewer软件(支持保存相机参数的版本),打开相机,修改各个组件下Controls下的参数,然后保存参数到Storage。

3.使用ROS2打开相机,观察出图情况。

相关推荐
fruge2 小时前
ubuntu 22.04 编译安装nignx 报错 openssl 问题
数据库·ubuntu·postgresql
黑风风11 小时前
Ubuntu 22.04 上安装 PostgreSQL(使用官方 APT 源)
linux·ubuntu·postgresql
行星00811 小时前
Ubuntu 中安装 PostgreSQL 及常规操作指南
linux·ubuntu·postgresql
奋斗者1号11 小时前
提升WSL中Ubuntu编译速度的完整指南
linux·运维·ubuntu
郭老二11 小时前
【经验】Ubuntu中设置terminator的滚动行数、从Virtualbox复制到Windows时每行后多一空行
ubuntu
玄德公笔记12 小时前
ubuntu 22.04安装k8s高可用集群
linux·ubuntu·kubernetes·k8s·containerd·高可用集群·ubuntu 22.04
ZHOU_WUYI12 小时前
在 Ubuntu 上安装 NVM (Node Version Manager) 的步骤
linux·运维·ubuntu
简诚12 小时前
ubuntu 安装上传的 ffmpeg_7.1.1.orig.tar.xz并使用
linux·ubuntu·ffmpeg
EtherWanderer15 小时前
Ubuntu 24.04 LTS Chrome 中文输入法(搜狗等)失效?一行命令解决
linux·chrome·ubuntu
冰橙子id20 小时前
基于ubuntu安装hadoop
大数据·hadoop·ubuntu