-
Notifications
You must be signed in to change notification settings - Fork 228
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create README.md from Wiki content #342
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
## `polled_camera` Overview | ||
|
||
`polled_camera` defines the ROS interface that client nodes use to request images from a polling camera driver node (e.g. [prosilica_camera](https://index.ros.org/p/prosilica_camera/)). The protocol is: | ||
|
||
* The camera driver advertises a service call `<camera>/request_image` of type [polled_camera/GetPolledImage](https://github.com/ros-perception/image_common/blob/rolling/polled_camera/srv/GetPolledImage.srv). | ||
* The client calls the service, specifying an output namespace. | ||
* On receiving a request, the driver captures an image and returns its time stamp in the service response. | ||
* The driver publishes (latching) the [sensor_msgs/Image](http://www.ros.org/doc/api/sensor_msgs/html/msg/Image.html) and [sensor_msgs/CameraInfo](http://www.ros.org/doc/api/sensor_msgs/html/msg/CameraInfo.html) to `<response_namespace>/image_raw` and `<response_namespace>/camera_info`. | ||
* Clients subscribe to the response topics just like any other camera image stream. | ||
* When a disconnection causes the number of subscribers to drop to zero, the publisher shuts down. | ||
|
||
See the [code API](http://www.ros.org/doc/api/polled_camera/html/) (unstable) for more information on writing polled camera drivers or clients. | ||
|
||
There are several reasons for publishing images to topics instead of returning them from the service call: | ||
|
||
* **Consistency:** Client-side processing is always performed in an image callback, regardless of what type of camera is used. | ||
* **Visibility:** Topics can be monitored in [image_view](https://index.ros.org/p/image_view/) or [rviz](https://index.ros.org/p/rviz/). | ||
tfoote marked this conversation as resolved.
Show resolved
Hide resolved
|
||
* **Reproducibility:** Topics can be [bagged](https://index.ros.org/p/rosbag2/) and played back later. | ||
* **Compression:** Can take advantage of [image_transport](https://index.ros.org/p/image_transport/) to compress images, if desired. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd like to work to get the canonical link for packages to be the index page which is much better cross linked. It has a link directly to the API docs for each different version. We do need to get more README's ported. I'm doing this as a test of migrating content from the wiki . If we migrated to it's wiki page ( https://wiki.ros.org/image_transport) to it's README.md the link here would be much more useful. But as we're looking to wind down the wiki, we are considering a more bulk process and I'd like to do the linking with that in mind. |
||
|
||
## Nodes | ||
|
||
### poller | ||
|
||
Continually requests images from a polled camera at a specified rate in Hz, making the camera look like it is capturing continuously. | ||
|
||
Usage: | ||
|
||
```bash | ||
# Poll "my_camera" at 5 Hz, publishing in namespace my_polled_output/. | ||
$ poller 5 camera:=my_camera output:=my_polled_output | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. is this correct ? ros2 run polled_camera poller 5 camera:=my_camera output:=my_polled_output There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't have a clue, I'm just porting the documentation as it exists trying to apply some basic heuristics. |
||
``` | ||
|
||
Published Topics | ||
* `<output>/image_raw` ([sensor_msgs/Image](https://github.com/ros2/common_interfaces/blob/rolling/sensor_msgs/msg/Image.msg)) | ||
Image topic, actually published by the camera driver. output should be remapped by the user. | ||
* `<output>/camera_info` ([sensor_msgs/CameraInfo](https://github.com/ros2/common_interfaces/blob/rolling/sensor_msgs/msg/CameraInfo.msg)) | ||
Info topic, actually published by the camera driver. output should be remapped by the user. | ||
Services Called | ||
* `<camera>/request_image` ([polled_camera/GetPolledImage](https://github.com/ros-perception/image_common/blob/rolling/polled_camera/srv/GetPolledImage.srv)) | ||
The camera driver's polled image service. camera should be remapped by the user to the camera namespace. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same here https://github.com/ros2/common_interfaces/blob/rolling/sensor_msgs/msg/Image.msg and https://github.com/ros2/common_interfaces/blob/rolling/sensor_msgs/msg/CameraInfo.msg
You might use this other one https://docs.ros2.org/foxy/api/sensor_msgs/msg/Image.html ? but
rolling
is not working.