-
Notifications
You must be signed in to change notification settings - Fork 0
/
local_coordinate_system.h
23 lines (19 loc) · 809 Bytes
/
local_coordinate_system.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#pragma once
#include "GeographicLib/LocalCartesian.hpp"
#include "sophus/se3.hpp"
#include "geodetic_position.h"
#include "attitude.h"
/// \brief Computes and represents a local cartesian coordinate system.
class LocalCoordinateSystem
{
public:
/// \brief Constructs a local NED coordinate system at the specified origin.
/// \param origin Origin for coordinate system.
explicit LocalCoordinateSystem(const GeodeticPosition& origin);
/// \brief Transforms geodetic position and attitude to pose in local coordinate system.
/// \param position_geodetic_body Geodetic position
/// \param orientation_ned_body Attitude
Sophus::SE3d toLocalPose(const GeodeticPosition& position_geodetic_body, const Sophus::SO3d& orientation_ned_body) const;
private:
GeographicLib::LocalCartesian local_;
};