28 CGyroKVHDSP3000::CGyroKVHDSP3000()
33 m_firstInteration(true)
56 std::this_thread::sleep_for(200ms);
64 mrpt::make_aligned_shared<CObservationIMU>();
71 string delimiter(
" ");
74 if (words.size() < 2)
return;
75 if (words[1].c_str()[0] ==
'0')
return;
76 double mesure = atof(words[0].c_str());
86 observationGyro->dataIsPresent[
IMU_YAW] =
true;
128 configSource.
read_float(iniSection,
"pose_x", 0,
false),
129 configSource.
read_float(iniSection,
"pose_y", 0,
false),
130 configSource.
read_float(iniSection,
"pose_z", 0,
false),
134 string operatingMode =
135 configSource.
read_string(iniSection,
"operatingMode",
"rate",
false);
136 cout <<
"Operating mode : " << operatingMode << endl;
137 if (operatingMode ==
"incremental")
140 cout <<
"Incremental mode" << endl;
142 else if (operatingMode ==
"integral")
145 cout <<
"Integrated mode" << endl;
150 cout <<
"Rate mode" << endl;
std::shared_ptr< CObservationIMU > Ptr
size_t Write(const void *Buffer, size_t Count)
Implements the virtual method responsible for writing to the stream.
double m_process_rate
See CGenericSensor.
Classes for serialization, sockets, ini-file manipulation, streams, list of properties-values, timewatch, extensions to STL.
mrpt::comms::CSerialPort * m_serialPort
Search the port where the sensor is located and connect to it.
A communications serial port built as an implementation of a utils::CStream.
float read_float(const std::string §ion, const std::string &name, float defaultValue, bool failIfNotFound=false) const
std::string m_sensorLabel
See CGenericSensor.
std::string ReadString(const int total_timeout_ms=-1, bool *out_timeout=nullptr, const char *eol_chars="\")
Reads one text line from the serial port in POSIX "canonical mode".
#define THROW_EXCEPTION(msg)
virtual ~CGyroKVHDSP3000()
Destructor.
mrpt::system::TTimeStamp now()
A shortcut for system::getCurrentTime.
Contains classes for various device interfaces.
std::string read_string(const std::string §ion, const std::string &name, const std::string &defaultValue, bool failIfNotFound=false) const
void setConfig(int baudRate, int parity=0, int bits=8, int nStopBits=1, bool enableFlowControl=false)
Changes the configuration of the port.
void doProcess()
This method will be invoked at a minimum rate of "process_rate" (Hz)
This class allows loading and storing values and vectors of different types from a configuration text...
void initialize()
Turns on the KVH DSP 3000 device and configure it for getting orientation data.
bool isOpen() const
Returns if port has been correctly open.
This namespace contains representation of robot actions and observations.
GLsizei const GLchar ** string
#define IMPLEMENTS_GENERIC_SENSOR(class_name, NameSpace)
This must be inserted in all CGenericSensor classes implementation files:
void close()
Close the port.
void appendObservation(const mrpt::utils::CSerializable::Ptr &obj)
Like appendObservations() but for just one observation.
void loadConfig_sensorSpecific(const mrpt::utils::CConfigFileBase &configSource, const std::string &iniSection)
See the class documentation at the top for expected parameters.
void tokenize(const std::string &inString, const std::string &inDelimiters, std::deque< std::string > &outTokens, bool skipBlankTokens=true) noexcept
Tokenizes a string according to a set of delimiting characters.
void resetIncrementalAngle(void)
Send to the sensor the command 'Z' wich reset the integrated angle.
A class for interfacing KVH DSP 3000 gyroscope with an assynchronous serial communication (product SN...
mrpt::poses::CPose3D m_sensorPose
void setFromValues(const double x0, const double y0, const double z0, const double yaw=0, const double pitch=0, const double roll=0)
Set the pose from a 3D position (meters) and yaw/pitch/roll angles (radians) - This method recomputes...
orientation yaw absolute value (global/navigation frame) (rad)
Serial and networking devices and utilities.
yaw angular velocity (local/vehicle frame) (rad/sec)
void changeMode(GYRO_MODE _newMode)
int m_COMbauds
This serial port will be attempted to be opened automatically when this class is first used to reques...