DepthAI v2 has been superseded by DepthAI v3. You are viewing legacy documentation.

本页目录

  • 安装依赖项
  • 设置步骤
  • 构建
  • 在 ROS1 上运行 Docker 镜像
  • 在 ROS2 上运行 Docker 镜像

从源码安装

安装依赖项

以下脚本将安装 depthai-core、更新 USB 规则并安装 depthai 设备。
Command Line
1sudo wget -qO- https://raw.githubusercontent.com/luxonis/depthai-ros/main/install_dependencies.sh | sudo bash
如果你没有安装 opencv,请尝试 sudo apt install libopencv-dev如果你没有安装 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 工作空间。
  1. mkdir -p dai_ws/src
  2. cd dai_ws/src
  3. git clone --branch <ros-distro> https://github.com/luxonis/depthai-ros.git
  4. cd ..
  5. rosdep install --from-paths src --ignore-src -r -y
  6. source /opt/ros/<ros-distro>/setup.bash
  7. catkin_make_isolated (对于 ROS1) MAKEFLAGS="-j1 -l1" colcon build (对于 ROS2)
  8. source devel/setup.bash (对于 ROS1) & source install/setup.bash (对于 ROS2)
注意 如果你使用的是低端 PC 或树莓派,标准构建可能会占用大量内存并导致电脑卡顿。为避免这种情况,你可以从工作空间使用 build.sh 命令(它只是封装了 colcon 命令): ./src/depthai-ros/build.sh

Docker

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

运行预构建镜像

每个标记版本都有其预构建的 Docker 镜像。要下载并运行它:
Command Line
1xhost +local:docker
以启用 GUI 工具,如 rviz 或 rqt。然后
Command Line
1docker run -it -v /dev/:/dev/  --privileged -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix luxonis/depthai-ros:noetic-latest [CMD]
其中 [CMD] 是容器初始运行时将执行的命令,例如:
  • bash(允许你浏览文件、修改代码并重新构建)
  • zsh(已安装的另一种 shell,相比 bash 有一些优势)
  • roslaunch depthai_ros_driver camera.launch(这只是一个示例,任何启动文件都可以在此使用) 附带说明,depthai_ros_driver 中的启动文件通过驱动程序内部的 .yaml 文件设置了一些默认参数。你可以在容器内部编辑这些参数,也可以在宿主机上创建一个 .yaml 文件(例如 /home/YOUR_USERNAME_HERE/params/example_config.yaml),然后将其作为参数传递给可执行文件,如下所示:
Command Line
1docker run -it -v /dev/:/dev/ -v /home/YOUR_USERNAME_HERE/params:/params --network host --privileged -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix luxonis/depthai-ros:noetic-latest roslaunch depthai_ros_driver camera.launch params_file:=/params/example_config.yaml
注意,为了使镜像更紧凑,只安装了一些外部依赖项。例如,如果你想在 Docker 中尝试 RTABMap 示例,则必须:
  • 通过以 bash/zsh 模式运行容器来安装它
  • 修改 Dockerfile,使其在构建过程中安装——之后你需要重新构建容器。
  • 在我们的容器中运行基础相机节点,并在宿主机上或单独的容器中分别运行 RTABMap(请参阅启动文件,了解在分别运行时需要更改哪些参数/主题名称)。

构建

克隆仓库并在其中运行(注意你所在的分支):
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 roslaunch depthai_examples stereo_inertial_node.launch.py
以运行你选择的启动文件。注意 ROS2 Humble Docker 镜像使用 Cyclone 作为 RMW 实现。

在 ROS1 上运行 Docker 镜像

Command Line
1docker run -it -v /dev/:/dev/ --privileged -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix depthai-ros roslaunch depthai_examples stereo_inertial_node.launch
将仅启动 stereo_inertial_node 启动文件(你可以尝试不同的命令)。

在 ROS2 上运行 Docker 镜像

Command Line
1docker run -it -v /dev/:/dev/ --privileged -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix depthai-ros ros2 launch depthai_examples stereo_inertial_node.launch.py