zivid / zivid-ros

Official ROS driver for Zivid 3D cameras
BSD 3-Clause "New" or "Revised" License
62 stars 46 forks source link

Using std_srvs instead of custom ones #105

Closed belalhmedan90 closed 4 months ago

belalhmedan90 commented 4 months ago

Hi, I want to use your ROS wrapper to avoid using the SDK directly and use ROS instead, since your camera type is triggered one and not continous stream, I have to trigger two services:

  1. To set/find/load the configurations.
  2. To capture the image

However you are defining custom services, hence I should add dependency to your ROS driver!

  1. Can you please change the Empty services (e.g Capture, Capture2D ) to the standard std_srvs/Empty
  2. Is there any possibility to provide a standard service similar to CaptureAssistantSuggestSettings with default parameters so we avoid using custom services? thanks.
apartridge commented 4 months ago

HI @belalhmedan90 . Are you using ROS1 or ROS2? In our ROS2 preview we are using std_srvs for the services that don't have any parameters, see https://github.com/zivid/zivid-ros/tree/ros2-preview.

belalhmedan90 commented 4 months ago

HI @belalhmedan90 . Are you using ROS1 or ROS2? In our ROS2 preview we are using std_srvs for the services that don't have any parameters, see https://github.com/zivid/zivid-ros/tree/ros2-preview.

Thanks for your rapid reply, Actually it is for ROS1

belalhmedan90 commented 4 months ago

@apartridge Moreover I saw the ROS2 preview with cool interfaces package, and I suggest that the service IsConnected becomes a standard Trigger service if possible

Also I didn't find the service to load the 2D, 3D YML configurations from a file.

apartridge commented 4 months ago

Hi @belalhmedan90. In the ROS2 driver preview there are parameter values you can set to the .yml files for 2D and 3D captures. Since we support .yml files via parameters, we decided to not have a separate service for loading a .yml file.

As for IsConnected, to me it sounds like using Trigger is a bit misleading since that service is not triggering anything, just checking the current state of the driver? Also be aware that in the ROS2 driver we moved the srv files to a separate package, which makes it easier to depend on that package and not the entire zivid_camera package.