Go to the documentation of this file.
15 template <
class TScalar>
25 std::string
const& frame_a,
26 std::string
const& frame_b,
27 Tangent const& tangent_in_b = Tangent::Zero())
28 : a_from_b_(a_from_b),
31 tangent_in_b_(tangent_in_b) {}
33 std::string
const&
frameA()
const {
return frame_a_; }
34 std::string&
frameA() {
return frame_a_; }
36 std::string
const&
frameB()
const {
return frame_b_; }
37 std::string&
frameB() {
return frame_b_; }
65 return foo_from_bar.
adj() * tangent_in_bar;
106 Pose3 const& lhs_a_from_b,
Pose3 const& rhs_a_from_b) {
107 return (lhs_a_from_b.
inverse() * rhs_a_from_b)
108 .and_then([](Expected<Pose3>
const& pose) -> Expected<Tangent> {
116 "Pose frame error: lhs a={} b={} rhs a={} b={}",
140 Isometry a_from_b = a_from_mid * mid_from_b;
146 Eigen::Vector<double, 6> velocity_of_mid_wrt_a_in_b =
151 Tangent velocity_of_b_wrt_a_in_b =
152 velocity_of_mid_wrt_a_in_b + velocity_of_b_wrt_mid_in_b;
155 a_from_b, lhs.
frameA(), rhs.
frameB(), velocity_of_b_wrt_a_in_b);
159 Pose3 const& lhs, Expected<Pose3>
const& rhs) {
167 Expected<Pose3>
const& lhs, Expected<Pose3>
const& rhs) {
174 return (*lhs) * (*rhs);
178 Expected<Pose3>
const& lhs,
Pose3 const& rhs) {
187 std::string frame_a_;
188 std::string frame_b_;
Tangent & tangentInB()
Mutable version of tangentInB.
Definition: pose3.h:50
Isometry & aFromB()
Definition: pose3.h:40
Pose3(Isometry const &a_from_b, std::string const &frame_a, std::string const &frame_b, Tangent const &tangent_in_b=Tangent::Zero())
Definition: pose3.h:23
typename Base::Params Params
Definition: isometry3.h:37
Isometry bFromA() const
Pose of entity b in the a frame.
Definition: pose3.h:59
std::string const & frameA() const
Definition: pose3.h:33
Image MutImage, owning images types.
Definition: num_diff.h:20
friend Expected< Pose3 > operator*(Pose3 const &lhs, Expected< Pose3 > const &rhs)
Definition: pose3.h:158
friend Expected< Pose3 > operator*(Expected< Pose3 > const &lhs, Expected< Pose3 > const &rhs)
Definition: pose3.h:166
auto adj() const -> Eigen::Matrix< Scalar, kDof, kDof >
Definition: lie_group.h:147
Eigen::Vector< Scalar, 3 > translation() const
Definition: pose3.h:70
Pose3 evolve(double dt) const
Evolves the pose by a small increment dt.
Definition: pose3.h:97
typename Isometry::Tangent Tangent
Definition: pose3.h:20
std::string & frameB()
Definition: pose3.h:37
Pose3 inverse() const
Inverse of the pose (and its velocity).
Definition: pose3.h:85
typename Isometry::Rotation Rotation
Definition: pose3.h:21
friend Expected< Pose3 > operator*(Pose3 const &lhs, Pose3 const &rhs)
Definition: pose3.h:113
static Tangent changeTangentOrigin(sophus::Isometry3F64 const &foo_from_bar, Tangent const &tangent_in_bar)
Changes origin frame of tangent vector from frame bar to frame foo.
Definition: pose3.h:63
auto inverse() const -> Derived
Definition: lie_group.h:127
Tangent log() const
Definition: pose3.h:68
friend Expected< Pose3 > operator*(Expected< Pose3 > const &lhs, Pose3 const &rhs)
Definition: pose3.h:177
TScalar Scalar
Definition: pose3.h:18
auto translation() -> Eigen::VectorBlock< Params, 3 >
Definition: isometry3.h:132
#define FARM_UNEXPECTED(cstr,...)
Definition: expected.h:86
std::string const & frameB() const
Definition: pose3.h:36
Eigen::VectorBlock< Params, 3 > translation()
Definition: pose3.h:74
auto log() const -> Tangent
Definition: lie_group.h:97
auto setRotation(Rotation3< Scalar > const &rotation)
Definition: isometry3.h:146
Rotation rotation() const
Definition: pose3.h:78
typename Base::Tangent Tangent
Definition: isometry3.h:36
Isometry const & aFromB() const
Definition: pose3.h:39
Isometry3< Scalar > Isometry
Definition: pose3.h:19
Tangent const & tangentOfBInA() const
Definition: pose3.h:53
Tangent & tangentOfBInA()
Definition: pose3.h:56
friend Expected< Tangent > error(Pose3 const &lhs_a_from_b, Pose3 const &rhs_a_from_b)
Definition: pose3.h:105
Rotation3< Scalar > Rotation
Definition: isometry3.h:34
static auto exp(Tangent const &tangent) -> Derived
Definition: lie_group.h:93
std::string & frameA()
Definition: pose3.h:34
typename Isometry::Params Params
Definition: pose3.h:22
Tangent const & tangentInB() const
Rate of change of the pose a_from_b represented in frame b.
Definition: pose3.h:47
void setRotation(Rotation const &rotation)
Definition: pose3.h:79
auto rotation() const -> Rotation3< Scalar > const
Definition: isometry3.h:141