22 #include <ecl/config.hpp> 23 #include <ecl/threads.hpp> 24 #include <ecl/devices.hpp> 25 #include <ecl/threads/mutex.hpp> 26 #include <ecl/exceptions/standard_exception.hpp> 27 #include <ecl/geometry/legacy_pose2d.hpp> 65 unsigned char byte[2];
96 void init(
Parameters ¶meters)
throw (ecl::StandardException);
108 void fixPayload(ecl::PushAndPop<unsigned char> & byteStream);
113 void lockDataAccess();
114 void unlockDataAccess();
121 ecl::Angle<double> getHeading()
const;
122 double getAngularVelocity()
const;
123 VersionInfo versionInfo()
const {
return VersionInfo(firmware.data.version, hardware.data.version, unique_device_id.data.udid0, unique_device_id.data.udid1, unique_device_id.data.udid2); }
143 void getWheelJointStates(
double &wheel_left_angle,
double &wheel_left_angle_rate,
144 double &wheel_right_angle,
double &wheel_right_angle_rate);
145 void updateOdometry(ecl::LegacyPose2D<double> &pose_update,
146 ecl::linear_algebra::Vector3d &pose_update_rates);
151 void resetOdometry();
156 void setBaseControl(
const double &linear_velocity,
const double &angular_velocity);
161 bool setControllerGain(
const unsigned char &type,
const unsigned int &p_gain,
162 const unsigned int &i_gain,
const unsigned int &d_gain);
163 bool getControllerGain();
168 void printSigSlotConnections()
const;
225 void sendBaseControlCommand();
226 void sendCommand(
Command command);
244 std::vector<std::string>
log(std::string msg) {
return log(
"",
"", msg); }
245 std::vector<std::string>
log(std::string level, std::string msg) {
return log(level,
"", msg); }
246 std::vector<std::string>
log(std::string level, std::string name, std::string msg) {
247 std::vector<std::string> ret;
248 if( level !=
"" ) ret.push_back(level);
249 if( name !=
"" ) ret.push_back(name);
250 if( msg !=
"" ) ret.push_back(msg);
259 ecl::Signal<const std::string&> sig_debug, sig_info,
sig_warn, sig_error;
std::vector< std::string > log(std::string msg)
ecl::Signal< PacketFinder::BufferType & > sig_raw_data_stream
ControllerInfo controller_info
AccelerationLimiter acceleration_limiter
Current::Data getCurrentData() const
EventManager event_manager
Command::Buffer command_buffer
Battery batteryStatus() const
int controller_info_reminder
The event manager - sigslot interface.
ecl::Signal< const std::vector< short > & > sig_raw_control_command
ecl::Signal< const VersionInfo & > sig_version_info
Provides simple packet finder which may be consist of stx, etx, payload, ...
GpInput::Data getGpInputData() const
UniqueDeviceID unique_device_id
ecl::Signal< Command::Buffer & > sig_raw_data_command
Parameter list and validator for the kobuki.
Convenience header for modules.
int version_info_reminder
DockIR::Data getDockIRData() const
Macros for kobuki_driver.
ThreeAxisGyro::Data getRawInertiaData() const
VersionInfo versionInfo() const
The core kobuki driver class.
Inertia::Data getInertiaData() const
std::vector< std::string > log(std::string level, std::string name, std::string msg)
ThreeAxisGyro three_axis_gyro
Version info for the kobuki driver.
Cliff::Data getCliffData() const
ecl::Signal< const std::string & > sig_warn
unsigned short data[MAX_DATA_SIZE]
Packets convenience header.
ecl::Signal< const std::vector< std::string > & > sig_named
An acceleration limiter for the kobuki.
PacketFinder packet_finder
CoreSensors::Data getCoreSensorData() const
Parameter configuration for the kobuki.
std::vector< std::string > log(std::string level, std::string msg)
std::vector< short > velocity_commands_debug
ecl::PushAndPop< unsigned char > Buffer
ControllerInfo::Data getControllerInfoData() const
ecl::Signal sig_stream_data
PacketFinder::BufferType data_buffer