No version for distro foxy. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.

gazebo_video_monitor_plugins package from gazebo_video_monitor_plugins repo

gazebo_video_monitor_plugins

Package Summary

Tags No category tags.
Version 0.5.0
License GPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/nlamprian/gazebo_video_monitor_plugins.git
VCS Type git
VCS Version master
Last Updated 2020-09-27
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Package Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

gazebo_video_monitor_plugins is a package that lets the user record videos of a [Gazebo](http://gazebosim.org/) simulation. It provides a multicamera sensor that can be used for creating different types of videos with multiple views from inside the gazebo world. There is a number of plugins available in the package, but more can be developed by the user, with minimal effort, to fit arbitrary use cases.

Additional Links

No additional links.

Maintainers

  • Nick Lamprianidis

Authors

  • Nick Lamprianidis

gazebo_video_monitor_plugins

gazebo_video_monitor_plugins is a package that lets the user record videos of a Gazebo simulation. It provides a multicamera sensor that can be used for creating different types of videos with multiple views from inside the gazebo world.

There is a number of plugins available in the package which are explained next. More plugins can be developed, with minimal effort, to fit arbitrary use cases.

GazeboVideoMonitorPlugin

The GazeboVideoMonitorPlugin plugin records videos in the following format.

video-monitor-plugin

It assumes two cameras: one which can be used to get a view of the world, and another one which can be attached to a robot to get a view from its perspective. Additionally, time metadata are logged in the video to make tracking of world and robot events easier. To configure the plugin, see the gazebo_video_monitor_plugin.world file. The plugin exposes two ROS services to control the recordings:

  • Use the start_recording service to initiate a recording. Setting disable_window to true removes the second view from the recording. world_as_main_view can be used to set the world or robot camera as the main view of the recording.
rosservice call /gazebo/start_recording "{disable_window: false, world_as_main_view: false}"

  • Use the stop_recording service to save or discard a recording. The filename must be given without the extension (.mp4). The recording is saved in the directory defined in the plugin configuration.
rosservice call /gazebo/stop_recording "{discard: false, filename: navigation-test}"

GazeboMultiVideoMonitorPlugin

The GazeboMultiVideoMonitorPlugin plugin records multiple videos from different cameras simultaneously.

multi-video-monitor-plugin

An arbitrary number of cameras can be set up, which the plugin will read and record a video for each one of them. Time metadata can be logged in the videos as well. To configure the plugin, see the gazebo_multi_video_monitor_plugin.world file. The plugin exposes two ROS services to control the recordings:

  • Use the start_recording service to initiate a recording. There are no arguments.

  • Use the stop_recording service to save or discard a recording, as explained in GazeboVideoMonitorPlugin. The recordings are saved together in the subdirectory under the directory defined in the plugin configuration.

GazeboMultiCameraMonitorPlugin

The GazeboMultiCameraMonitorPlugin plugin records videos with a multi-camera setup. See the gif below (the video was created automatically; no editing was done).

multi-camera-monitor-plugin

An arbitrary number of cameras can be set up, from which the plugin can select and configure the video stream. The cameras can be updated dynamically during the recording. Time metadata can be logged in the videos as well. To configure the plugin, see the gazebo_multi_camera_monitor_plugin.world file. The plugin exposes two ROS services and one topic to control the recordings:

  • Use the start_recording service to initiate a recording. You can optionally specify the cameras with which to initialize the video stream.
rosservice call /gazebo/start_recording "{cameras: {names: []}}"

  • Use the stop_recording service to save or discard a recording, as explained in GazeboVideoMonitorPlugin.

  • Publish a message to the camera_select topic to update the video stream. You can specify one or two cameras for the main and window view, respectively.

rostopic pub /gazebo/camera_select gazebo_video_monitor_plugins/Strings "{names: [camera_0, camera_2]}"

GazeboMultiViewMonitorPlugin

The GazeboMultiViewMonitorPlugin plugin records videos with up to 4 parallel camera streams.

multi-view-monitor-plugin

An arbitrary number of cameras can be set up, from which the plugin can select and configure the video stream. The cameras can be updated dynamically during the recording. Time metadata can be logged in the videos as well. To configure the plugin, see the gazebo_multi_view_monitor_plugin.world file. The plugin exposes two ROS services and one topic to control the recordings:

  • Use the start_recording service to initiate a recording. You can pass as arguments the cameras with which to initialize the video stream. An empty camera name results in a null camera stream in the respective quadrant.
rosservice call /gazebo/start_recording "{cameras: {names: ['', camera_1, camera_2, '']}}"

  • Use the stop_recording service to save or discard a recording, as explained in GazeboVideoMonitorPlugin.

  • Publish a message to the camera_select topic to update the video stream. You can specify up to 4 cameras for the top left, top right, bottom left, and bottom right quadrant, respectively. A camera name can be left empty to disable the respective quadrant.

rostopic pub /gazebo/camera_select gazebo_video_monitor_plugins/Strings "{names: [camera_3, camera_1, '', camera_2]}"

Camera Configuration

All plugins expose a set_camera ROS service for configuring the pose of a camera and the link to which the camera should be attached. You can call this service to dynamically reconfigure a camera during a simulation, or to fine tune and extract the initial pose of the camera when configuring the plugin (enabling the camera visualizations makes this process much easier).

rosservice call /gazebo/set_camera "{camera_name: robot_camera, model_name: robot-0001, link_name: gripper_link, pose: {x: 0.0, y: -0.05, z: -0.1, roll: -0.2, pitch: 0.0, yaw: 0.0}}"

Utilities

A set of utility plugins is also available to be used along with the monitor plugins.

  • CameraContainsPlugin: publishes a list of camera names when one or more of the tracked models enter the space of a box container.

Known Issues

  • The camera visualizations (not the cameras used for recording) are created and set correctly, but they don't get attached to the models.
  • The cameras are not always moved correctly during initialization. The numberOfInitialAttachRetries parameter was introduced as a temporary fix.
CHANGELOG

Changelog for package gazebo_video_monitor_plugins

0.5.0 (2020-09-27)

0.4.2 (2020-08-30)

  • Enable C++14

0.4.1 (2020-08-21)

  • Fix cmake and compiler warnings

0.4.0 (2020-08-15)

  • Add multi view monitor plugin Support quadrant camera streams in the video recorder
  • Add license notice

0.3.0 (2020-08-13)

  • Various fixes
    • Fix bug with reading the cameraReference configurations
    • Fix success field on result when discarding in stop recording
    • Add a walking actor in video monitor plugin world as a dynamic element
    • Expose recorder library
  • Add multi video monitor plugin
  • Add multi camera monitor plugin
    • Add camera contains plugin and box marker visualizer
    • Add test world for multi camera monitor and camera contains plugins
    • Use default video name in the recorder when one is not provided
    • Fix gazebo topic names for camera images in multicamera sensor

0.2.0 (2020-06-29)

  • Parameterize log prefixes
  • Drop specific OpenCV version
  • Refactor gazebo video monitor plugin
    • Introduce gazebo video recorder to host recording functionality and enable reusability
    • Introduce gazebo monitor base plugin to host common members and structure plugin initialization
    • Add option to disable the window in the gazebo video monitor plugin
    • Update documentation

0.1.1 (2020-04-23)

  • Set path of temporary recording
  • Add fix for initial camera attachment

0.1.0 (2020-04-21)

  • Add multicamera sensor and video monitor plugin

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Dependant Packages

No known dependants.

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged gazebo_video_monitor_plugins at answers.ros.org

gazebo_video_monitor_plugins package from gazebo_video_monitor_plugins repo

gazebo_video_monitor_plugins

Package Summary

Tags No category tags.
Version 0.5.0
License GPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/nlamprian/gazebo_video_monitor_plugins.git
VCS Type git
VCS Version master
Last Updated 2020-09-27
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Package Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

gazebo_video_monitor_plugins is a package that lets the user record videos of a [Gazebo](http://gazebosim.org/) simulation. It provides a multicamera sensor that can be used for creating different types of videos with multiple views from inside the gazebo world. There is a number of plugins available in the package, but more can be developed by the user, with minimal effort, to fit arbitrary use cases.

Additional Links

No additional links.

Maintainers

  • Nick Lamprianidis

Authors

  • Nick Lamprianidis

gazebo_video_monitor_plugins

gazebo_video_monitor_plugins is a package that lets the user record videos of a Gazebo simulation. It provides a multicamera sensor that can be used for creating different types of videos with multiple views from inside the gazebo world.

There is a number of plugins available in the package which are explained next. More plugins can be developed, with minimal effort, to fit arbitrary use cases.

GazeboVideoMonitorPlugin

The GazeboVideoMonitorPlugin plugin records videos in the following format.

video-monitor-plugin

It assumes two cameras: one which can be used to get a view of the world, and another one which can be attached to a robot to get a view from its perspective. Additionally, time metadata are logged in the video to make tracking of world and robot events easier. To configure the plugin, see the gazebo_video_monitor_plugin.world file. The plugin exposes two ROS services to control the recordings:

  • Use the start_recording service to initiate a recording. Setting disable_window to true removes the second view from the recording. world_as_main_view can be used to set the world or robot camera as the main view of the recording.
rosservice call /gazebo/start_recording "{disable_window: false, world_as_main_view: false}"

  • Use the stop_recording service to save or discard a recording. The filename must be given without the extension (.mp4). The recording is saved in the directory defined in the plugin configuration.
rosservice call /gazebo/stop_recording "{discard: false, filename: navigation-test}"

GazeboMultiVideoMonitorPlugin

The GazeboMultiVideoMonitorPlugin plugin records multiple videos from different cameras simultaneously.

multi-video-monitor-plugin

An arbitrary number of cameras can be set up, which the plugin will read and record a video for each one of them. Time metadata can be logged in the videos as well. To configure the plugin, see the gazebo_multi_video_monitor_plugin.world file. The plugin exposes two ROS services to control the recordings:

  • Use the start_recording service to initiate a recording. There are no arguments.

  • Use the stop_recording service to save or discard a recording, as explained in GazeboVideoMonitorPlugin. The recordings are saved together in the subdirectory under the directory defined in the plugin configuration.

GazeboMultiCameraMonitorPlugin

The GazeboMultiCameraMonitorPlugin plugin records videos with a multi-camera setup. See the gif below (the video was created automatically; no editing was done).

multi-camera-monitor-plugin

An arbitrary number of cameras can be set up, from which the plugin can select and configure the video stream. The cameras can be updated dynamically during the recording. Time metadata can be logged in the videos as well. To configure the plugin, see the gazebo_multi_camera_monitor_plugin.world file. The plugin exposes two ROS services and one topic to control the recordings:

  • Use the start_recording service to initiate a recording. You can optionally specify the cameras with which to initialize the video stream.
rosservice call /gazebo/start_recording "{cameras: {names: []}}"

  • Use the stop_recording service to save or discard a recording, as explained in GazeboVideoMonitorPlugin.

  • Publish a message to the camera_select topic to update the video stream. You can specify one or two cameras for the main and window view, respectively.

rostopic pub /gazebo/camera_select gazebo_video_monitor_plugins/Strings "{names: [camera_0, camera_2]}"

GazeboMultiViewMonitorPlugin

The GazeboMultiViewMonitorPlugin plugin records videos with up to 4 parallel camera streams.

multi-view-monitor-plugin

An arbitrary number of cameras can be set up, from which the plugin can select and configure the video stream. The cameras can be updated dynamically during the recording. Time metadata can be logged in the videos as well. To configure the plugin, see the gazebo_multi_view_monitor_plugin.world file. The plugin exposes two ROS services and one topic to control the recordings:

  • Use the start_recording service to initiate a recording. You can pass as arguments the cameras with which to initialize the video stream. An empty camera name results in a null camera stream in the respective quadrant.
rosservice call /gazebo/start_recording "{cameras: {names: ['', camera_1, camera_2, '']}}"

  • Use the stop_recording service to save or discard a recording, as explained in GazeboVideoMonitorPlugin.

  • Publish a message to the camera_select topic to update the video stream. You can specify up to 4 cameras for the top left, top right, bottom left, and bottom right quadrant, respectively. A camera name can be left empty to disable the respective quadrant.

rostopic pub /gazebo/camera_select gazebo_video_monitor_plugins/Strings "{names: [camera_3, camera_1, '', camera_2]}"

Camera Configuration

All plugins expose a set_camera ROS service for configuring the pose of a camera and the link to which the camera should be attached. You can call this service to dynamically reconfigure a camera during a simulation, or to fine tune and extract the initial pose of the camera when configuring the plugin (enabling the camera visualizations makes this process much easier).

rosservice call /gazebo/set_camera "{camera_name: robot_camera, model_name: robot-0001, link_name: gripper_link, pose: {x: 0.0, y: -0.05, z: -0.1, roll: -0.2, pitch: 0.0, yaw: 0.0}}"

Utilities

A set of utility plugins is also available to be used along with the monitor plugins.

  • CameraContainsPlugin: publishes a list of camera names when one or more of the tracked models enter the space of a box container.

Known Issues

  • The camera visualizations (not the cameras used for recording) are created and set correctly, but they don't get attached to the models.
  • The cameras are not always moved correctly during initialization. The numberOfInitialAttachRetries parameter was introduced as a temporary fix.
CHANGELOG

Changelog for package gazebo_video_monitor_plugins

0.5.0 (2020-09-27)

0.4.2 (2020-08-30)

  • Enable C++14

0.4.1 (2020-08-21)

  • Fix cmake and compiler warnings

0.4.0 (2020-08-15)

  • Add multi view monitor plugin Support quadrant camera streams in the video recorder
  • Add license notice

0.3.0 (2020-08-13)

  • Various fixes
    • Fix bug with reading the cameraReference configurations
    • Fix success field on result when discarding in stop recording
    • Add a walking actor in video monitor plugin world as a dynamic element
    • Expose recorder library
  • Add multi video monitor plugin
  • Add multi camera monitor plugin
    • Add camera contains plugin and box marker visualizer
    • Add test world for multi camera monitor and camera contains plugins
    • Use default video name in the recorder when one is not provided
    • Fix gazebo topic names for camera images in multicamera sensor

0.2.0 (2020-06-29)

  • Parameterize log prefixes
  • Drop specific OpenCV version
  • Refactor gazebo video monitor plugin
    • Introduce gazebo video recorder to host recording functionality and enable reusability
    • Introduce gazebo monitor base plugin to host common members and structure plugin initialization
    • Add option to disable the window in the gazebo video monitor plugin
    • Update documentation

0.1.1 (2020-04-23)

  • Set path of temporary recording
  • Add fix for initial camera attachment

0.1.0 (2020-04-21)

  • Add multicamera sensor and video monitor plugin

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Dependant Packages

No known dependants.

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged gazebo_video_monitor_plugins at answers.ros.org

No version for distro kinetic. Known supported distros are highlighted in the buttons above.
No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.