g2o
Loading...
Searching...
No Matches
robot_laser.h
Go to the documentation of this file.
1// g2o - General Graph Optimization
2// Copyright (C) 2011 R. Kuemmerle, G. Grisetti, W. Burgard
3// All rights reserved.
4//
5// Redistribution and use in source and binary forms, with or without
6// modification, are permitted provided that the following conditions are
7// met:
8//
9// * Redistributions of source code must retain the above copyright notice,
10// this list of conditions and the following disclaimer.
11// * Redistributions in binary form must reproduce the above copyright
12// notice, this list of conditions and the following disclaimer in the
13// documentation and/or other materials provided with the distribution.
14//
15// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
16// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
17// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
18// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
19// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
20// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
21// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
22// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
23// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
24// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
27#ifndef G2O_ROBOT_LASER_H
28#define G2O_ROBOT_LASER_H
29
31#include "g2o_types_data_api.h"
32#include "raw_laser.h"
33
34namespace g2o {
35
44 public:
46 RobotLaser();
48
49 virtual bool write(std::ostream& os) const;
50 virtual bool read(std::istream& is);
51
52 SE2 laserPose() const { return _odomPose * _laserParams.laserPose; }
53 const SE2& odomPose() const { return _odomPose; }
54 void setOdomPose(const SE2& odomPose);
55
56 protected:
59 double _laserTv, _laserRv, _forwardSafetyDist, _sideSafetyDist, _turnAxis;
60};
61
62#ifdef G2O_HAVE_OPENGL
63class G2O_TYPES_DATA_API RobotLaserDrawAction : public DrawAction {
64 public:
65 RobotLaserDrawAction();
66 virtual HyperGraphElementAction* operator()(
69
70 protected:
71 virtual bool refreshPropertyPtrs(
73 IntProperty* _beamsDownsampling;
74 FloatProperty* _pointSize;
75 FloatProperty* _maxRange;
76};
77#endif
78
79} // namespace g2o
80
81#endif
Abstract action that operates on a graph entity.
Raw laser measuerement.
Definition raw_laser.h:45
laser measurement obtained by a robot
Definition robot_laser.h:43
SE2 laserPose() const
Definition robot_laser.h:52
double _forwardSafetyDist
Definition robot_laser.h:59
const SE2 & odomPose() const
Definition robot_laser.h:53
represent SE2
Definition se2.h:43
#define G2O_TYPES_DATA_API
Property< float > FloatProperty
Definition property.h:150