![]() |
vimbax_ros2_driver repositoryvimbax_camera vimbax_camera_events vimbax_camera_examples vimbax_camera_msgs vmbc_interface |
|
Repository Summary
Checkout URI | https://github.com/alliedvision/vimbax_ros2_driver.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2024-05-27 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
vimbax_camera | 1.0.2 |
vimbax_camera_events | 1.0.2 |
vimbax_camera_examples | 1.0.2 |
vimbax_camera_msgs | 1.0.2 |
vmbc_interface | 1.0.2 |
README
Vimba X ROS 2 camera driver
Compability
- ROS 2 humble
- Nvidia Jetpack 5.x (arm64)
- Ubuntu 22.04 (x86_64)
- Allied Vision Alvium cameras
- Tested ROS 2 RMW implementation: rmw_cyclone_dds
Prerequisites
- ROS 2 humble is installed on the system as defined by the ROS 2 installation instructions
- For NVIDIA Jetson boards please follow the NVIDIA ISAAC ROS installation guide
- For running the system tests make sure the package “ros-humble-launch-pytests” is installed on your system.
- Vimba X 2023-4 or later
- For CSI cameras make sure to install the drivers available on github
Installation
Download the debian package from the release page and install it using the following command:
sudo apt install ros-humble-rmw-cyclonedds-cpp
sudo apt install ./ros-humble-vimbax-camera-driver.deb
Getting started
Setup the ROS 2 environment:
source /opt/ros/humble/setup.bash
Change the the ROS 2 middleware to cyclonedds, because the default middleware is causing some issues. See known issuse for more details.:
source /opt/ros/humble/setup.bash
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
To get maximum performance please also apply the settings described in DDS Tuning. Especially the settings for the Cyclone DDS section are important, because otherwise you might loose frames.
To start the Vimba X ROS 2 node run:
ros2 run vimbax_camera vimbax_camera_node
By default the Vimba X ROS 2 node will open the first available camera. If you want to open a specific camera, you can use camera_id parameter by adding --ros-args -p camera_id:=<camera to open>
. The camera_id can be the device id, extended device id, serial number, ip address or mac address. The
node will always open the camera in exclusive access mode. If no camera is available or the specified camera was opened by another application, the node startup fails and an error message is printed.
The node will publish all topics and service under the namespace vimbax_camera_<pid>
, where pid
is the process id of the camera node process.
An example can be started by running:
ros2 run vimbax_camera_examples <example name> vimbax_camera_<pid>
The Vimba X ROS2 node must have been started before.
The following examples are available:
- asynchronous_grab: Stream images from the camera node and print image info to console.
- asynchronous_grab_performance: High performance streaming example.
- asynchronous_grab_opencv: Stream images from the camera node and display them using opencv imshow.
- event_viewer: Show GenICam events on the console.
- feature_command_execute: How to run a command feature.
- feature_get: How to get a feature value.
- feature_info_get: How to get the type specific feature information.
- feature_set: Change the value of a feature.
- list_features: How to list all available features.
- settings_load_save: Load or save the camera settings to an xml file.
- status_get: How to use the status service to get the current camera status.
- camera_connected: Reads if the camera is currently connected or not.
- connection_observer: Periodically calls the connected service and prints a message if the connections status has changed.
Build Instructions
- Setup the ROS2 environment
source /opt/ros/humble/setup.bash
- Initialize and update rosdep if not already done
rosdep init
rosdep update
sudo apt-get update
- Create a workspace
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
- Clone this repository into the workspace
git clone ...
- Install dependencies
cd ~/ros2_ws/
rosdep install --from-path src --ignore-src
- Run the build
```bash
File truncated at 100 lines see the full file