Fawkes API  Fawkes Development Version
NavigatorInterface.h
1 
2 /***************************************************************************
3  * NavigatorInterface.h - Fawkes BlackBoard Interface - NavigatorInterface
4  *
5  * Templated created: Thu Oct 12 10:49:19 2006
6  * Copyright 2007-2009 Martin Liebenberg, Daniel Beck, Tim Niemueller
7  *
8  ****************************************************************************/
9 
10 /* This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version. A runtime exception applies to
14  * this software (see LICENSE.GPL_WRE file mentioned below for details).
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU Library General Public License for more details.
20  *
21  * Read the full text in the LICENSE.GPL_WRE file in the doc directory.
22  */
23 
24 #ifndef _INTERFACES_NAVIGATORINTERFACE_H_
25 #define _INTERFACES_NAVIGATORINTERFACE_H_
26 
27 #include <interface/interface.h>
28 #include <interface/message.h>
29 #include <interface/field_iterator.h>
30 
31 namespace fawkes {
32 
34 {
35  /// @cond INTERNALS
36  INTERFACE_MGMT_FRIENDS(NavigatorInterface)
37  /// @endcond
38  public:
39  /* constants */
40  static const uint32_t ERROR_NONE;
41  static const uint32_t ERROR_MOTOR;
42  static const uint32_t ERROR_OBSTRUCTION;
43  static const uint32_t ERROR_UNKNOWN_PLACE;
44  static const uint32_t ERROR_PATH_GEN_FAIL;
45  static const uint32_t FLAG_NONE;
46  static const uint32_t FLAG_CART_GOTO;
47  static const uint32_t FLAG_POLAR_GOTO;
48  static const uint32_t FLAG_PLACE_GOTO;
49  static const uint32_t FLAG_UPDATES_DEST_DIST;
50  static const uint32_t FLAG_SECURITY_DISTANCE;
51  static const uint32_t FLAG_ESCAPING;
52 
53  /** Drive modes enum */
54  typedef enum {
55  MovingNotAllowed /**< Moving not allowed constant */,
56  Forward /**< Moving forward constant */,
57  AllowBackward /**< Moving allow backward constant */,
58  Backward /**< Moving backward constant */,
59  ESCAPE /**< Escape constant */
60  } DriveMode;
61  const char * tostring_DriveMode(DriveMode value) const;
62 
63  /** Orientation mode enum */
64  typedef enum {
65  OrientAtTarget /**< Orient when at target, if orientation is given */,
66  OrientDuringTravel /**< Orient during travel BUT NOT at target, if omnidirectional platform and orientation is given */
68  const char * tostring_OrientationMode(OrientationMode value) const;
69 
70  private:
71  /** Internal data storage, do NOT modify! */
72  typedef struct __attribute__((packed)) {
73  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
74  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
75  uint32_t flags; /**< Bit-wise combination of
76  FLAG_* constants denoting navigator component features. */
77  float x; /**< Current X-coordinate in the navigator coordinate system. */
78  float y; /**< Current Y-coordinate in the navigator coordinate system. */
79  float dest_x; /**< X-coordinate of the current destination, or 0.0 if no target has been set. */
80  float dest_y; /**< Y-coordinate of the current destination, or 0.0 if no target has been set. */
81  float dest_ori; /**< Orientation of the current destination, or 0.0 if no target has been set. */
82  float dest_dist; /**< Distance to destination in m. */
83  uint32_t msgid; /**< The ID of the message that is currently being
84  processed, or 0 if no message is being processed. */
85  bool final; /**< True, if the last goto command has been finished,
86  false if it is still running */
87  uint32_t error_code; /**< Failure code set if
88  final is true. 0 if no error occured, an error code from ERROR_*
89  constants otherwise (or a bit-wise combination). */
90  float max_velocity; /**< Maximum velocity */
91  float max_rotation; /**< Maximum rotation velocity */
92  float security_distance; /**< Security distance to keep to obstacles */
93  bool escaping_enabled; /**< This is used for navigation components with integrated collision avoidance,
94  to check whether the navigator should stop when an obstacle obstructs the path, or if it should escape. */
95  int32_t drive_mode; /**< Current drive mode */
96  bool auto_drive_mode; /**< True, if the drive mode should be automatically decided each time.
97  False, if the drive mode should not automatically change, which is the case when sending
98  a SetAutoDriveMode-message (otherwise the navigator might ignore that value). */
99  bool stop_at_target; /**< Stop when target is reached? */
100  int32_t orientation_mode; /**< Mode how/when to orientate if orientation is given */
101  char target_frame[64]; /**< The target frame to plan into */
102  } NavigatorInterface_data_t;
103 
104  NavigatorInterface_data_t *data;
105 
106  interface_enum_map_t enum_map_DriveMode;
107  interface_enum_map_t enum_map_OrientationMode;
108  public:
109  /* messages */
110  class StopMessage : public Message
111  {
112  private:
113  /** Internal data storage, do NOT modify! */
114  typedef struct __attribute__((packed)) {
115  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
116  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
117  uint32_t msgid; /**<
118  If zero, stops any motion. If non-zero, the component shall only
119  stop the motion if the currently executed command was received
120  through a message with that specific ID.
121 
122  Use the specific version whenever possible. It avoids a race
123  condition if one intstructing component sends a stop, and
124  another a new drive command at the same time.
125  */
126  } StopMessage_data_t;
127 
128  StopMessage_data_t *data;
129 
130  interface_enum_map_t enum_map_DriveMode;
131  interface_enum_map_t enum_map_OrientationMode;
132  public:
133  StopMessage(const uint32_t ini_msgid);
134  StopMessage();
135  ~StopMessage();
136 
137  StopMessage(const StopMessage *m);
138  /* Methods */
139  uint32_t msgid() const;
140  void set_msgid(const uint32_t new_msgid);
141  size_t maxlenof_msgid() const;
142  virtual Message * clone() const;
143  };
144 
145  class TurnMessage : public Message
146  {
147  private:
148  /** Internal data storage, do NOT modify! */
149  typedef struct __attribute__((packed)) {
150  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
151  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
152  float angle; /**< Angle of the turn. */
153  float velocity; /**< The desired turning velocity in rad/s,
154  set to zero to use default value. */
155  } TurnMessage_data_t;
156 
157  TurnMessage_data_t *data;
158 
159  interface_enum_map_t enum_map_DriveMode;
160  interface_enum_map_t enum_map_OrientationMode;
161  public:
162  TurnMessage(const float ini_angle, const float ini_velocity);
163  TurnMessage();
164  ~TurnMessage();
165 
166  TurnMessage(const TurnMessage *m);
167  /* Methods */
168  float angle() const;
169  void set_angle(const float new_angle);
170  size_t maxlenof_angle() const;
171  float velocity() const;
172  void set_velocity(const float new_velocity);
173  size_t maxlenof_velocity() const;
174  virtual Message * clone() const;
175  };
176 
178  {
179  private:
180  /** Internal data storage, do NOT modify! */
181  typedef struct __attribute__((packed)) {
182  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
183  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
184  float x; /**< X-coordinate of the target, in the robot's coordinate system. */
185  float y; /**< Y-coordinate of the target, in the robot's coordinate system. */
186  float orientation; /**< The desired orientation of the robot at the target. */
187  } CartesianGotoMessage_data_t;
188 
189  CartesianGotoMessage_data_t *data;
190 
191  interface_enum_map_t enum_map_DriveMode;
192  interface_enum_map_t enum_map_OrientationMode;
193  public:
194  CartesianGotoMessage(const float ini_x, const float ini_y, const float ini_orientation);
197 
199  /* Methods */
200  float x() const;
201  void set_x(const float new_x);
202  size_t maxlenof_x() const;
203  float y() const;
204  void set_y(const float new_y);
205  size_t maxlenof_y() const;
206  float orientation() const;
207  void set_orientation(const float new_orientation);
208  size_t maxlenof_orientation() const;
209  virtual Message * clone() const;
210  };
211 
213  {
214  private:
215  /** Internal data storage, do NOT modify! */
216  typedef struct __attribute__((packed)) {
217  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
218  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
219  float x; /**< X-coordinate of the target, in the robot's coordinate system. */
220  float y; /**< Y-coordinate of the target, in the robot's coordinate system. */
221  float orientation; /**< The desired orientation of the robot at the target. */
222  char target_frame[64]; /**< The target frame to plan in. */
223  } CartesianGotoWithFrameMessage_data_t;
224 
225  CartesianGotoWithFrameMessage_data_t *data;
226 
227  interface_enum_map_t enum_map_DriveMode;
228  interface_enum_map_t enum_map_OrientationMode;
229  public:
230  CartesianGotoWithFrameMessage(const float ini_x, const float ini_y, const float ini_orientation, const char * ini_target_frame);
233 
235  /* Methods */
236  float x() const;
237  void set_x(const float new_x);
238  size_t maxlenof_x() const;
239  float y() const;
240  void set_y(const float new_y);
241  size_t maxlenof_y() const;
242  float orientation() const;
243  void set_orientation(const float new_orientation);
244  size_t maxlenof_orientation() const;
245  char * target_frame() const;
246  void set_target_frame(const char * new_target_frame);
247  size_t maxlenof_target_frame() const;
248  virtual Message * clone() const;
249  };
250 
251  class PolarGotoMessage : public Message
252  {
253  private:
254  /** Internal data storage, do NOT modify! */
255  typedef struct __attribute__((packed)) {
256  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
257  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
258  float phi; /**< Angle between the robot's front and the target. */
259  float dist; /**< Distance to the target. */
260  float orientation; /**< The desired orientation of the robot at the target. */
261  } PolarGotoMessage_data_t;
262 
263  PolarGotoMessage_data_t *data;
264 
265  interface_enum_map_t enum_map_DriveMode;
266  interface_enum_map_t enum_map_OrientationMode;
267  public:
268  PolarGotoMessage(const float ini_phi, const float ini_dist, const float ini_orientation);
271 
273  /* Methods */
274  float phi() const;
275  void set_phi(const float new_phi);
276  size_t maxlenof_phi() const;
277  float dist() const;
278  void set_dist(const float new_dist);
279  size_t maxlenof_dist() const;
280  float orientation() const;
281  void set_orientation(const float new_orientation);
282  size_t maxlenof_orientation() const;
283  virtual Message * clone() const;
284  };
285 
286  class PlaceGotoMessage : public Message
287  {
288  private:
289  /** Internal data storage, do NOT modify! */
290  typedef struct __attribute__((packed)) {
291  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
292  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
293  char place[64]; /**< Place to go to. */
294  } PlaceGotoMessage_data_t;
295 
296  PlaceGotoMessage_data_t *data;
297 
298  interface_enum_map_t enum_map_DriveMode;
299  interface_enum_map_t enum_map_OrientationMode;
300  public:
301  PlaceGotoMessage(const char * ini_place);
304 
306  /* Methods */
307  char * place() const;
308  void set_place(const char * new_place);
309  size_t maxlenof_place() const;
310  virtual Message * clone() const;
311  };
312 
314  {
315  private:
316  /** Internal data storage, do NOT modify! */
317  typedef struct __attribute__((packed)) {
318  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
319  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
320  char place[64]; /**< Place to go to. */
321  float orientation; /**< The desired orientation of the robot at the target. */
322  } PlaceWithOriGotoMessage_data_t;
323 
324  PlaceWithOriGotoMessage_data_t *data;
325 
326  interface_enum_map_t enum_map_DriveMode;
327  interface_enum_map_t enum_map_OrientationMode;
328  public:
329  PlaceWithOriGotoMessage(const char * ini_place, const float ini_orientation);
332 
334  /* Methods */
335  char * place() const;
336  void set_place(const char * new_place);
337  size_t maxlenof_place() const;
338  float orientation() const;
339  void set_orientation(const float new_orientation);
340  size_t maxlenof_orientation() const;
341  virtual Message * clone() const;
342  };
343 
344  class ObstacleMessage : public Message
345  {
346  private:
347  /** Internal data storage, do NOT modify! */
348  typedef struct __attribute__((packed)) {
349  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
350  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
351  float x; /**< X-coordinate of the obstacle. */
352  float y; /**< Y-coordinate of the obstacle. */
353  float width; /**< Width of the obstacle. */
354  } ObstacleMessage_data_t;
355 
356  ObstacleMessage_data_t *data;
357 
358  interface_enum_map_t enum_map_DriveMode;
359  interface_enum_map_t enum_map_OrientationMode;
360  public:
361  ObstacleMessage(const float ini_x, const float ini_y, const float ini_width);
362  ObstacleMessage();
364 
366  /* Methods */
367  float x() const;
368  void set_x(const float new_x);
369  size_t maxlenof_x() const;
370  float y() const;
371  void set_y(const float new_y);
372  size_t maxlenof_y() const;
373  float width() const;
374  void set_width(const float new_width);
375  size_t maxlenof_width() const;
376  virtual Message * clone() const;
377  };
378 
380  {
381  private:
382  /** Internal data storage, do NOT modify! */
383  typedef struct __attribute__((packed)) {
384  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
385  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
386  } ResetOdometryMessage_data_t;
387 
388  ResetOdometryMessage_data_t *data;
389 
390  interface_enum_map_t enum_map_DriveMode;
391  interface_enum_map_t enum_map_OrientationMode;
392  public:
395 
397  /* Methods */
398  virtual Message * clone() const;
399  };
400 
402  {
403  private:
404  /** Internal data storage, do NOT modify! */
405  typedef struct __attribute__((packed)) {
406  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
407  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
408  float max_velocity; /**< Maximum velocity */
409  } SetMaxVelocityMessage_data_t;
410 
411  SetMaxVelocityMessage_data_t *data;
412 
413  interface_enum_map_t enum_map_DriveMode;
414  interface_enum_map_t enum_map_OrientationMode;
415  public:
416  SetMaxVelocityMessage(const float ini_max_velocity);
419 
421  /* Methods */
422  float max_velocity() const;
423  void set_max_velocity(const float new_max_velocity);
424  size_t maxlenof_max_velocity() const;
425  virtual Message * clone() const;
426  };
427 
429  {
430  private:
431  /** Internal data storage, do NOT modify! */
432  typedef struct __attribute__((packed)) {
433  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
434  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
435  float max_rotation; /**< Maximum rotation velocity */
436  } SetMaxRotationMessage_data_t;
437 
438  SetMaxRotationMessage_data_t *data;
439 
440  interface_enum_map_t enum_map_DriveMode;
441  interface_enum_map_t enum_map_OrientationMode;
442  public:
443  SetMaxRotationMessage(const float ini_max_rotation);
446 
448  /* Methods */
449  float max_rotation() const;
450  void set_max_rotation(const float new_max_rotation);
451  size_t maxlenof_max_rotation() const;
452  virtual Message * clone() const;
453  };
454 
456  {
457  private:
458  /** Internal data storage, do NOT modify! */
459  typedef struct __attribute__((packed)) {
460  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
461  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
462  bool escaping_enabled; /**< This is used for navigation components with integrated collision avoidance,
463  to check whether the navigator should stop when an obstacle obstructs the path, or if it should escape. */
464  } SetEscapingMessage_data_t;
465 
466  SetEscapingMessage_data_t *data;
467 
468  interface_enum_map_t enum_map_DriveMode;
469  interface_enum_map_t enum_map_OrientationMode;
470  public:
471  SetEscapingMessage(const bool ini_escaping_enabled);
474 
476  /* Methods */
477  bool is_escaping_enabled() const;
478  void set_escaping_enabled(const bool new_escaping_enabled);
479  size_t maxlenof_escaping_enabled() const;
480  virtual Message * clone() const;
481  };
482 
484  {
485  private:
486  /** Internal data storage, do NOT modify! */
487  typedef struct __attribute__((packed)) {
488  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
489  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
490  float security_distance; /**< Security distance to keep to obstacles */
491  } SetSecurityDistanceMessage_data_t;
492 
493  SetSecurityDistanceMessage_data_t *data;
494 
495  interface_enum_map_t enum_map_DriveMode;
496  interface_enum_map_t enum_map_OrientationMode;
497  public:
498  SetSecurityDistanceMessage(const float ini_security_distance);
501 
503  /* Methods */
504  float security_distance() const;
505  void set_security_distance(const float new_security_distance);
506  size_t maxlenof_security_distance() const;
507  virtual Message * clone() const;
508  };
509 
511  {
512  private:
513  /** Internal data storage, do NOT modify! */
514  typedef struct __attribute__((packed)) {
515  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
516  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
517  int32_t drive_mode; /**< Current drive mode */
518  } SetDriveModeMessage_data_t;
519 
520  SetDriveModeMessage_data_t *data;
521 
522  interface_enum_map_t enum_map_DriveMode;
523  interface_enum_map_t enum_map_OrientationMode;
524  public:
525  SetDriveModeMessage(const DriveMode ini_drive_mode);
528 
530  /* Methods */
531  DriveMode drive_mode() const;
532  void set_drive_mode(const DriveMode new_drive_mode);
533  size_t maxlenof_drive_mode() const;
534  virtual Message * clone() const;
535  };
536 
538  {
539  private:
540  /** Internal data storage, do NOT modify! */
541  typedef struct __attribute__((packed)) {
542  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
543  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
544  bool stop_at_target; /**< Stop when target is reached? */
545  } SetStopAtTargetMessage_data_t;
546 
547  SetStopAtTargetMessage_data_t *data;
548 
549  interface_enum_map_t enum_map_DriveMode;
550  interface_enum_map_t enum_map_OrientationMode;
551  public:
552  SetStopAtTargetMessage(const bool ini_stop_at_target);
555 
557  /* Methods */
558  bool is_stop_at_target() const;
559  void set_stop_at_target(const bool new_stop_at_target);
560  size_t maxlenof_stop_at_target() const;
561  virtual Message * clone() const;
562  };
563 
565  {
566  private:
567  /** Internal data storage, do NOT modify! */
568  typedef struct __attribute__((packed)) {
569  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
570  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
571  int32_t orientation_mode; /**< Mode how/when to orientate if orientation is given */
572  } SetOrientationModeMessage_data_t;
573 
574  SetOrientationModeMessage_data_t *data;
575 
576  interface_enum_map_t enum_map_DriveMode;
577  interface_enum_map_t enum_map_OrientationMode;
578  public:
579  SetOrientationModeMessage(const OrientationMode ini_orientation_mode);
582 
584  /* Methods */
586  void set_orientation_mode(const OrientationMode new_orientation_mode);
587  size_t maxlenof_orientation_mode() const;
588  virtual Message * clone() const;
589  };
590 
592  {
593  private:
594  /** Internal data storage, do NOT modify! */
595  typedef struct __attribute__((packed)) {
596  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
597  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
598  } ResetParametersMessage_data_t;
599 
600  ResetParametersMessage_data_t *data;
601 
602  interface_enum_map_t enum_map_DriveMode;
603  interface_enum_map_t enum_map_OrientationMode;
604  public:
607 
609  /* Methods */
610  virtual Message * clone() const;
611  };
612 
613  virtual bool message_valid(const Message *message) const;
614  private:
617 
618  public:
619  /* Methods */
620  uint32_t flags() const;
621  void set_flags(const uint32_t new_flags);
622  size_t maxlenof_flags() const;
623  float x() const;
624  void set_x(const float new_x);
625  size_t maxlenof_x() const;
626  float y() const;
627  void set_y(const float new_y);
628  size_t maxlenof_y() const;
629  float dest_x() const;
630  void set_dest_x(const float new_dest_x);
631  size_t maxlenof_dest_x() const;
632  float dest_y() const;
633  void set_dest_y(const float new_dest_y);
634  size_t maxlenof_dest_y() const;
635  float dest_ori() const;
636  void set_dest_ori(const float new_dest_ori);
637  size_t maxlenof_dest_ori() const;
638  float dest_dist() const;
639  void set_dest_dist(const float new_dest_dist);
640  size_t maxlenof_dest_dist() const;
641  uint32_t msgid() const;
642  void set_msgid(const uint32_t new_msgid);
643  size_t maxlenof_msgid() const;
644  bool is_final() const;
645  void set_final(const bool new_final);
646  size_t maxlenof_final() const;
647  uint32_t error_code() const;
648  void set_error_code(const uint32_t new_error_code);
649  size_t maxlenof_error_code() const;
650  float max_velocity() const;
651  void set_max_velocity(const float new_max_velocity);
652  size_t maxlenof_max_velocity() const;
653  float max_rotation() const;
654  void set_max_rotation(const float new_max_rotation);
655  size_t maxlenof_max_rotation() const;
656  float security_distance() const;
657  void set_security_distance(const float new_security_distance);
658  size_t maxlenof_security_distance() const;
659  bool is_escaping_enabled() const;
660  void set_escaping_enabled(const bool new_escaping_enabled);
661  size_t maxlenof_escaping_enabled() const;
662  DriveMode drive_mode() const;
663  void set_drive_mode(const DriveMode new_drive_mode);
664  size_t maxlenof_drive_mode() const;
665  bool is_auto_drive_mode() const;
666  void set_auto_drive_mode(const bool new_auto_drive_mode);
667  size_t maxlenof_auto_drive_mode() const;
668  bool is_stop_at_target() const;
669  void set_stop_at_target(const bool new_stop_at_target);
670  size_t maxlenof_stop_at_target() const;
672  void set_orientation_mode(const OrientationMode new_orientation_mode);
673  size_t maxlenof_orientation_mode() const;
674  char * target_frame() const;
675  void set_target_frame(const char * new_target_frame);
676  size_t maxlenof_target_frame() const;
677  virtual Message * create_message(const char *type) const;
678 
679  virtual void copy_values(const Interface *other);
680  virtual const char * enum_tostring(const char *enumtype, int val) const;
681 
682 };
683 
684 } // end namespace fawkes
685 
686 #endif
bool is_auto_drive_mode() const
Get auto_drive_mode value.
size_t maxlenof_orientation() const
Get maximum length of orientation value.
size_t maxlenof_max_rotation() const
Get maximum length of max_rotation value.
void set_target_frame(const char *new_target_frame)
Set target_frame value.
size_t maxlenof_phi() const
Get maximum length of phi value.
float max_velocity() const
Get max_velocity value.
size_t maxlenof_drive_mode() const
Get maximum length of drive_mode value.
size_t maxlenof_y() const
Get maximum length of y value.
void set_stop_at_target(const bool new_stop_at_target)
Set stop_at_target value.
static const uint32_t ERROR_PATH_GEN_FAIL
ERROR_PATH_GEN_FAIL constant.
Base class for all messages passed through interfaces in Fawkes BlackBoard.
Definition: message.h:41
size_t maxlenof_msgid() const
Get maximum length of msgid value.
void set_dist(const float new_dist)
Set dist value.
void set_angle(const float new_angle)
Set angle value.
void set_escaping_enabled(const bool new_escaping_enabled)
Set escaping_enabled value.
size_t maxlenof_dist() const
Get maximum length of dist value.
virtual Message * clone() const
Clone this message.
float orientation() const
Get orientation value.
float velocity() const
Get velocity value.
virtual Message * clone() const
Clone this message.
virtual bool message_valid(const Message *message) const
Check if message is valid and can be enqueued.
size_t maxlenof_orientation_mode() const
Get maximum length of orientation_mode value.
size_t maxlenof_orientation() const
Get maximum length of orientation value.
void set_max_velocity(const float new_max_velocity)
Set max_velocity value.
virtual Message * clone() const
Clone this message.
Fawkes library namespace.
void set_place(const char *new_place)
Set place value.
virtual Message * clone() const
Clone this message.
ObstacleMessage Fawkes BlackBoard Interface Message.
void set_final(const bool new_final)
Set final value.
bool is_stop_at_target() const
Get stop_at_target value.
size_t maxlenof_max_rotation() const
Get maximum length of max_rotation value.
virtual Message * clone() const
Clone this message.
virtual Message * clone() const
Clone this message.
void set_orientation_mode(const OrientationMode new_orientation_mode)
Set orientation_mode value.
OrientationMode
Orientation mode enum.
static const uint32_t ERROR_MOTOR
ERROR_MOTOR constant.
SetSecurityDistanceMessage Fawkes BlackBoard Interface Message.
virtual Message * clone() const
Clone this message.
bool is_escaping_enabled() const
Get escaping_enabled value.
virtual Message * clone() const
Clone this message.
void set_place(const char *new_place)
Set place value.
static const uint32_t FLAG_CART_GOTO
FLAG_CART_GOTO constant.
float max_rotation() const
Get max_rotation value.
size_t maxlenof_orientation() const
Get maximum length of orientation value.
void set_escaping_enabled(const bool new_escaping_enabled)
Set escaping_enabled value.
virtual Message * create_message(const char *type) const
Create message based on type name.
PolarGotoMessage Fawkes BlackBoard Interface Message.
float max_velocity() const
Get max_velocity value.
size_t maxlenof_auto_drive_mode() const
Get maximum length of auto_drive_mode value.
static const uint32_t ERROR_UNKNOWN_PLACE
ERROR_UNKNOWN_PLACE constant.
uint32_t error_code() const
Get error_code value.
virtual Message * clone() const
Clone this message.
void set_orientation(const float new_orientation)
Set orientation value.
virtual Message * clone() const
Clone this message.
SetOrientationModeMessage Fawkes BlackBoard Interface Message.
Base class for all Fawkes BlackBoard interfaces.
Definition: interface.h:78
size_t maxlenof_dest_dist() const
Get maximum length of dest_dist value.
bool is_stop_at_target() const
Get stop_at_target value.
float dest_ori() const
Get dest_ori value.
size_t maxlenof_max_velocity() const
Get maximum length of max_velocity value.
void set_phi(const float new_phi)
Set phi value.
const char * tostring_DriveMode(DriveMode value) const
Convert DriveMode constant to string.
size_t maxlenof_y() const
Get maximum length of y value.
float orientation() const
Get orientation value.
size_t maxlenof_velocity() const
Get maximum length of velocity value.
static const uint32_t FLAG_POLAR_GOTO
FLAG_POLAR_GOTO constant.
size_t maxlenof_x() const
Get maximum length of x value.
void set_security_distance(const float new_security_distance)
Set security_distance value.
SetStopAtTargetMessage Fawkes BlackBoard Interface Message.
SetEscapingMessage Fawkes BlackBoard Interface Message.
OrientationMode orientation_mode() const
Get orientation_mode value.
virtual Message * clone() const
Clone this message.
Orient when at target, if orientation is given.
size_t maxlenof_stop_at_target() const
Get maximum length of stop_at_target value.
size_t maxlenof_orientation_mode() const
Get maximum length of orientation_mode value.
void set_orientation(const float new_orientation)
Set orientation value.
float dest_y() const
Get dest_y value.
size_t maxlenof_x() const
Get maximum length of x value.
size_t maxlenof_security_distance() const
Get maximum length of security_distance value.
SetDriveModeMessage Fawkes BlackBoard Interface Message.
DriveMode drive_mode() const
Get drive_mode value.
PlaceGotoMessage Fawkes BlackBoard Interface Message.
size_t maxlenof_final() const
Get maximum length of final value.
virtual Message * clone() const
Clone this message.
const char * type() const
Get type of interface.
Definition: interface.cpp:640
virtual Message * clone() const
Clone this message.
size_t maxlenof_stop_at_target() const
Get maximum length of stop_at_target value.
bool is_final() const
Get final value.
SetMaxRotationMessage Fawkes BlackBoard Interface Message.
CartesianGotoMessage Fawkes BlackBoard Interface Message.
CartesianGotoWithFrameMessage Fawkes BlackBoard Interface Message.
void set_flags(const uint32_t new_flags)
Set flags value.
size_t maxlenof_dest_ori() const
Get maximum length of dest_ori value.
size_t maxlenof_msgid() const
Get maximum length of msgid value.
DriveMode drive_mode() const
Get drive_mode value.
void set_msgid(const uint32_t new_msgid)
Set msgid value.
void set_auto_drive_mode(const bool new_auto_drive_mode)
Set auto_drive_mode value.
uint32_t flags() const
Get flags value.
size_t maxlenof_error_code() const
Get maximum length of error_code value.
size_t maxlenof_x() const
Get maximum length of x value.
Moving allow backward constant.
size_t maxlenof_escaping_enabled() const
Get maximum length of escaping_enabled value.
size_t maxlenof_dest_y() const
Get maximum length of dest_y value.
size_t maxlenof_orientation() const
Get maximum length of orientation value.
void set_y(const float new_y)
Set y value.
void set_drive_mode(const DriveMode new_drive_mode)
Set drive_mode value.
void set_max_velocity(const float new_max_velocity)
Set max_velocity value.
size_t maxlenof_dest_x() const
Get maximum length of dest_x value.
void set_width(const float new_width)
Set width value.
float security_distance() const
Get security_distance value.
virtual void copy_values(const Interface *other)
Copy values from other interface.
size_t maxlenof_x() const
Get maximum length of x value.
void set_error_code(const uint32_t new_error_code)
Set error_code value.
virtual Message * clone() const
Clone this message.
float security_distance() const
Get security_distance value.
static const uint32_t FLAG_ESCAPING
FLAG_ESCAPING constant.
static const uint32_t ERROR_OBSTRUCTION
ERROR_OBSTRUCTION constant.
virtual Message * clone() const
Clone this message.
void set_dest_ori(const float new_dest_ori)
Set dest_ori value.
void set_orientation(const float new_orientation)
Set orientation value.
void set_y(const float new_y)
Set y value.
void set_stop_at_target(const bool new_stop_at_target)
Set stop_at_target value.
size_t maxlenof_max_velocity() const
Get maximum length of max_velocity value.
TurnMessage Fawkes BlackBoard Interface Message.
void set_velocity(const float new_velocity)
Set velocity value.
float x() const
Get x value.
static const uint32_t FLAG_SECURITY_DISTANCE
FLAG_SECURITY_DISTANCE constant.
void set_security_distance(const float new_security_distance)
Set security_distance value.
void set_dest_dist(const float new_dest_dist)
Set dest_dist value.
void set_orientation(const float new_orientation)
Set orientation value.
void set_max_rotation(const float new_max_rotation)
Set max_rotation value.
void set_max_rotation(const float new_max_rotation)
Set max_rotation value.
char * target_frame() const
Get target_frame value.
void set_dest_x(const float new_dest_x)
Set dest_x value.
size_t maxlenof_y() const
Get maximum length of y value.
uint32_t msgid() const
Get msgid value.
const char * tostring_OrientationMode(OrientationMode value) const
Convert OrientationMode constant to string.
size_t maxlenof_target_frame() const
Get maximum length of target_frame value.
void set_target_frame(const char *new_target_frame)
Set target_frame value.
virtual Message * clone() const
Clone this message.
float dest_x() const
Get dest_x value.
size_t maxlenof_escaping_enabled() const
Get maximum length of escaping_enabled value.
PlaceWithOriGotoMessage Fawkes BlackBoard Interface Message.
OrientationMode orientation_mode() const
Get orientation_mode value.
void set_orientation_mode(const OrientationMode new_orientation_mode)
Set orientation_mode value.
static const uint32_t ERROR_NONE
ERROR_NONE constant.
virtual Message * clone() const
Clone this message.
virtual const char * enum_tostring(const char *enumtype, int val) const
Convert arbitrary enum value to string.
size_t maxlenof_place() const
Get maximum length of place value.
float dest_dist() const
Get dest_dist value.
ResetParametersMessage Fawkes BlackBoard Interface Message.
static const uint32_t FLAG_UPDATES_DEST_DIST
FLAG_UPDATES_DEST_DIST constant.
bool is_escaping_enabled() const
Get escaping_enabled value.
Orient during travel BUT NOT at target, if omnidirectional platform and orientation is given.
float y() const
Get y value.
void set_x(const float new_x)
Set x value.
void set_dest_y(const float new_dest_y)
Set dest_y value.
static const uint32_t FLAG_NONE
FLAG_NONE constant.
size_t maxlenof_y() const
Get maximum length of y value.
void set_msgid(const uint32_t new_msgid)
Set msgid value.
size_t maxlenof_security_distance() const
Get maximum length of security_distance value.
uint32_t msgid() const
Get msgid value.
std::map< int, std::string > interface_enum_map_t
Map of enum integer to string values.
Definition: types.h:54
size_t maxlenof_width() const
Get maximum length of width value.
void set_x(const float new_x)
Set x value.
size_t maxlenof_target_frame() const
Get maximum length of target_frame value.
size_t maxlenof_flags() const
Get maximum length of flags value.
void set_drive_mode(const DriveMode new_drive_mode)
Set drive_mode value.
size_t maxlenof_drive_mode() const
Get maximum length of drive_mode value.
SetMaxVelocityMessage Fawkes BlackBoard Interface Message.
ResetOdometryMessage Fawkes BlackBoard Interface Message.
static const uint32_t FLAG_PLACE_GOTO
FLAG_PLACE_GOTO constant.
size_t maxlenof_place() const
Get maximum length of place value.
StopMessage Fawkes BlackBoard Interface Message.
NavigatorInterface Fawkes BlackBoard Interface.
float max_rotation() const
Get max_rotation value.
size_t maxlenof_angle() const
Get maximum length of angle value.