include
rotors_gazebo_plugins
external
gazebo_optical_flow_plugin.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2012-2015 Open Source Robotics Foundation
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*
16
*/
17
#ifndef _GAZEBO_OPTICAL_FLOW_PLUGIN_HH_
18
#define _GAZEBO_OPTICAL_FLOW_PLUGIN_HH_
19
20
#include <string>
21
22
#include "gazebo/common/Plugin.hh"
23
#include "gazebo/sensors/CameraSensor.hh"
24
#include "gazebo/gazebo.hh"
25
#include "gazebo/common/common.hh"
26
#include "gazebo/rendering/Camera.hh"
27
#include "gazebo/util/system.hh"
28
#include "gazebo/transport/transport.hh"
29
#include "gazebo/msgs/msgs.hh"
30
31
#include "OpticalFlow.pb.h"
32
33
#include <opencv2/opencv.hpp>
34
#include <iostream>
35
#include <boost/timer/timer.hpp>
36
37
#include "flow_opencv.hpp"
38
#include "flow_px4.hpp"
39
40
using namespace
cv
;
41
using namespace
std
;
42
43
namespace
gazebo
44
{
45
class
GAZEBO_VISIBLE
OpticalFlowPlugin
:
public
SensorPlugin
46
{
47
public
:
48
OpticalFlowPlugin
();
49
virtual
~
OpticalFlowPlugin
();
50
virtual
void
Load(sensors::SensorPtr _sensor, sdf::ElementPtr _sdf);
51
virtual
void
OnNewFrame(
const
unsigned
char
*_image,
52
unsigned
int
_width,
unsigned
int
_height,
53
unsigned
int
_depth,
const
std::string &_format);
54
55
protected
:
56
unsigned
int
width
, height, depth;
57
std::string
format
;
58
sensors::CameraSensorPtr
parentSensor
;
59
rendering::CameraPtr
camera
;
60
61
private
:
62
event::ConnectionPtr
newFrameConnection
;
63
Mat
old_gray
;
64
Mat
frame_gray
;
65
transport::PublisherPtr
opticalFlow_pub_
;
66
transport::NodePtr
node_handle_
;
67
opticalFlow_msgs::msgs::opticalFlow
opticalFlow_message
;
68
std::string
namespace_
;
69
boost::timer::cpu_timer
timer_
;
70
OpticalFlowOpenCV *
_optical_flow
;
71
// OpticalFlowPX4 *_optical_flow;
72
73
float
hfov
;
74
float
rate
;
75
int
dt_us
;
76
float
focal_length
;
77
double
first_frame_time
;
78
double
frame_time
;
79
double
old_frame_time
;
80
uint32_t
frame_time_us
;
81
};
82
}
83
#endif
gazebo::OpticalFlowPlugin::parentSensor
sensors::CameraSensorPtr parentSensor
Definition:
gazebo_optical_flow_plugin.h:58
gazebo::OpticalFlowPlugin::dt_us
int dt_us
Definition:
gazebo_optical_flow_plugin.h:75
gazebo::OpticalFlowPlugin::frame_gray
Mat frame_gray
Definition:
gazebo_optical_flow_plugin.h:64
gazebo::OpticalFlowPlugin::first_frame_time
double first_frame_time
Definition:
gazebo_optical_flow_plugin.h:77
gazebo::OpticalFlowPlugin::hfov
float hfov
Definition:
gazebo_optical_flow_plugin.h:73
gazebo::OpticalFlowPlugin::camera
rendering::CameraPtr camera
Definition:
gazebo_optical_flow_plugin.h:59
gazebo::OpticalFlowPlugin::_optical_flow
OpticalFlowOpenCV * _optical_flow
Definition:
gazebo_optical_flow_plugin.h:70
gazebo::OpticalFlowPlugin
Definition:
gazebo_optical_flow_plugin.h:45
gazebo::OpticalFlowPlugin::focal_length
float focal_length
Definition:
gazebo_optical_flow_plugin.h:76
gazebo
gazebo::OpticalFlowPlugin::newFrameConnection
event::ConnectionPtr newFrameConnection
Definition:
gazebo_optical_flow_plugin.h:62
gazebo::OpticalFlowPlugin::rate
float rate
Definition:
gazebo_optical_flow_plugin.h:74
gazebo::OpticalFlowPlugin::node_handle_
transport::NodePtr node_handle_
Definition:
gazebo_optical_flow_plugin.h:66
std
gazebo::OpticalFlowPlugin::frame_time_us
uint32_t frame_time_us
Definition:
gazebo_optical_flow_plugin.h:80
cv
gazebo::OpticalFlowPlugin::old_gray
Mat old_gray
Definition:
gazebo_optical_flow_plugin.h:63
gazebo::OpticalFlowPlugin::namespace_
std::string namespace_
Definition:
gazebo_optical_flow_plugin.h:68
gazebo::OpticalFlowPlugin::opticalFlow_pub_
transport::PublisherPtr opticalFlow_pub_
Definition:
gazebo_optical_flow_plugin.h:65
gazebo::OpticalFlowPlugin::format
std::string format
Definition:
gazebo_optical_flow_plugin.h:57
gazebo::OpticalFlowPlugin::frame_time
double frame_time
Definition:
gazebo_optical_flow_plugin.h:78
gazebo::OpticalFlowPlugin::opticalFlow_message
opticalFlow_msgs::msgs::opticalFlow opticalFlow_message
Definition:
gazebo_optical_flow_plugin.h:67
gazebo::OpticalFlowPlugin::width
unsigned int width
Definition:
gazebo_optical_flow_plugin.h:56
gazebo::OpticalFlowPlugin::old_frame_time
double old_frame_time
Definition:
gazebo_optical_flow_plugin.h:79
gazebo::OpticalFlowPlugin::timer_
boost::timer::cpu_timer timer_
Definition:
gazebo_optical_flow_plugin.h:69
rotors_gazebo_plugins
Author(s): Fadri Furrer, Michael Burri, Mina Kamel, Janosch Nikolic, Markus Achtelik
autogenerated on Mon Feb 28 2022 23:39:04