Fawkes API
Fawkes Development Version
|
21 #ifndef _PLUGINS_ROBOTINO_OPENROBOTINO_COM_THREAD_H_
22 #define _PLUGINS_ROBOTINO_OPENROBOTINO_COM_THREAD_H_
24 #include "com_thread.h"
26 #include <aspect/blackboard.h>
27 #include <aspect/configurable.h>
28 #include <core/threading/thread.h>
29 #include <utils/time/time.h>
31 #ifdef HAVE_OPENROBOTINO_API_1
32 # include <rec/robotino/com/Com.h>
34 namespace sharedmemory {
35 template <
typename SharedType>
39 namespace robotstate {
42 namespace remotestate {
52 class AnalogInputArray;
54 class DigitalInputArray;
55 class DistanceSensorArray;
56 class ElectricalGripper;
60 class PowerManagement;
73 #ifdef HAVE_OPENROBOTINO_API_1
74 public rec::robotino::com::Com,
94 virtual void get_odometry(
double &x,
double &y,
double &phi);
110 #ifdef HAVE_OPENROBOTINO_API_1
111 using rec::robotino::com::Com::sensorState;
112 virtual void updateEvent();
114 void process_api_v1();
115 void process_api_v2();
118 std::string cfg_hostname_;
119 bool cfg_quit_on_disconnect_;
120 unsigned int cfg_sensor_update_cycle_time_;
121 bool cfg_gripper_enabled_;
122 bool cfg_enable_gyro_;
125 unsigned int last_seqnum_;
127 #ifdef HAVE_OPENROBOTINO_API_1
128 rec::robotino::com::Com * com_;
130 unsigned int active_state_;
131 rec::iocontrol::remotestate::SensorState sensor_states_[2];
134 rec::sharedmemory::SharedMemory<rec::iocontrol::robotstate::State> *statemem_;
135 rec::iocontrol::robotstate::State * state_;
137 rec::iocontrol::remotestate::SetState *set_state_;
140 rec::robotino::api2::Com * com_;
141 rec::robotino::api2::AnalogInputArray * analog_inputs_com_;
142 rec::robotino::api2::Bumper * bumper_com_;
143 rec::robotino::api2::DigitalInputArray * digital_inputs_com_;
144 rec::robotino::api2::DistanceSensorArray *distances_com_;
145 rec::robotino::api2::ElectricalGripper * gripper_com_;
146 rec::robotino::api2::Gyroscope * gyroscope_com_;
147 rec::robotino::api2::MotorArray * motors_com_;
148 rec::robotino::api2::Odometry * odom_com_;
149 rec::robotino::api2::PowerManagement * power_com_;
virtual void set_speed_points(float s1, float s2, float s3)
Set speed points for wheels.
Mutex mutual exclusion lock.
OpenRobotinoComThread()
Constructor.
virtual void get_odometry(double &x, double &y, double &phi)
Get current odometry.
Thread to communicate with Robotino via OpenRobotino API (v1 or v2).
virtual void once()
Execute an action exactly once.
virtual bool is_gripper_open()
Check if gripper is open.
virtual void finalize()
Finalize the thread.
virtual void set_motor_accel_limits(float min_accel, float max_accel)
Set acceleration limits of motors.
virtual void set_digital_output(unsigned int digital_out, bool enable)
Set digital output state.
virtual void get_act_velocity(float &a1, float &a2, float &a3, unsigned int &seq, fawkes::Time &t)
Get actual velocity.
virtual void loop()
Code to execute in the thread.
Fawkes library namespace.
Virtual base class for thread that communicates with a Robotino.
virtual void reset_odometry()
Reset odometry to zero.
virtual void set_bumper_estop_enabled(bool enabled)
Enable or disable emergency stop on bumper contact.
virtual void run()
Stub to see name in backtrace for easier debugging.
A class for handling time.
virtual ~OpenRobotinoComThread()
Destructor.
virtual void init()
Initialize the thread.
virtual bool is_connected()
Check if we are connected to OpenRobotino.
Thread aspect to access configuration data.
virtual void set_gripper(bool opened)
Open or close gripper.