23 #ifndef __PLUGINS_KATANA_ACT_THREAD_H_
24 #define __PLUGINS_KATANA_ACT_THREAD_H_
26 #include "motion_thread.h"
27 #include "calib_thread.h"
28 #include "goto_thread.h"
29 #include "goto_openrave_thread.h"
30 #include "gripper_thread.h"
31 #include "sensacq_thread.h"
32 #include "motor_control_thread.h"
34 #include <core/threading/thread.h>
35 #include <aspect/clock.h>
36 #include <aspect/blocked_timing.h>
37 #include <aspect/logging.h>
38 #include <aspect/configurable.h>
39 #include <aspect/blackboard.h>
40 #include <aspect/tf.h>
42 # include <plugins/openrave/aspect/openrave.h>
44 #include <blackboard/interface_listener.h>
45 #include <core/utils/refptr.h>
46 #ifdef USE_TIMETRACKER
47 # include <utils/time/tracker.h>
53 class KatanaInterface;
55 class KatanaController;
87 protected:
virtual void run() { Thread::run(); }
91 void update_position(
bool refresh);
92 void update_sensors(
bool refresh);
93 void update_motors(
bool refresh);
95 unsigned int msgid,
const char *logmsg, ...);
100 std::string __cfg_controller;
101 std::string __cfg_device;
102 std::string __cfg_kni_conffile;
103 bool __cfg_auto_calibrate;
104 unsigned int __cfg_defmax_speed;
105 unsigned int __cfg_read_timeout;
106 unsigned int __cfg_write_timeout;
107 unsigned int __cfg_gripper_pollint;
108 unsigned int __cfg_goto_pollint;
112 float __cfg_park_phi;
113 float __cfg_park_theta;
114 float __cfg_park_psi;
116 float __cfg_distance_scale;
118 float __cfg_update_interval;
120 std::string __cfg_frame_kni;
121 std::string __cfg_frame_openrave;
123 bool __cfg_OR_enabled;
124 bool __cfg_OR_use_viewer;
125 bool __cfg_OR_auto_load_ik;
126 std::string __cfg_OR_robot_file;
127 std::string __cfg_OR_arm_model;
130 std::auto_ptr<KatanaSensorAcquisitionThread> __sensacq_thread;
144 #ifdef USE_TIMETRACKER
145 std::auto_ptr<fawkes::TimeTracker> __tt;
146 unsigned int __tt_count;
147 unsigned int __ttc_read_sensor;
Thread aspect to access to BlackBoard.
Base class for all messages passed through interfaces in Fawkes BlackBoard.
Thread aspect that allows to obtain the current time from the clock.
virtual void loop()
Code to execute in the thread.
Fawkes library namespace.
virtual void run()
Stub to see name in backtrace for easier debugging.
A class for handling time.
Thread class encapsulation of pthreads.
Base class for all Fawkes BlackBoard interfaces.
Thread aspect create, update, and graph round-robin databases (RRD).
virtual void finalize()
Finalize the thread.
virtual void once()
Execute an action exactly once.
Thread aspect to use blocked timing.
virtual void init()
Initialize the thread.
KatanaInterface Fawkes BlackBoard Interface.
Thread aspect to log output.
virtual bool bb_interface_message_received(fawkes::Interface *interface, fawkes::Message *message)
BlackBoard message received notification.
Thread aspect to access configuration data.
void update_sensor_values()
Update sensor values as necessary.
KatanaActThread()
Constructor.
~KatanaActThread()
Destructor.
BlackBoard interface listener.