Build from Source
Install dependencies
The following script will install depthai-core and update usb rules and install depthai devicesCommand Line
1sudo wget -qO- https://raw.githubusercontent.com/luxonis/depthai-ros/main/install_dependencies.sh | sudo bash
sudo apt install libopencv-dev
if you don't have rosdep
installed and not initialized please execute the following steps:Command Line
1sudo apt install python3-rosdep
2sudo rosdep init
3rosdep update
Setting up procedure
The following setup procedure assumes you have cmake version >= 3.10.2 and OpenCV version >= 4.0.0. We selecteddai_ws
as the name for a new folder, as it will be our depthai ros workspace.mkdir -p dai_ws/src
cd dai_ws/src
git clone --branch kilted https://github.com/luxonis/depthai-ros.git
cd ..
rosdep install --from-paths src --ignore-src -r -y
source /opt/ros/<ros-distro>/setup.bash
MAKEFLAGS="-j1 -l1" colcon build
source install/setup.bash
If you are using a lower end PC or RPi, standard building may take a lot of RAM and clog your PC. To avoid that, you can use
build.sh
command from your workspace (it just wraps colcon commands):Command Line
1./src/depthai-ros/build.sh
Docker
You can additionally build and run docker images on your local machine. To do that, add USB rules as in above step.Building
Clone the repository and inside it run (it matters on which branch you are on):Command Line
1docker build --build-arg USE_RVIZ=1 -t depthai-ros .
BUILD_SEQUENTIAL=1
to build packages one at a time, it should take longer, but use less RAM.RUN_RVIZ
arg means rviz will be installed inside docker. If you want to run it you need to also execute following command (you'll have to do it again after restarting your PC):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
Command Line
1docker run -it -v /dev/:/dev/ --privileged -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix luxonis/depthai-ros [CMD]
- bash (it will allow you to browse files and make modifications to the code and rebuild it)
- zsh (other shell that is installed that has some advantages over bash)
- roslaunch depthai_ros_driver camera.launch (this is just an example, any launch file will work here) A side note here, launch files in depthai_ros_driver have some default parameters set by .yaml files inside the driver. You can either edit them inside the container itself, or you can make a .yaml file on your host (let's say
/home/YOUR_USERNAME_HERE/params/example_config.yaml
) and pass it as an argument to the executable, as follows:
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 ros2 launch depthai_ros_driver driver.launch.py params_file:=/params/example_config.yaml
- Install it by running the container in bash/zsh mode
- Modify the Dockerfile so that it's installed during building - you'll have to rebuild the container after that.
- Run base camera node in our container and RTABMap separately on host/ in a separate container (see the launch file on what parameters/topic names need to be changed when running separately).