本页目录

  • 安装依赖
  • 设置流程
  • 构建

从源码构建

安装依赖

本教程假设你的系统已安装 ROS2 HumbleJazzyKilted 或更新的版本。请先按照官方 ROS 安装说明安装对应的发行版。
Command Line
1apt-get update \
2   && apt-get -y install --no-install-recommends software-properties-common git libusb-1.0-0-dev wget zsh python3-colcon-common-extensions zip unzip tar
如果你尚未安装 rosdep 且未初始化,请执行以下步骤:
Command Line
1sudo apt install python3-rosdep
2sudo rosdep init
3rosdep update

设置流程

以下设置流程假设你已安装 cmake 版本 >= 3.10.2 和 OpenCV 版本 >= 4.0.0。我们选择 dai_ws 作为新文件夹的名称,它将作为我们的 depthai ros 工作空间。
Command Line
1mkdir -p dai_ws/src
2cd dai_ws/src
3git clone https://github.com/luxonis/depthai-core.git
4cd depthai-core && git submodule update --init --recursive && cd ..
5git clone https://github.com/luxonis/depthai-ros.git
6
7# checkout the release branch matching your target ROS distro
8# Humble: depthai-core -> v3-humble, depthai-ros -> v3-humble
9# Jazzy:  depthai-core -> v3-jazzy,  depthai-ros -> v3-jazzy
10# Kilted: depthai-core -> main,      depthai-ros -> kilted
11
12cd ..
13rosdep install --from-paths src --ignore-src -r -y
14source /opt/ros/$ROS_DISTRO/setup.bash
15MAKEFLAGS="-j1 -l1" colcon build
16source install/setup.bash

Docker

你还可以在本地机器上构建并运行 Docker 镜像。为此,请按照上述步骤添加 USB 规则

构建

克隆仓库并在其中运行(这取决于你当前所在的分支):
Command Line
1docker build --build-arg USE_RVIZ=1 -t depthai-ros .
如果你发现构建过程中内存不足,还可以设置 BUILD_SEQUENTIAL=1 以逐个构建软件包,这样耗时更长,但内存占用更少。RUN_RVIZ 参数表示 rviz 将被安装在 Docker 内部。如果你希望运行它,还需要执行以下命令(重启电脑后需要再次执行):
Command Line
1xhost +local:docker
然后你可以通过以下方式运行镜像:
Command Line
1docker run -it -v /dev/:/dev/ --privileged -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix depthai-ros
这将启动一个交互式 Docker 会话。你也可以尝试:
Command Line
1docker run -it -v /dev/:/dev/  --privileged -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix depthai-ros [CMD]
其中 [CMD] 是容器初始运行时将要执行的命令,例如:
  • bash(允许你浏览文件、修改代码并重新构建)
  • zsh(已安装的另一个 shell,相比 bash 有一些优势)
  • roslaunch depthai_ros_driver camera.launch(这只是一个示例,任何启动文件都可以正常工作) 这里附带说明一下,depthai_ros_driver 中的启动文件有一些通过驱动内 .yaml 文件设置的默认参数。你可以在容器内直接编辑这些文件,也可以在宿主机上创建一个 .yaml 文件(假设为 /home/你的用户名/params/example_config.yaml),并将其作为参数传递给可执行文件,如下所示:
Command Line
1docker run -it -v /dev/:/dev/ -v /home/你的用户名/params:/params --network host --privileged -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix depthai-ros ros2 launch depthai_ros_driver driver.launch.py params_file:=/params/example_config.yaml
请注意,为了使镜像更紧凑,只安装了部分外部依赖。例如,如果你想在 Docker 中试用 RTABMap 示例,你需要:
  • 以 bash/zsh 模式运行容器,安装它
  • 修改 Dockerfile,使其在构建过程中安装 – 之后你需要重新构建容器
  • 在我们的容器中运行基础相机节点,并在宿主机/另一个容器中单独运行 RTABMap(参见启动文件中关于单独运行时需要更改的参数/主题名称的说明)。