Hub 集成
版本警告
本文档面向 RVC4 设备和 ROS2 Kilted 及以上版本。从 Kilted 开始,默认 ROS 驱动为 v3,包名无后缀(例如
depthai_ros_driver)。在 Humble 和 Jazzy 上,等效的 ROS v3 包使用 _v3 后缀(例如 depthai_ros_driver_v3)。同时假设您已经按照我们的 入门指南 设置好了 RVC4 摄像头。快速开始 - 基本应用安装
为 RVC4 开发 ROS 应用
修改基本示例
ros-driver-basic 目录中找到它。我们最感兴趣的是 oakapp.toml 和 parameters.yaml 文件。在 parameters.yaml 中,我们可以按照 参数说明文章 中描述的方式设置驱动的参数。Yaml
1/**:
2 ros__parameters:
3 driver:
4 i_enable_ir: true
5 pipeline_gen:
6 i_pipeline_type: RGBDoakapp.toml 描述了应用运行的环境。它使用一个基础 ROS Kilted 镜像,其中已安装 depthai-ros 包,并将参数文件复制到该镜像中。设置完成后,驱动被启动,参数文件被传递给它。Toml
1identifier = "example.apps.ros.ros-driver-basic"
2app_version = "0.9.0"
3
4prepare_container = [
5 { type = "COPY", source = "resolv.conf", target = "/etc/resolv.conf" },
6 { type = "RUN", command = "apt-get update" },
7 { type = "RUN", command = "apt-get install -y ros-kilted-depthai-ros"},
8]
9
10prepare_build_container = [
11
12]
13
14build_steps = [
15]
16
17entrypoint = ["bash", "-c", "source /opt/ros/kilted/setup.bash && ros2 launch depthai_ros_driver driver.launch.py params_file:=/app/parameters.yaml"]
18
19[base_image]
20api_url = "https://registry-1.docker.io"
21service = "registry.docker.io"
22oauth_url = "https://auth.docker.io/token"
23auth_type = "repository"
24auth_name = "library/ros"
25image_name = "library/ros"
26image_tag = "kilted-ros-base"ros-driver-rgb-pcl 和 ros-driver-spatial-bb 示例遵循类似的逻辑,它们使用不同的启动文件和参数。Toml
1identifier = "example.apps.ros.driver-rgb-pcl"
2app_version = "0.9.0"
3
4prepare_container = [
5 { type = "COPY", source = "resolv.conf", target = "/etc/resolv.conf" },
6 { type = "RUN", command = "apt-get update" },
7 { type = "RUN", command = "apt-get install -y ros-kilted-depthai-ros"},
8]
9
10prepare_build_container = [
11
12]
13
14build_steps = [
15]
16
17entrypoint = ["bash", "-c", "source /opt/ros/kilted/setup.bash && ros2 launch depthai_ros_driver rgbd_pcl.launch.py"]
18
19[base_image]
20api_url = "https://registry-1.docker.io"
21service = "registry.docker.io"
22oauth_url = "https://auth.docker.io/token"
23auth_type = "repository"
24auth_name = "library/ros"
25image_name = "library/ros"
26image_tag = "kilted-ros-base"Toml
1identifier = "example.apps.ros.driver-spatial-bb"
2app_version = "0.9.0"
3
4prepare_container = [
5 { type = "COPY", source = "resolv.conf", target = "/etc/resolv.conf" },
6 { type = "RUN", command = "apt-get update" },
7 { type = "RUN", command = "apt-get install -y ros-kilted-depthai-ros"},
8]
9
10prepare_build_container = [
11
12]
13
14build_steps = [
15]
16
17entrypoint = ["bash", "-c", "source /opt/ros/kilted/setup.bash && ros2 launch depthai_filters spatial_bb.launch.py"]
18
19[base_image]
20api_url = "https://registry-1.docker.io"
21service = "registry.docker.io"
22oauth_url = "https://auth.docker.io/token"
23auth_type = "repository"
24auth_name = "library/ros"
25image_name = "library/ros"
26image_tag = "kilted-ros-base"自定义工作空间和管道
ros-driver-custom-workspace 中。我们可以看到如何开发直接在设备上运行的完整 ROS 应用。与之前的示例一样,我们有 oakapp.toml 和 parameters.yaml 文件。此外,还有一个 src 目录,对应于经典 ROS 工作空间中 src 目录的设置方式。其中有两个包:example_package 基于 ROS 发布者教程,包含用于此演示的自定义启动文件。我们还可以看到 dai_ros_plugins 包,展示了如何创建自定义插件管道,然后可以直接在驱动中加载。管道插件类型在传递给自定义启动文件的 parameters.yaml 文件中指定。在 oakapp.toml 文件中,我们可以看到自定义工作空间是如何(直接在设备上!)构建和加载的。Toml
1identifier = "example.apps.ros.driver-custom-workspace"
2app_version = "0.9.0"
3
4prepare_container = [
5 { type = "COPY", source = "resolv.conf", target = "/etc/resolv.conf" },
6 { type = "RUN", command = "apt-get update -qq" },
7 { type = "RUN", command = "apt install -y ros2-testing-apt-source"},
8 { type = "RUN", command = "apt-get update -qq" },
9 { type = "RUN", command = "apt-get install -qy ros-kilted-depthai-ros python3-colcon-common-extensions"},
10]
11
12prepare_build_container = [
13
14]
15
16build_steps = [
17 "mkdir -p /ws/src",
18 "cp -r /app/src/ /ws/",
19 'bash -c "cd /ws && source /opt/ros/kilted/setup.bash && colcon build"'
20]
21
22entrypoint = ["bash", "-c", "source /ws/install/setup.bash && ros2 launch example_package example.launch.py"]
23
24[base_image]
25api_url = "https://registry-1.docker.io"
26service = "registry.docker.io"
27oauth_url = "https://auth.docker.io/token"
28auth_type = "repository"
29auth_name = "library/ros"
30image_name = "library/ros"
31image_tag = "kilted-ros-base"