8 #include <base/samples/LaserScan.hpp> 9 #include <iodrivers_base/Driver.hpp> 19 class URG :
public iodrivers_base::Driver {
44 std::map<std::string, std::string>
values;
92 static const unsigned int MAX_PACKET_SIZE = 8192;
96 char m_last_status[3];
103 int last_device_timestamp;
104 base::Time device_time_offset;
107 base::Time last_sample_time;
110 static const int MAX_RANGE_READING = 60000;
111 std::vector<float> remission_lookup;
112 float normaliseRemission(
int raw,
int range );
113 void initRemissionLookup();
119 int readAnswer(
char* buffer,
size_t buffer_size,
char const* expected_cmd,
int timeout = 1000);
125 int readAnswer(
char* buffer,
size_t buffer_size,
char const** expected_cmds,
int timeout = 1000);
128 bool simpleCommand(
SimpleCommand const& cmd,
int timeout = 1000);
135 bool write(
char const*
string,
int timeout = 1000);
138 bool parseErrorCode(
char const* code,
StatusCode const* specific_codes);
139 bool infoCommand(std::map<std::string, std::string>& result,
char const* cmd,
bool scip1 =
false);
140 bool timeCommand(
int &device_timestamp,
int timeout);
143 int extractPacket(uint8_t
const* buffer,
size_t buffer_size)
const;
151 void openURI(std::string
const& filename);
154 bool open(std::string
const& filename);
181 bool startAcquisition(
int nScans,
int startStep = -1,
int endStep = -1,
int scanInterval = 0,
int clusterCount = 1,
bool includeRemission =
false );
187 bool readRanges(base::samples::LaserScan& range,
int timeout = -1);
char const * errorString() const
Definition: hokuyo.hh:211
int extractPacket(uint8_t const *buffer, size_t buffer_size) const
Definition: hokuyo.cc:347
float motorSpeed
the step number in front of the device
Definition: hokuyo.hh:52
static const int MDMS_TIMESTAMP_OFFSET
Definition: hokuyo.hh:27
int stepFront
the last measurable step
Definition: hokuyo.hh:51
void openURI(std::string const &filename)
Definition: hokuyo.cc:801
bool measureCommunicationLatency(int timeout=1000)
Definition: hokuyo.cc:531
bool initCommunication(int timeout=1000)
Definition: hokuyo.cc:468
bool stopAcquisition()
Definition: hokuyo.cc:790
bool open(std::string const &filename)
Definition: hokuyo.cc:813
~URG()
Definition: hokuyo.cc:154
Definition: hokuyo.cc:118
ERROR_CODES error() const
Definition: hokuyo.hh:207
bool readRanges(base::samples::LaserScan &range, int timeout=-1)
Definition: hokuyo.cc:633
DeviceInfo()
Definition: hokuyo.hh:35
static const int MDMS_DATA_OFFSET
Definition: hokuyo.hh:29
int stepMax
the first measurable range
Definition: hokuyo.hh:50
VERSIONS version
Definition: hokuyo.hh:45
int dMax
the minimal measurable distance
Definition: hokuyo.hh:47
bool fullSerialReset()
Definition: hokuyo.cc:508
int resolution
the biggest measurable distance
Definition: hokuyo.hh:48
int getPacketCounter()
Definition: hokuyo.cc:785
ERROR_CODES
Definition: hokuyo.hh:56
DeviceInfo getInfo() const
Definition: hokuyo.hh:166
std::map< std::string, std::string > values
Definition: hokuyo.hh:44
int stepMin
how much steps in one full turn
Definition: hokuyo.hh:49
int dMin
Definition: hokuyo.hh:46
static const int MDMS_COMMAND_LENGTH
Definition: hokuyo.hh:25
VERSIONS
Definition: hokuyo.hh:38
bool startAcquisition(int nScans, int startStep=-1, int endStep=-1, int scanInterval=0, int clusterCount=1, bool includeRemission=false)
Definition: hokuyo.cc:587
void close()
Definition: hokuyo.cc:794
std::ostream & operator<<(std::ostream &io, URG::DeviceInfo info)
bool setBaudrate(int brate)
Definition: hokuyo.cc:552
URG()
Definition: hokuyo.cc:143