欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > 图漾相机-ROS2-SDK-Ubuntu版本编译(新版本)

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

2025/1/30 14:08:50 来源:https://blog.csdn.net/qq_38960753/article/details/145379749  浏览:    关键词:图漾相机-ROS2-SDK-Ubuntu版本编译(新版本)

文章目录

  • 前言
  • 1.Camport ROS2 SDK 介绍
    • 1.1 Camport ROS2 SDK源文件介绍
    • 1.2 Camport ROS2 SDK工作流程
      • 1.2.1 包含头文件
      • 1.2.2 2 初始化 ROS 2 节点
      • 1.2.3 创建节点对象
      • 1.2.4 创建发布者对象并实现发布逻辑
      • 1.2.5 启动 ROS 2
    • 1.3 ROS2 SDK环境配置与编译
      • 1.3.1 Ubuntu 20.04 下ROS2 Foxy环境配置与编译
      • 1.3.2 Ubuntu 22.04 下ROS2 Humble环境配置与编译
      • 1.3.3 编译文件检查
    • 1.4 参数配置
      • 1.4.1 单相机
      • 1.4.2 多相机
    • 1.5 打开相机
      • 1.5.1 方法一配置camera_ros.py
      • 1.5.2 方法二使用RVIZ
    • 1.6 测试Camport ROS2 SDK
      • 1.6.1 参数测试
      • 1.6.2 相机测试
      • 1.6.3 Storage 参数加载测试

前言

官网编译文档链接:
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环境配置与编译

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

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源的公钥

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

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

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

source /opt/ros/foxy/setup.bash
echo " source /opt/ros/foxy/setup.bash" >> ~/.bashrc

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

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环境配置与编译

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

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源的公钥

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

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

第四步:设置环境变量

source /opt/ros/ humble /setup.bash
echo " source /opt/ros/ humble /setup.bash" >> ~/.bashrc

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

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),执行命令:

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打开相机,观察出图情况。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com