-
 

zed-ros2-interfaces repository

Repository Summary

Checkout URI https://github.com/stereolabs/zed-ros2-interfaces.git
VCS Type git
VCS Version humble
Last Updated 2024-11-12
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
zed_msgs 4.2.1

README

Stereolabs<br \> ROS 2 Interfaces

The zed-ros2-interfaces repository install the zed_msgs ROS2 package which defines the custom topics, services and actions used by the ZED ROS2 Wrapper to interface with ROS2.

If you already installed the ZED ROS2 Wrapper or you plan to install it on this machine, this package is not required because it is automatically integrated by zed-ros2-wrapper as a git submodule to satisfy all the required dependencies.

You must instead install this package on a remote system that must retrieve the topics sent by the ZED Wrapper (e.g. the list of detected objects obtained with the Object Detection module) or call services and actions to control the status of the ZED Wrapper.

Note: this package does not require CUDA, hence it can be used to receive the ZED data also on machines not equipped with an Nvidia GPU.

Prerequisites

Build the repository

The zed_msgs is a colcon package. It depends on the following ROS packages:

  • ament_cmake
  • builtin_interfaces
  • std_msgs
  • geometry_msgs
  • rosidl_default_generators
  • rosidl_default_runtime
  • rosidl_interface_packages

Open a terminal, clone the repository, update the dependencies and build the packages:

cd ~/catkin_ws/src
git clone https://github.com/stereolabs/zed-ros2-interfaces.git
cd ../
sudo apt update
rosdep update
rosdep install --from-paths src --ignore-src -r -y
colcon build --symlink-install --cmake-args=-DCMAKE_BUILD_TYPE=Release
echo source $(pwd)/install/local_setup.bash >> ~/.bashrc
source ~/.bashrc

Note: If rosdep is missing you can install it with:

$ sudo apt-get install python-rosdep python-rosinstall-generator python-vcstool python-rosinstall build-essential

‘Note’: The option --symlink-install is important, it allows using symlinks instead of copying files to the ROS2 folders during the installation, where possible. Each package in ROS2 must be installed and all the files used by the nodes must be copied into the installation folders. Using symlinks allows you to modify them in your workspace, reflecting the modification during the next executions without the needing to issue a new colcon build command. This is true only for all the files that don’t need to be compiled (Python scripts, configurations, etc.).

Note: If you are using a different console interface like zsh, you have to change the source command as follows: echo source $(pwd)/install/local_setup.zsh >> ~/.zshrc and source ~/.zshrc.

Custom Topics

  • BoundingBox2Df
  • BoundingBox2Di
  • BoundingBox3D
  • Keypoint2Df
  • Keypoint2Di
  • Keypoint3D
  • Object
  • ObjectsStamped
  • Skeleton2D
  • Skeleton3D

You can get more information by reading the Stereolabs online documentation

Custom Services

  • SetPose
  • StartSvoRec

You can get more information by reading the Stereolabs online documentation

CONTRIBUTING

Submitting your code changes

Code contributions should be made via pull requests to the appropriate repositories:

We ask all contributors to follow the practices explained in ROS2 documentation.

Before submitting a pull request please perform this list of tasks from the root of your ROS2 workspace:

  1. Automatic code formatting:

    $ ament_uncrustify --reformat src

  2. Build the packages to check for compile errors:

    $ colcon build --symlink-install --cmake-args=-DCMAKE_BUILD_TYPE=Release

  3. Perform the automatic build tests:

    $ colcon test

  4. Analyze and solve eventually reported errors:

    $ colcon test-result --verbose

  5. Repeat steps (1) -> (4) until all reported formatting errors have been resolved.

License

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:

5. Submission of Contributions. Unless You explicitly state otherwise,
   any Contribution intentionally submitted for inclusion in the Work
   by You to the Licensor shall be under the terms and conditions of
   this License, without any additional terms or conditions.
   Notwithstanding the above, nothing herein shall supersede or modify
   the terms of any separate license agreement you may have executed
   with Licensor regarding such Contributions.

Contributors must sign-off each commit by adding a Signed-off-by: ... line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the Developer Certificate of Origin (DCO).