官网编译文档链接:
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打开相机,观察出图情况。