29 #ifndef HECTOR_POSE_ESTIMATION_GLOBAL_REFERENCE_H 30 #define HECTOR_POSE_ESTIMATION_GLOBAL_REFERENCE_H 35 #include <geographic_msgs/GeoPose.h> 36 #include <geometry_msgs/TransformStamped.h> 39 #include <boost/function.hpp> 55 Heading() : value(
std::numeric_limits<double>::quiet_NaN()), cos(1.0), sin(0.0) {}
60 operator double()
const {
return value; }
65 Radius() : north(
std::numeric_limits<double>::quiet_NaN()), east(
std::numeric_limits<double>::quiet_NaN()) {}
75 void getGeoPose(geographic_msgs::GeoPose& geopose)
const;
90 void fromWGS84(
double latitude,
double longitude,
double &
x,
double &
y);
91 void toWGS84(
double x,
double y,
double &latitude,
double &longitude);
92 void fromNorthEast(
double north,
double east,
double &x,
double &y);
93 void toNorthEast(
double x,
double y,
double &north,
double &east);
102 void updated(
bool intermediate =
false);
125 #endif // HECTOR_POSE_ESTIMATION_GLOBAL_REFERENCE_H
double reference_latitude_
bool getWorldToNavTransform(geometry_msgs::TransformStamped &transform, const std::string &world_frame, const std::string &nav_frame, const ros::Time &stamp=ros::Time()) const
const Heading & heading() const
Measurement_< HeadingModel > Heading
void fromWGS84(double latitude, double longitude, double &x, double &y)
static const GlobalReferencePtr & Instance()
void toAltitude(double z, double &altitude)
void toWGS84(double x, double y, double &latitude, double &longitude)
std::list< UpdateCallback > update_callbacks_
void fromAltitude(double altitude, double &z)
TFSIMD_FORCE_INLINE const tfScalar & y() const
void toNorthEast(double x, double y, double &north, double &east)
GlobalReference & setCurrentAltitude(const State &state, double altitude)
const Radius & radius() const
Eigen::Quaternion< ScalarType > Quaternion
void addUpdateCallback(const UpdateCallback &)
GlobalReference & setCurrentHeading(const State &state, double heading)
GlobalReference & setAltitude(double altitude, bool intermediate=false)
GlobalReference & setCurrentPosition(const State &state, double latitude, double longitude)
TFSIMD_FORCE_INLINE const tfScalar & x() const
double reference_altitude_
TFSIMD_FORCE_INLINE const tfScalar & z() const
ParameterList & parameters()
void getGeoPose(geographic_msgs::GeoPose &geopose) const
const Position & position() const
double reference_longitude_
double reference_heading_
boost::function< void()> UpdateCallback
GlobalReference & setPosition(double latitude, double longitude, bool intermediate=false)
void fromNorthEast(double north, double east, double &x, double &y)
void updated(bool intermediate=false)
ParameterList parameters_
GlobalReference & setHeading(double heading, bool intermediate=false)