Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
gazebo::sensors::GvmMulticameraSensor Class Reference

Creates multiple cameras and publishes an event with synchronized images from all of these cameras. More...

#include <gvm_multicamera_sensor.h>

Inheritance diagram for gazebo::sensors::GvmMulticameraSensor:
Inheritance graph
[legend]

Classes

struct  CameraData
 
struct  ImageData
 

Public Types

using ImageDataPtr = std::shared_ptr< ImageData >
 
using NewImagesFn = void(const std::vector< ImageDataPtr > &)
 

Public Member Functions

bool attachToLink (const std::string &camera_name, const RefModelConfig &model_config, bool on_init=false)
 
event::ConnectionPtr connectNewImages (const std::function< NewImagesFn > &callback)
 
rendering::CameraPtr getCamera (const std::string &name)
 
std::vector< std::string > getCameraNames () const
 
 GvmMulticameraSensor ()
 
virtual void Init () override
 
void initRos (ros::NodeHandlePtr &nh, const std::string &set_camera_service_name)
 
virtual bool IsActive () const override
 
bool isRecording () const
 
virtual void Load (const std::string &world_name) override
 
void setRecording (bool recording)
 
virtual ~GvmMulticameraSensor () override
 

Static Public Member Functions

static sensors::GvmMulticameraSensornewSensor ()
 

Private Member Functions

virtual void Fini () override
 
void Render ()
 
void resetCameraVisualization (CameraData &camera)
 
bool setCameraServiceCallback (gazebo_video_monitor_msgs::SetCameraRequest &req, gazebo_video_monitor_msgs::SetCameraResponse &res)
 
void setCameraVisualization (CameraData &camera)
 
virtual bool UpdateImpl (const bool force) override
 

Private Attributes

std::map< std::string, CameraDatacameras_
 
std::vector< ImageDataPtrimages_
 
physics::LinkPtr link_
 
event::EventT< NewImagesFnnew_images_
 
bool recording_
 
bool rendered_
 
transport::PublisherPtr request_publisher_
 
transport::PublisherPtr sensor_publisher_
 
ros::ServiceServer set_camera_service_
 
transport::PublisherPtr visual_publisher_
 

Detailed Description

Creates multiple cameras and publishes an event with synchronized images from all of these cameras.

Note
Provides a ROS interface for dynamically updating the configuration of a camera. If a model is not specified in the request, the model/link configuration defaults to the model/link to which the sensor is attached.
Expects the usual sensor configuration, but with an arbitrary number of cameras.

Definition at line 50 of file gvm_multicamera_sensor.h.

Member Typedef Documentation

◆ ImageDataPtr

Definition at line 65 of file gvm_multicamera_sensor.h.

◆ NewImagesFn

Definition at line 67 of file gvm_multicamera_sensor.h.

Constructor & Destructor Documentation

◆ GvmMulticameraSensor()

gazebo::sensors::GvmMulticameraSensor::GvmMulticameraSensor ( )

Definition at line 29 of file gvm_multicamera_sensor.cpp.

◆ ~GvmMulticameraSensor()

gazebo::sensors::GvmMulticameraSensor::~GvmMulticameraSensor ( )
overridevirtual

Definition at line 35 of file gvm_multicamera_sensor.cpp.

Member Function Documentation

◆ attachToLink()

bool gazebo::sensors::GvmMulticameraSensor::attachToLink ( const std::string &  camera_name,
const RefModelConfig model_config,
bool  on_init = false 
)

Definition at line 133 of file gvm_multicamera_sensor.cpp.

◆ connectNewImages()

event::ConnectionPtr gazebo::sensors::GvmMulticameraSensor::connectNewImages ( const std::function< NewImagesFn > &  callback)

Definition at line 123 of file gvm_multicamera_sensor.cpp.

◆ Fini()

void gazebo::sensors::GvmMulticameraSensor::Fini ( )
overrideprivatevirtual

Definition at line 258 of file gvm_multicamera_sensor.cpp.

◆ getCamera()

rendering::CameraPtr gazebo::sensors::GvmMulticameraSensor::getCamera ( const std::string &  name)

Definition at line 128 of file gvm_multicamera_sensor.cpp.

◆ getCameraNames()

std::vector< std::string > gazebo::sensors::GvmMulticameraSensor::getCameraNames ( ) const

Definition at line 117 of file gvm_multicamera_sensor.cpp.

◆ Init()

void gazebo::sensors::GvmMulticameraSensor::Init ( )
overridevirtual

Definition at line 51 of file gvm_multicamera_sensor.cpp.

◆ initRos()

void gazebo::sensors::GvmMulticameraSensor::initRos ( ros::NodeHandlePtr nh,
const std::string &  set_camera_service_name 
)

Definition at line 106 of file gvm_multicamera_sensor.cpp.

◆ IsActive()

bool gazebo::sensors::GvmMulticameraSensor::IsActive ( ) const
overridevirtual

Definition at line 96 of file gvm_multicamera_sensor.cpp.

◆ isRecording()

bool gazebo::sensors::GvmMulticameraSensor::isRecording ( ) const

Definition at line 178 of file gvm_multicamera_sensor.cpp.

◆ Load()

void gazebo::sensors::GvmMulticameraSensor::Load ( const std::string &  world_name)
overridevirtual

Definition at line 37 of file gvm_multicamera_sensor.cpp.

◆ newSensor()

GvmMulticameraSensor * gazebo::sensors::GvmMulticameraSensor::newSensor ( )
static

Definition at line 113 of file gvm_multicamera_sensor.cpp.

◆ Render()

void gazebo::sensors::GvmMulticameraSensor::Render ( )
private

Definition at line 263 of file gvm_multicamera_sensor.cpp.

◆ resetCameraVisualization()

void gazebo::sensors::GvmMulticameraSensor::resetCameraVisualization ( GvmMulticameraSensor::CameraData camera)
private

Definition at line 180 of file gvm_multicamera_sensor.cpp.

◆ setCameraServiceCallback()

bool gazebo::sensors::GvmMulticameraSensor::setCameraServiceCallback ( gazebo_video_monitor_msgs::SetCameraRequest &  req,
gazebo_video_monitor_msgs::SetCameraResponse &  res 
)
private

Definition at line 288 of file gvm_multicamera_sensor.cpp.

◆ setCameraVisualization()

void gazebo::sensors::GvmMulticameraSensor::setCameraVisualization ( GvmMulticameraSensor::CameraData camera)
private

Definition at line 201 of file gvm_multicamera_sensor.cpp.

◆ setRecording()

void gazebo::sensors::GvmMulticameraSensor::setRecording ( bool  recording)

Definition at line 174 of file gvm_multicamera_sensor.cpp.

◆ UpdateImpl()

bool gazebo::sensors::GvmMulticameraSensor::UpdateImpl ( const bool  force)
overrideprivatevirtual

Definition at line 272 of file gvm_multicamera_sensor.cpp.

Member Data Documentation

◆ cameras_

std::map<std::string, CameraData> gazebo::sensors::GvmMulticameraSensor::cameras_
private

Definition at line 235 of file gvm_multicamera_sensor.h.

◆ images_

std::vector<ImageDataPtr> gazebo::sensors::GvmMulticameraSensor::images_
private

Definition at line 236 of file gvm_multicamera_sensor.h.

◆ link_

physics::LinkPtr gazebo::sensors::GvmMulticameraSensor::link_
private

Definition at line 227 of file gvm_multicamera_sensor.h.

◆ new_images_

event::EventT<NewImagesFn> gazebo::sensors::GvmMulticameraSensor::new_images_
private

Definition at line 233 of file gvm_multicamera_sensor.h.

◆ recording_

bool gazebo::sensors::GvmMulticameraSensor::recording_
private

Definition at line 239 of file gvm_multicamera_sensor.h.

◆ rendered_

bool gazebo::sensors::GvmMulticameraSensor::rendered_
private

Definition at line 238 of file gvm_multicamera_sensor.h.

◆ request_publisher_

transport::PublisherPtr gazebo::sensors::GvmMulticameraSensor::request_publisher_
private

Definition at line 231 of file gvm_multicamera_sensor.h.

◆ sensor_publisher_

transport::PublisherPtr gazebo::sensors::GvmMulticameraSensor::sensor_publisher_
private

Definition at line 229 of file gvm_multicamera_sensor.h.

◆ set_camera_service_

ros::ServiceServer gazebo::sensors::GvmMulticameraSensor::set_camera_service_
private

Definition at line 241 of file gvm_multicamera_sensor.h.

◆ visual_publisher_

transport::PublisherPtr gazebo::sensors::GvmMulticameraSensor::visual_publisher_
private

Definition at line 230 of file gvm_multicamera_sensor.h.


The documentation for this class was generated from the following files:


gazebo_video_monitor_plugins
Author(s): Nick Lamprianidis
autogenerated on Tue Oct 24 2023 02:12:50