Repository Summary
Description | Arena Camera driver for ROS2 |
Checkout URI | https://github.com/lucidvisionlabs/arena_camera_ros2.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2023-12-19 |
Dev Status | UNKNOWN |
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 |
---|---|
arena_camera_node | 0.0.1 |
README
Report an issue
Please reach out to the support team https://support.thinklucid.com/contact-support/ Or email to support@thinklucid.com
arena_camera_ros2
Arena Camera deriver for ROS2
Note
- Please provide your feedback is welcomed at support@thinklucid.com or the repo issue page
Requirements
- 1
- OS : Linux (x64/amd64/arm64) (==22.04)
- ROS2 : Humble Hawksbill distro (installation steps in ros2_arena_setup.sh)
- ArenaSDK and arena_api : https://thinklucid.com/downloads-hub/
- or 2 Docker
- ArenaSDK and arena_api : https://thinklucid.com/downloads-hub/
- build the docker image provided
Getting Started
-
clone repo or download release
git clone https://github.com/lucidvisionlabs/arena_camera_ros2.git
- install ArenaSDK and arena_api
- https://thinklucid.com/downloads-hub/
-
install ROS2 and setup the environment
cat arena_camera_ros2/ros2_arena_setup.sh
to view the scriptcd arena_camera_ros2 ; sudo sh ros2_arena_setup.sh
installs ROS2 Humble Hawksbill distro -
build workspace and its dependencies
source /opt/ros/humble/setup.bash
if using a regular terminalcd arena_camera_ros2/ros2_ws
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro humble -r -y
colcon build --symlink-install # build workspace for dev
-
install the build
. install/setup.bash
Explore
- explore nodes
- arena_camera_node
- this is the main node. It represent one LUCID Camera.
- it has two executable
start
andtrigger_image
- ros arguments
- serial
- a string representing the serial of the device to create.
- if not provided the node, it will represent the first dicovered camera.
- topic
- the topic the camera publish images on.
- default value is /arena_camera_node/images.
- if passed as a ros argument, it should be preceded with “/”
- width
- the width of desired image
- default value is the one in
default
user profile.
- height
- the height of desired image
- default value is the one in
default
user profile.
- pixelformat
- the pixel format of the deisred image
- supported pixelformats are “rgb8”, “rgba8”, “rgb16”, “rgba16”, “bgr8”, “bgra8”, “bgr16”, “bgra16”, “mono8”, “mono16”, “bayer_rggb8”, “bayer_bggr8”, “bayer_gbrg8”, “bayer_grbg8”, “bayer_rggb16”, “bayer_bggr16”, “bayer_gbrg16”, “bayer_grbg16”, “yuv422”
- gain
- a double value represents the gain of the image.
- exposure_time
- the time elapsed before the camera sensor creates the image.
- units is micro seconds.
- big values might makes the image take too long before it is view/published.
- if trigger_mode is passed to node them it is recommended to set exposure_time as well so the triggered images do not take longer than expected.
- trigger_mode
- puts the device in ready state where it will wait for a
trigger_image
client to request an image. - default value is false. It means the device will be publishing images to the
default topic
/arena_camera_node/images
. - values are true and false.
-
when
false
, images can be viewedros2 run arena_camera_node start --ros-args -p qos_reliability:=reliable -p topic:=image
ros2 run image_tools showimage
-
when
true
, image would not be published unless requested/triggeredros2 run arena_camera_node start --ros-args -p qos_reliability:=reliable -p topic:=image -p exposure_time:=<proper value> -p trigger_mode:=true
ros2 run image_tools showimage # no image will be displayed yet
ros2 run arena_camera_node trigger_image
- puts the device in ready state where it will wait for a
- serial
- QoS related parameters
- if using these images with some subscriber make sure:
- both
arena_camera_node
and the subscriber on the same topic. - both have the same
QoS
settings else the images will be published but the subscriber would not see them because the image mags have a differentQoS
than the subscriber. -
QoS
parameter - qos_history
- represents the history value of
QoS
for the image publisher. - default value is
keep_last
. - supported values are “system_default”,”keep_last”, “keep_all”, “unknown”.
- more about
QoS
: https://index.ros.org/doc/ros2/Concepts/About-Quality-of-Service-Settings/
- represents the history value of
- qos_history_depth
- represents the depth value of
QoS
for the image publisher. - default value is
5
. - more about
QoS
: https://index.ros.org/doc/ros2/Concepts/About-Quality-of-Service-Settings/
- represents the depth value of
- qos_reliability
- represents the reliability value of
QoS
for the image publisher. - default value is
best_effort
- supported values are “system_default”, “reliable”, “best_effort”, “unknown”.
- more about
QoS
: https://index.ros.org/doc/ros2/Concepts/About-Quality-of-Service-Settings/
- represents the reliability value of
- both
simple example for using arguments together
ros2 run arena_camera_node start --ros-args -p serial:="904240001" -p topic:=/special_images -p width:=100 -p height:=200 -p pixelformat:=rgb8 -p gain:=10 -p exposure_time:=150 -p trigger_mode:=true
- if using these images with some subscriber make sure:
- arena_camera_node
-
explore excutables
-
ros2 pkg executables | grep arena
-
all excutables can be run by using
ros2 run <pakg name> <executable name>
-
-
explore actions
- None
- explore services
- trigger_image
- trigger image form a device that is running in trigger_mode.
- To run a device in trigger mode
ros2 run arena_camera_node start --ros-args -p exposure_time:=<proper value> -p trigger_mode=true
- To trigger an image run
ros2 run arena_camera_node trigger_image
- trigger_image
Road map
- support windows
- add -h flag to nodes
- showimage node to view 2D and 3D images
- launch file
- camera_info
- access to nodemaps
- settings dump/read to/from file
- support two devices