modm API documentation
modm::Location2D< T > Class Template Reference

Location in a 2D coordinate system. More...

#include <modm/math/geometry/location_2d.hpp>

Public Member Functions

 Location2D (const Vector< T, 2 > &position, const float &orientation)
 
 Location2D (const T &x, const T &y, const float &orientation)
 
const Vector< T, 2 > & getPosition () const
 
const T & getX () const
 
const T & getY () const
 
void setPosition (const Vector< T, 2 > &point)
 
void setPosition (const T &x, const T &y)
 
float getOrientation () const
 
void setOrientation (const float &phi)
 
void move (const Location2D &diff)
 Add a position increment.
 
void move (const Vector< T, 2 > &diff)
 
void move (T x, float phi)
 Add a increment only in x-direction. More...
 
Vector< T, 2 > translated (const Vector< T, 2 > &vector) const
 TODO.
 
template<typename U >
Location2D< U > convert () const
 Convert between Location-objects with different base-types.
 
bool operator== (const Location2D &other) const
 
bool operator!= (const Location2D &other) const
 

Friends

template<typename U >
IOStreamoperator<< (IOStream &, const Location2D< U > &)
 

Detailed Description

template<typename T = int16_t>
class modm::Location2D< T >

Location in a 2D coordinate system.

This class is primarily used to describe the location of a robot on the field. The robot has a position (x- and y-coordinate) and a orientation (absolute angle in the range (-pi, pi)).

Member Function Documentation

template<typename T = int16_t>
void modm::Location2D< T >::move ( x,
float  phi 
)

Add a increment only in x-direction.

Our robots mostly use a differential drive with two driven wheels side by side, allowing the robot to move only in the drive direction (x-direction in the local coordinate system of the robot) and rotate. A movement perpendicular to the drive direction is impossible without an external force.

To estimate the position of the robot over time, we use odometry. Therefore it is necessary to add a lot small increments of movement over time. Because the y-component will always be zero, we created this method, which avoids unnecessary computations for the y-component and is therefore faster the the universal move-method.

Parameters
xmovement in x-direction
phirotation

The documentation for this class was generated from the following file: