从源码构建
从源码构建
安装依赖项
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版本说明
如果您在 Humble 或 Jazzy 上构建,ROS v3 包会使用
_v3 后缀(例如 depthai_ros_driver_v3)。从 Kilted 开始,v3 是默认版本,并且包名称不带后缀。rosdep 并且尚未初始化,请执行以下步骤:Command Line
1sudo apt install python3-rosdep
2sudo rosdep init
3rosdep update设置过程
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# 检出与目标 ROS 发行版匹配的发布分支
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如果您使用的是低端 PC 或 RPi,标准构建可能会占用大量内存并导致 PC 卡顿。为避免这种情况,您可以使用工作区中的
build.sh 命令(它只是包装了 colcon 命令):Command Line
1./src/depthai-ros/build.shDocker
Docker
构建
Command Line
1docker build --build-arg USE_RVIZ=1 -t depthai-ros .BUILD_SEQUENTIAL=1 以一次构建一个包,这会花费更长的时间,但会使用更少的内存。RUN_RVIZ 参数意味着 rviz 将安装在 docker 内部。如果您想运行它,您还需要执行以下命令(在重新启动 PC 后需要再次执行):Command Line
1xhost +local:dockerCommand Line
1docker run -it -v /dev/:/dev/ --privileged -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix depthai-rosCommand 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/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 depthai-ros ros2 launch depthai_ros_driver driver.launch.py params_file:=/params/example_config.yaml- 在 bash/zsh 模式下运行容器进行安装
- 修改 Dockerfile,以便在构建过程中安装它 - 之后您需要重新构建容器。
- 在我们的容器中运行基础相机节点,并在主机/单独的容器中单独运行 RTABMap(请参阅启动文件以了解运行单独节点时需要更改的参数/主题名称)。