Fawkes API
Fawkes Development Version
|
Thread to publish IMU data to ROS. More...
#include "imu_thread.h"
Public Member Functions | |
RosIMUThread () | |
Constructor. More... | |
virtual | ~RosIMUThread () |
Destructor. More... | |
virtual void | init () |
Initialize the thread. More... | |
virtual void | finalize () |
Close all interfaces and ROS handles. More... | |
virtual void | bb_interface_data_changed (fawkes::Interface *interface) throw () |
Handle interface changes. More... | |
![]() | |
virtual | ~Thread () |
Virtual destructor. More... | |
bool | prepare_finalize () |
Prepare finalization. More... | |
virtual bool | prepare_finalize_user () |
Prepare finalization user implementation. More... | |
void | cancel_finalize () |
Cancel finalization. More... | |
void | start (bool wait=true) |
Call this method to start the thread. More... | |
void | cancel () |
Cancel a thread. More... | |
void | join () |
Join the thread. More... | |
void | detach () |
Detach the thread. More... | |
void | kill (int sig) |
Send signal to a thread. More... | |
bool | operator== (const Thread &thread) |
Check if two threads are the same. More... | |
void | wakeup () |
Wake up thread. More... | |
void | wakeup (Barrier *barrier) |
Wake up thread and wait for barrier afterwards. More... | |
void | wait_loop_done () |
Wait for the current loop iteration to finish. More... | |
OpMode | opmode () const |
Get operation mode. More... | |
pthread_t | thread_id () const |
Get ID of thread. More... | |
bool | started () const |
Check if thread has been started. More... | |
bool | cancelled () const |
Check if thread has been cancelled. More... | |
bool | detached () const |
Check if thread has been detached. More... | |
bool | running () const |
Check if the thread is running. More... | |
bool | waiting () const |
Check if thread is currently waiting for wakeup. More... | |
const char * | name () const |
Get name of thread. More... | |
void | set_flags (uint32_t flags) |
Set all flags in one go. More... | |
void | set_flag (uint32_t flag) |
Set flag for the thread. More... | |
void | unset_flag (uint32_t flag) |
Unset flag. More... | |
bool | flagged_bad () const |
Check if FLAG_BAD was set. More... | |
void | set_delete_on_exit (bool del) |
Set whether the thread should be deleted on exit. More... | |
void | set_prepfin_hold (bool hold) |
Hold prepare_finalize(). More... | |
void | add_notification_listener (ThreadNotificationListener *notification_listener) |
Add notification listener. More... | |
void | remove_notification_listener (ThreadNotificationListener *notification_listener) |
Remove notification listener. More... | |
void | notify_of_failed_init () |
Notify of failed init. More... | |
void | add_loop_listener (ThreadLoopListener *loop_listener) |
Add loop listener. More... | |
void | remove_loop_listener (ThreadLoopListener *loop_listener) |
Remove loop listener. More... | |
![]() | |
ConfigurableAspect () | |
Constructor. More... | |
virtual | ~ConfigurableAspect () |
Virtual empty Destructor. More... | |
void | init_ConfigurableAspect (Configuration *config) |
Set the configuration It is guaranteed that this is called for a configurable thread before Thread::start() is called (when running regularly inside Fawkes). More... | |
![]() | |
const std::list< const char * > & | get_aspects () const |
Get list of aspect names attached to a aspected thread. More... | |
![]() | |
LoggingAspect () | |
Constructor. More... | |
virtual | ~LoggingAspect () |
Virtual empty Destructor. More... | |
void | init_LoggingAspect (Logger *logger) |
Set the logger. More... | |
![]() | |
ROSAspect () | |
Constructor. More... | |
virtual | ~ROSAspect () |
Virtual empty destructor. More... | |
![]() | |
BlackBoardAspect (const char *owner=NULL) | |
Constructor. More... | |
virtual | ~BlackBoardAspect () |
Virtual empty destructor. More... | |
void | init_BlackBoardAspect (BlackBoard *bb) |
Init BlackBoard aspect. More... | |
![]() | |
BlackBoardInterfaceListener (const char *name_format,...) | |
Constructor. More... | |
virtual | ~BlackBoardInterfaceListener () |
Destructor. More... | |
const char * | bbil_name () const |
Get BBIL name. More... | |
virtual bool | bb_interface_message_received (Interface *interface, Message *message) throw () |
BlackBoard message received notification. More... | |
virtual void | bb_interface_writer_added (Interface *interface, unsigned int instance_serial) throw () |
A writing instance has been opened for a watched interface. More... | |
virtual void | bb_interface_writer_removed (Interface *interface, unsigned int instance_serial) throw () |
A writing instance has been closed for a watched interface. More... | |
virtual void | bb_interface_reader_added (Interface *interface, unsigned int instance_serial) throw () |
A reading instance has been opened for a watched interface. More... | |
virtual void | bb_interface_reader_removed (Interface *interface, unsigned int instance_serial) throw () |
A reading instance has been closed for a watched interface. More... | |
Additional Inherited Members | |
![]() | |
enum | OpMode { OPMODE_CONTINUOUS , OPMODE_WAITFORWAKEUP } |
Thread operation mode. More... | |
enum | CancelState { CANCEL_ENABLED , CANCEL_DISABLED } |
Cancel state. More... | |
![]() | |
enum | QueueEntryType { DATA = 0 , MESSAGES = 1 , READER = 2 , WRITER = 3 } |
Queue entry type. More... | |
typedef std::list< QueueEntry > | InterfaceQueue |
Queue of additions/removal of interfaces. More... | |
typedef std::map< std::string, Interface * > | InterfaceMap |
Map of currently active event subscriptions. More... | |
![]() | |
static Thread * | current_thread () |
Get the Thread instance of the currently running thread. More... | |
static Thread * | current_thread_noexc () throw () |
Similar to current_thread, but does never throw an exception. More... | |
static pthread_t | current_thread_id () |
Get the ID of the currently running thread. More... | |
static std::string | current_thread_name () |
Get the name of the current thread. More... | |
static void | current_thread_name (const std::string &thread_name) |
Set the name of the current thread. More... | |
static void | init_main () |
Initialize Thread wrapper instance for main thread. More... | |
static void | destroy_main () |
Destroy main thread wrapper instance. More... | |
static void | set_cancel_state (CancelState new_state, CancelState *old_state=0) |
Set the cancel state of the current thread. More... | |
![]() | |
static const unsigned int | FLAG_BAD = 0x00000001 |
Standard thread flag: "thread is bad". More... | |
![]() | |
Thread (const char *name) | |
Constructor. More... | |
Thread (const char *name, OpMode op_mode) | |
Constructor. More... | |
void | exit () |
Exit the thread. More... | |
void | test_cancel () |
Set cancellation point. More... | |
void | yield () |
Yield the processor to another thread or process. More... | |
virtual void | run () |
Code to execute in the thread. More... | |
void | set_opmode (OpMode op_mode) |
Set operation mode. More... | |
void | set_prepfin_conc_loop (bool concurrent=true) |
Set concurrent execution of prepare_finalize() and loop(). More... | |
void | set_coalesce_wakeups (bool coalesce=true) |
Set wakeup coalescing. More... | |
void | set_name (const char *format,...) |
Set name of thread. More... | |
virtual void | once () |
Execute an action exactly once. More... | |
virtual void | loop () |
Code to execute in the thread. More... | |
bool | wakeup_pending () |
Check if wakeups are pending. More... | |
![]() | |
void | add_aspect (const char *name) |
Add an aspect to a thread. More... | |
![]() | |
void | bbil_add_data_interface (Interface *interface) |
Add an interface to the data modification watch list. More... | |
void | bbil_add_message_interface (Interface *interface) |
Add an interface to the message received watch list. More... | |
void | bbil_add_reader_interface (Interface *interface) |
Add an interface to the reader addition/removal watch list. More... | |
void | bbil_add_writer_interface (Interface *interface) |
Add an interface to the writer addition/removal watch list. More... | |
void | bbil_remove_data_interface (Interface *interface) |
Remove an interface to the data modification watch list. More... | |
void | bbil_remove_message_interface (Interface *interface) |
Remove an interface to the message received watch list. More... | |
void | bbil_remove_reader_interface (Interface *interface) |
Remove an interface to the reader addition/removal watch list. More... | |
void | bbil_remove_writer_interface (Interface *interface) |
Remove an interface to the writer addition/removal watch list. More... | |
Interface * | bbil_data_interface (const char *iuid) throw () |
Get interface instance for given UID. More... | |
Interface * | bbil_message_interface (const char *iuid) throw () |
Get interface instance for given UID. More... | |
Interface * | bbil_reader_interface (const char *iuid) throw () |
Get interface instance for given UID. More... | |
Interface * | bbil_writer_interface (const char *iuid) throw () |
Get interface instance for given UID. More... | |
![]() | |
bool | finalize_prepared |
True if prepare_finalize() has been called and was not stopped with a cancel_finalize(), false otherwise. More... | |
Mutex * | loop_mutex |
Mutex that is used to protect a call to loop(). More... | |
Mutex * | loopinterrupt_antistarve_mutex |
Mutex to avoid starvation when trying to lock loop_mutex. More... | |
![]() | |
Configuration * | config |
This is the Configuration member used to access the configuration. More... | |
![]() | |
Logger * | logger |
This is the Logger member used to access the logger. More... | |
![]() | |
LockPtr< ros::NodeHandle > | rosnode |
Central ROS node handle. More... | |
![]() | |
BlackBoard * | blackboard |
This is the BlackBoard instance you can use to interact with the BlackBoard. More... | |
Thread to publish IMU data to ROS.
This thread reads data from the IMU blackboard interface and publishes the data to ROS.
Definition at line 33 of file imu_thread.h.
RosIMUThread::RosIMUThread | ( | ) |
Constructor.
Definition at line 37 of file imu_thread.cpp.
|
virtual |
Destructor.
Definition at line 43 of file imu_thread.cpp.
|
virtual |
Handle interface changes.
If the IMU interface changes, publish updated data to ROS.
interface | interface instance that you supplied to bbil_add_data_interface() |
Reimplemented from fawkes::BlackBoardInterfaceListener.
Definition at line 101 of file imu_thread.cpp.
References fawkes::IMUInterface::angular_velocity(), fawkes::IMUInterface::angular_velocity_covariance(), fawkes::IMUInterface::frame(), fawkes::IMUInterface::linear_acceleration(), fawkes::IMUInterface::linear_acceleration_covariance(), fawkes::IMUInterface::orientation(), fawkes::IMUInterface::orientation_covariance(), and fawkes::Interface::read().
|
virtual |
Close all interfaces and ROS handles.
Reimplemented from fawkes::Thread.
Definition at line 89 of file imu_thread.cpp.
References fawkes::BlackBoardAspect::blackboard, fawkes::BlackBoard::close(), and fawkes::BlackBoard::unregister_listener().
|
virtual |
Initialize the thread.
Open the blackboard interface and advertise the ROS topic. Register as listener for the blackboard interface.
Reimplemented from fawkes::Thread.
Definition at line 52 of file imu_thread.cpp.
References fawkes::BlackBoardInterfaceListener::bbil_add_data_interface(), fawkes::BlackBoardAspect::blackboard, fawkes::ConfigurableAspect::config, fawkes::Configuration::get_string(), fawkes::BlackBoard::list(), fawkes::Logger::log_error(), fawkes::Logger::log_info(), fawkes::LoggingAspect::logger, fawkes::Thread::name(), fawkes::BlackBoard::open_for_reading(), fawkes::BlackBoard::register_listener(), fawkes::ROSAspect::rosnode, and fawkes::Exception::what_no_backtrace().