Fawkes API  Fawkes Development Version
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
fawkes::NavigatorInterface Class Reference

NavigatorInterface Fawkes BlackBoard Interface. More...

#include <>>

Inheritance diagram for fawkes::NavigatorInterface:

List of all members.

Classes

class  CartesianGotoMessage
 CartesianGotoMessage Fawkes BlackBoard Interface Message. More...
struct  NavigatorInterface_data_t
 Internal data storage, do NOT modify!
class  ObstacleMessage
 ObstacleMessage Fawkes BlackBoard Interface Message. More...
class  PlaceGotoMessage
 PlaceGotoMessage Fawkes BlackBoard Interface Message. More...
class  PolarGotoMessage
 PolarGotoMessage Fawkes BlackBoard Interface Message. More...
class  ResetOdometryMessage
 ResetOdometryMessage Fawkes BlackBoard Interface Message. More...
class  SetEscapingMessage
 SetEscapingMessage Fawkes BlackBoard Interface Message. More...
class  SetMaxVelocityMessage
 SetMaxVelocityMessage Fawkes BlackBoard Interface Message. More...
class  SetSecurityDistanceMessage
 SetSecurityDistanceMessage Fawkes BlackBoard Interface Message. More...
class  StopMessage
 StopMessage Fawkes BlackBoard Interface Message. More...
class  TurnMessage
 TurnMessage Fawkes BlackBoard Interface Message. More...

Public Member Functions

virtual bool message_valid (const Message *message) const
 Check if message is valid and can be enqueued.
uint32_t flags () const
 Get flags value.
void set_flags (const uint32_t new_flags)
 Set flags value.
size_t maxlenof_flags () const
 Get maximum length of flags value.
float x () const
 Get x value.
void set_x (const float new_x)
 Set x value.
size_t maxlenof_x () const
 Get maximum length of x value.
float y () const
 Get y value.
void set_y (const float new_y)
 Set y value.
size_t maxlenof_y () const
 Get maximum length of y value.
float dest_x () const
 Get dest_x value.
void set_dest_x (const float new_dest_x)
 Set dest_x value.
size_t maxlenof_dest_x () const
 Get maximum length of dest_x value.
float dest_y () const
 Get dest_y value.
void set_dest_y (const float new_dest_y)
 Set dest_y value.
size_t maxlenof_dest_y () const
 Get maximum length of dest_y value.
float dest_ori () const
 Get dest_ori value.
void set_dest_ori (const float new_dest_ori)
 Set dest_ori value.
size_t maxlenof_dest_ori () const
 Get maximum length of dest_ori value.
float dest_dist () const
 Get dest_dist value.
void set_dest_dist (const float new_dest_dist)
 Set dest_dist value.
size_t maxlenof_dest_dist () const
 Get maximum length of dest_dist value.
uint32_t msgid () const
 Get msgid value.
void set_msgid (const uint32_t new_msgid)
 Set msgid value.
size_t maxlenof_msgid () const
 Get maximum length of msgid value.
bool is_final () const
 Get final value.
void set_final (const bool new_final)
 Set final value.
size_t maxlenof_final () const
 Get maximum length of final value.
uint32_t error_code () const
 Get error_code value.
void set_error_code (const uint32_t new_error_code)
 Set error_code value.
size_t maxlenof_error_code () const
 Get maximum length of error_code value.
float max_velocity () const
 Get max_velocity value.
void set_max_velocity (const float new_max_velocity)
 Set max_velocity value.
size_t maxlenof_max_velocity () const
 Get maximum length of max_velocity value.
float security_distance () const
 Get security_distance value.
void set_security_distance (const float new_security_distance)
 Set security_distance value.
size_t maxlenof_security_distance () const
 Get maximum length of security_distance value.
bool is_escaping_enabled () const
 Get escaping_enabled value.
void set_escaping_enabled (const bool new_escaping_enabled)
 Set escaping_enabled value.
size_t maxlenof_escaping_enabled () const
 Get maximum length of escaping_enabled value.
virtual Messagecreate_message (const char *type) const
 Create message based on type name.
virtual void copy_values (const Interface *other)
 Copy values from other interface.
virtual const char * enum_tostring (const char *enumtype, int val) const
 Convert arbitrary enum value to string.
- Public Member Functions inherited from fawkes::Interface
virtual ~Interface ()
 Destructor.
bool oftype (const char *interface_type) const
 Check if interface is of given type.
const void * datachunk () const
 Get data chunk.
unsigned int datasize () const
 Get data size.
const char * type () const
 Get type of interface.
const char * id () const
 Get identifier of interface.
const char * uid () const
 Get unique identifier of interface.
unsigned short serial () const
 Get instance serial of interface.
unsigned int mem_serial () const
 Get memory serial of interface.
bool operator== (Interface &comp) const
 Check equality of two interfaces.
const unsigned char * hash () const
 Get interface hash.
size_t hash_size () const
 Get size of interface hash.
const char * hash_printable () const
 Get printable interface hash.
bool is_writer () const
 Check if this is a writing instance.
void set_validity (bool valid)
 Mark this interface invalid.
bool is_valid () const
 Check validity of interface.
void set_from_chunk (void *chunk)
 Set from a raw data chunk.
void resize_buffers (unsigned int num_buffers)
 Resize buffer array.
unsigned int num_buffers () const
 Get number of buffers.
void copy_shared_to_buffer (unsigned int buffer)
 Copy data from private memory to buffer.
void copy_private_to_buffer (unsigned int buffer)
 Copy data from private memory to buffer.
void read_from_buffer (unsigned int buffer)
 Copy data from buffer to private memory.
int compare_buffers (unsigned int buffer)
 Compare buffer to private memory.
void read ()
 Read from BlackBoard into local copy.
void write ()
 Write from local copy into BlackBoard memory.
bool has_writer () const
 Check if there is a writer for the interface.
unsigned int num_readers () const
 Get the number of readers.
bool changed () const
 Check if data has been changed.
const Timetimestamp () const
 Get timestamp of last write.
void set_auto_timestamping (bool enabled)
 Enable or disable automated timestamping.
void set_timestamp (const Time *t=NULL)
 Set timestamp.
void set_clock (Clock *clock)
 Set clock to use for timestamping.
std::list< const char * > get_message_types ()
 Obtain a list of textual representations of the message types available for this interface.
unsigned int msgq_enqueue (Message *message)
 Enqueue message at end of queue.
unsigned int msgq_enqueue_copy (Message *message)
 Enqueue copy of message at end of queue.
void msgq_remove (Message *message)
 Remove message from queue.
void msgq_remove (unsigned int message_id)
 Remove message from queue.
unsigned int msgq_size ()
 Get size of message queue.
void msgq_flush ()
 Flush all messages.
void msgq_lock ()
 Lock message queue.
bool msgq_try_lock ()
 Try to lock message queue.
void msgq_unlock ()
 Unlock message queue.
void msgq_pop ()
 Erase first message from queue.
Messagemsgq_first ()
 Get the first message from the message queue.
bool msgq_empty ()
 Check if queue is empty.
template<class MessageType >
bool msgq_first_is ()
 Check if first message has desired type.
template<class MessageType >
MessageType * msgq_first ()
 Get first message casted to the desired type.
template<class MessageType >
MessageType * msgq_first (MessageType *&msg)
 Get first message casted to the desired type.
template<class MessageType >
MessageType * msgq_first_safe (MessageType *&msg) throw ()
 Get first message casted to the desired type without exceptions.
MessageQueue::MessageIterator msgq_begin ()
 Get start iterator for message queue.
MessageQueue::MessageIterator msgq_end ()
 Get end iterator for message queue.
InterfaceFieldIterator fields ()
 Get iterator over all fields of this interface instance.
InterfaceFieldIterator fields_end ()
 Invalid iterator.
unsigned int num_fields ()
 Get the number of fields in the interface.

Static Public Attributes

static const uint32_t ERROR_NONE = 0u
 ERROR_NONE constant.
static const uint32_t ERROR_MOTOR = 1u
 ERROR_MOTOR constant.
static const uint32_t ERROR_OBSTRUCTION = 2u
 ERROR_OBSTRUCTION constant.
static const uint32_t ERROR_UNKNOWN_PLACE = 4u
 ERROR_UNKNOWN_PLACE constant.
static const uint32_t FLAG_NONE = 0u
 FLAG_NONE constant.
static const uint32_t FLAG_CART_GOTO = 1u
 FLAG_CART_GOTO constant.
static const uint32_t FLAG_POLAR_GOTO = 2u
 FLAG_POLAR_GOTO constant.
static const uint32_t FLAG_PLACE_GOTO = 4u
 FLAG_PLACE_GOTO constant.
static const uint32_t FLAG_UPDATES_DEST_DIST = 8u
 FLAG_UPDATES_DEST_DIST constant.
static const uint32_t FLAG_SECURITY_DISTANCE = 16u
 FLAG_SECURITY_DISTANCE constant.
static const uint32_t FLAG_ESCAPING = 32u
 FLAG_ESCAPING constant.

Additional Inherited Members

- Static Public Member Functions inherited from fawkes::Interface
static void parse_uid (const char *uid, char **type, char **id)
 Parse UID to type and ID strings.
- Protected Member Functions inherited from fawkes::Interface
 Interface ()
 Constructor.
void set_hash (unsigned char *ihash)
 Set hash.
void add_fieldinfo (interface_fieldtype_t type, const char *name, size_t length, void *value, const char *enumtype=0)
 Add an entry to the field info list.
void add_messageinfo (const char *name)
 Add an entry to the message info list.
- Protected Attributes inherited from fawkes::Interface
void * data_ptr
 Pointer to local memory storage.
unsigned int data_size
 Minimal data size to hold data storage.
bool data_changed
 Indicator if data has changed.
interface_data_ts_tdata_ts
 Pointer to data casted to timestamp struct.

Detailed Description

NavigatorInterface Fawkes BlackBoard Interface.

The navigator interface is used by the navigator to export information about the current status of the navigator and to define all messages by which the navigator can be instructed.

There are three coordinate systems, the robot system which is a right-handed cartesian coordinate system with the robot in its origin, X axis pointing forward, Y pointing to the left and Z pointing upwards. The second coordinate system is the so-called navigator system. It is a coordinate system similar to the robot system, but the origin is defined on the initialization of the navigator. The last system is the odometry system. It is again a similar system, but the origin is reset from time to time and the robot's position in this system gives the odometry deltas.

Definition at line 33 of file NavigatorInterface.h.


Member Function Documentation

void fawkes::NavigatorInterface::copy_values ( const Interface other)
virtual

Copy values from other interface.

Parameters:
otherother interface to copy values from

Implements fawkes::Interface.

Definition at line 572 of file NavigatorInterface.cpp.

References fawkes::Interface::type().

Message * fawkes::NavigatorInterface::create_message ( const char *  type) const
virtual

Create message based on type name.

This will create a new message of the given type. The type must be given without the InterfaceName:: prefix but just the plain class name of the message.

Parameters:
typemessage type
Returns:
message of the given type, empty
Exceptions:
UnknownTypeExceptionthrown if this interface cannot create a message of the given type.

Implements fawkes::Interface.

Definition at line 539 of file NavigatorInterface.cpp.

float fawkes::NavigatorInterface::dest_dist ( ) const

Get dest_dist value.

Distance to destination in m.

Returns:
dest_dist value

Definition at line 309 of file NavigatorInterface.cpp.

float fawkes::NavigatorInterface::dest_ori ( ) const

Get dest_ori value.

Orientation of the current destination, or 0.0 if no target has been set.

Returns:
dest_ori value

Definition at line 278 of file NavigatorInterface.cpp.

float fawkes::NavigatorInterface::dest_x ( ) const

Get dest_x value.

X-coordinate of the current destination, or 0.0 if no target has been set.

Returns:
dest_x value

Definition at line 216 of file NavigatorInterface.cpp.

float fawkes::NavigatorInterface::dest_y ( ) const

Get dest_y value.

Y-coordinate of the current destination, or 0.0 if no target has been set.

Returns:
dest_y value

Definition at line 247 of file NavigatorInterface.cpp.

const char * fawkes::NavigatorInterface::enum_tostring ( const char *  enumtype,
int  val 
) const
virtual

Convert arbitrary enum value to string.

Given the string representation of the enum type and the value this method returns the string representation of the specific value, or the string UNKNOWN if the value is not defined. An exception is thrown if the enum type is invalid.

Parameters:
enumtypeenum type as string
valvalue to convert
Returns:
string representation of value
Exceptions:
UnknownTypeExceptionthrown if enumtype is not specified for interface.

Implements fawkes::Interface.

Definition at line 583 of file NavigatorInterface.cpp.

uint32_t fawkes::NavigatorInterface::error_code ( ) const

Get error_code value.

Failure code set if final is true. 0 if no error occured, an error code from ERROR_* constants otherwise (or a bit-wise combination).

Returns:
error_code value

Definition at line 408 of file NavigatorInterface.cpp.

uint32_t fawkes::NavigatorInterface::flags ( ) const

Get flags value.

Bit-wise combination of FLAG_* constants denoting navigator component features.

Returns:
flags value

Definition at line 122 of file NavigatorInterface.cpp.

bool fawkes::NavigatorInterface::is_escaping_enabled ( ) const

Get escaping_enabled value.

This is used for navigation components with integrated collision avoidance, to check whether the navigator should stop when an obstacle obstructs the path, or if it should escape.

Returns:
escaping_enabled value

Definition at line 508 of file NavigatorInterface.cpp.

bool fawkes::NavigatorInterface::is_final ( ) const

Get final value.

True, if the last goto command has been finished, false if it is still running

Returns:
final value

Definition at line 374 of file NavigatorInterface.cpp.

float fawkes::NavigatorInterface::max_velocity ( ) const

Get max_velocity value.

Maximum velocity

Returns:
max_velocity value

Definition at line 441 of file NavigatorInterface.cpp.

size_t fawkes::NavigatorInterface::maxlenof_dest_dist ( ) const

Get maximum length of dest_dist value.

Returns:
length of dest_dist value, can be length of the array or number of maximum number of characters for a string

Definition at line 319 of file NavigatorInterface.cpp.

size_t fawkes::NavigatorInterface::maxlenof_dest_ori ( ) const

Get maximum length of dest_ori value.

Returns:
length of dest_ori value, can be length of the array or number of maximum number of characters for a string

Definition at line 288 of file NavigatorInterface.cpp.

size_t fawkes::NavigatorInterface::maxlenof_dest_x ( ) const

Get maximum length of dest_x value.

Returns:
length of dest_x value, can be length of the array or number of maximum number of characters for a string

Definition at line 226 of file NavigatorInterface.cpp.

size_t fawkes::NavigatorInterface::maxlenof_dest_y ( ) const

Get maximum length of dest_y value.

Returns:
length of dest_y value, can be length of the array or number of maximum number of characters for a string

Definition at line 257 of file NavigatorInterface.cpp.

size_t fawkes::NavigatorInterface::maxlenof_error_code ( ) const

Get maximum length of error_code value.

Returns:
length of error_code value, can be length of the array or number of maximum number of characters for a string

Definition at line 418 of file NavigatorInterface.cpp.

size_t fawkes::NavigatorInterface::maxlenof_escaping_enabled ( ) const

Get maximum length of escaping_enabled value.

Returns:
length of escaping_enabled value, can be length of the array or number of maximum number of characters for a string

Definition at line 518 of file NavigatorInterface.cpp.

size_t fawkes::NavigatorInterface::maxlenof_final ( ) const

Get maximum length of final value.

Returns:
length of final value, can be length of the array or number of maximum number of characters for a string

Definition at line 384 of file NavigatorInterface.cpp.

size_t fawkes::NavigatorInterface::maxlenof_flags ( ) const

Get maximum length of flags value.

Returns:
length of flags value, can be length of the array or number of maximum number of characters for a string

Definition at line 132 of file NavigatorInterface.cpp.

size_t fawkes::NavigatorInterface::maxlenof_max_velocity ( ) const

Get maximum length of max_velocity value.

Returns:
length of max_velocity value, can be length of the array or number of maximum number of characters for a string

Definition at line 451 of file NavigatorInterface.cpp.

size_t fawkes::NavigatorInterface::maxlenof_msgid ( ) const

Get maximum length of msgid value.

Returns:
length of msgid value, can be length of the array or number of maximum number of characters for a string

Definition at line 351 of file NavigatorInterface.cpp.

size_t fawkes::NavigatorInterface::maxlenof_security_distance ( ) const

Get maximum length of security_distance value.

Returns:
length of security_distance value, can be length of the array or number of maximum number of characters for a string

Definition at line 483 of file NavigatorInterface.cpp.

size_t fawkes::NavigatorInterface::maxlenof_x ( ) const

Get maximum length of x value.

Returns:
length of x value, can be length of the array or number of maximum number of characters for a string

Definition at line 164 of file NavigatorInterface.cpp.

size_t fawkes::NavigatorInterface::maxlenof_y ( ) const

Get maximum length of y value.

Returns:
length of y value, can be length of the array or number of maximum number of characters for a string

Definition at line 195 of file NavigatorInterface.cpp.

bool fawkes::NavigatorInterface::message_valid ( const Message message) const
virtual

Check if message is valid and can be enqueued.

Parameters:
messageMessage to check
Returns:
true if the message is valid, false otherwise.

Implements fawkes::Interface.

Definition at line 1654 of file NavigatorInterface.cpp.

uint32_t fawkes::NavigatorInterface::msgid ( ) const

Get msgid value.

The ID of the message that is currently being processed, or 0 if no message is being processed.

Returns:
msgid value

Definition at line 341 of file NavigatorInterface.cpp.

float fawkes::NavigatorInterface::security_distance ( ) const

Get security_distance value.

Security distance to keep to obstacles

Returns:
security_distance value

Definition at line 473 of file NavigatorInterface.cpp.

void fawkes::NavigatorInterface::set_dest_dist ( const float  new_dest_dist)

Set dest_dist value.

Distance to destination in m.

Parameters:
new_dest_distnew dest_dist value

Definition at line 329 of file NavigatorInterface.cpp.

References fawkes::Interface::data_changed.

void fawkes::NavigatorInterface::set_dest_ori ( const float  new_dest_ori)

Set dest_ori value.

Orientation of the current destination, or 0.0 if no target has been set.

Parameters:
new_dest_orinew dest_ori value

Definition at line 298 of file NavigatorInterface.cpp.

References fawkes::Interface::data_changed.

Referenced by RosNavigatorThread::loop().

void fawkes::NavigatorInterface::set_dest_x ( const float  new_dest_x)

Set dest_x value.

X-coordinate of the current destination, or 0.0 if no target has been set.

Parameters:
new_dest_xnew dest_x value

Definition at line 236 of file NavigatorInterface.cpp.

References fawkes::Interface::data_changed.

Referenced by RosNavigatorThread::loop().

void fawkes::NavigatorInterface::set_dest_y ( const float  new_dest_y)

Set dest_y value.

Y-coordinate of the current destination, or 0.0 if no target has been set.

Parameters:
new_dest_ynew dest_y value

Definition at line 267 of file NavigatorInterface.cpp.

References fawkes::Interface::data_changed.

Referenced by RosNavigatorThread::loop().

void fawkes::NavigatorInterface::set_error_code ( const uint32_t  new_error_code)

Set error_code value.

Failure code set if final is true. 0 if no error occured, an error code from ERROR_* constants otherwise (or a bit-wise combination).

Parameters:
new_error_codenew error_code value

Definition at line 430 of file NavigatorInterface.cpp.

References fawkes::Interface::data_changed.

void fawkes::NavigatorInterface::set_escaping_enabled ( const bool  new_escaping_enabled)

Set escaping_enabled value.

This is used for navigation components with integrated collision avoidance, to check whether the navigator should stop when an obstacle obstructs the path, or if it should escape.

Parameters:
new_escaping_enablednew escaping_enabled value

Definition at line 531 of file NavigatorInterface.cpp.

References fawkes::Interface::data_changed.

void fawkes::NavigatorInterface::set_final ( const bool  new_final)

Set final value.

True, if the last goto command has been finished, false if it is still running

Parameters:
new_finalnew final value

Definition at line 395 of file NavigatorInterface.cpp.

References fawkes::Interface::data_changed.

void fawkes::NavigatorInterface::set_flags ( const uint32_t  new_flags)

Set flags value.

Bit-wise combination of FLAG_* constants denoting navigator component features.

Parameters:
new_flagsnew flags value

Definition at line 143 of file NavigatorInterface.cpp.

References fawkes::Interface::data_changed.

void fawkes::NavigatorInterface::set_max_velocity ( const float  new_max_velocity)

Set max_velocity value.

Maximum velocity

Parameters:
new_max_velocitynew max_velocity value

Definition at line 461 of file NavigatorInterface.cpp.

References fawkes::Interface::data_changed.

Referenced by RosNavigatorThread::loop().

void fawkes::NavigatorInterface::set_msgid ( const uint32_t  new_msgid)

Set msgid value.

The ID of the message that is currently being processed, or 0 if no message is being processed.

Parameters:
new_msgidnew msgid value

Definition at line 362 of file NavigatorInterface.cpp.

References fawkes::Interface::data_changed.

Referenced by RosNavigatorThread::loop().

void fawkes::NavigatorInterface::set_security_distance ( const float  new_security_distance)

Set security_distance value.

Security distance to keep to obstacles

Parameters:
new_security_distancenew security_distance value

Definition at line 494 of file NavigatorInterface.cpp.

References fawkes::Interface::data_changed.

Referenced by RosNavigatorThread::loop().

void fawkes::NavigatorInterface::set_x ( const float  new_x)

Set x value.

Current X-coordinate in the navigator coordinate system.

Parameters:
new_xnew x value

Definition at line 174 of file NavigatorInterface.cpp.

References fawkes::Interface::data_changed.

void fawkes::NavigatorInterface::set_y ( const float  new_y)

Set y value.

Current Y-coordinate in the navigator coordinate system.

Parameters:
new_ynew y value

Definition at line 205 of file NavigatorInterface.cpp.

References fawkes::Interface::data_changed.

float fawkes::NavigatorInterface::x ( ) const

Get x value.

Current X-coordinate in the navigator coordinate system.

Returns:
x value

Definition at line 154 of file NavigatorInterface.cpp.

float fawkes::NavigatorInterface::y ( ) const

Get y value.

Current Y-coordinate in the navigator coordinate system.

Returns:
y value

Definition at line 185 of file NavigatorInterface.cpp.


Member Data Documentation

const uint32_t fawkes::NavigatorInterface::ERROR_MOTOR = 1u
static

ERROR_MOTOR constant.

Definition at line 41 of file NavigatorInterface.h.

const uint32_t fawkes::NavigatorInterface::ERROR_NONE = 0u
static

ERROR_NONE constant.

Definition at line 40 of file NavigatorInterface.h.

const uint32_t fawkes::NavigatorInterface::ERROR_OBSTRUCTION = 2u
static

ERROR_OBSTRUCTION constant.

Definition at line 42 of file NavigatorInterface.h.

const uint32_t fawkes::NavigatorInterface::ERROR_UNKNOWN_PLACE = 4u
static

ERROR_UNKNOWN_PLACE constant.

Definition at line 43 of file NavigatorInterface.h.

const uint32_t fawkes::NavigatorInterface::FLAG_CART_GOTO = 1u
static

FLAG_CART_GOTO constant.

Definition at line 45 of file NavigatorInterface.h.

const uint32_t fawkes::NavigatorInterface::FLAG_ESCAPING = 32u
static

FLAG_ESCAPING constant.

Definition at line 50 of file NavigatorInterface.h.

const uint32_t fawkes::NavigatorInterface::FLAG_NONE = 0u
static

FLAG_NONE constant.

Definition at line 44 of file NavigatorInterface.h.

const uint32_t fawkes::NavigatorInterface::FLAG_PLACE_GOTO = 4u
static

FLAG_PLACE_GOTO constant.

Definition at line 47 of file NavigatorInterface.h.

const uint32_t fawkes::NavigatorInterface::FLAG_POLAR_GOTO = 2u
static

FLAG_POLAR_GOTO constant.

Definition at line 46 of file NavigatorInterface.h.

const uint32_t fawkes::NavigatorInterface::FLAG_SECURITY_DISTANCE = 16u
static

FLAG_SECURITY_DISTANCE constant.

Definition at line 49 of file NavigatorInterface.h.

const uint32_t fawkes::NavigatorInterface::FLAG_UPDATES_DEST_DIST = 8u
static

FLAG_UPDATES_DEST_DIST constant.

Definition at line 48 of file NavigatorInterface.h.


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