Hokuyo Automatic Driver

12/14/2021by admin

Drivers, Bits Wrenches. Spanners Sockets, Socket Wrenches Torque Wrenches, Torque Drivers Pliers, Nippers Electric Facility Construction Related Tools for Water Supply, Air Conditioning Piping Vices, Clamps, Hand Presses Pullers (Pulling Tools Only) Tool Sets Scissors Safety Cutters Saws Lever Bars / Striking Chisels / Wedges Screw Thread. Mrpt::hwdrivers::CHokuyoURG Class Reference This software driver implements the protocol SCIP-2.0 for interfacing HOKUYO URG and UTM laser scanners.

Hokuyo Automatic Driver Tool

  • HOKUYO AUTOMATIC CO., LTD. Sensor Head for CMD/HMD. Semiconductor laser type detectors and other various products suitable for severe environments.
  • You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA USADriver for the Hokuyo PBS 03JN IR range finder. The PBSDriver controls the PBS 03JN IR range finder and interprets its data output.
  • This is an C and Matlab interface driver for the Hokuyo laser range scanners.
This software driver implements the protocol SCIP-2.0 for interfacing HOKUYO URG and UTM laser scanners. More...

#include <mrpt/hwdrivers/CHokuyoURG.h>

Inheritance diagram for mrpt::hwdrivers::CHokuyoURG:

[legend]
Collaboration diagram for mrpt::hwdrivers::CHokuyoURG:
[legend]
List of all members.

Public Member Functions

CHokuyoURG ()
Constructor.
virtual ~CHokuyoURG ()
Destructor: turns the laser off.
void doProcessSimple (bool &outThereIsObservation, mrpt::slam::CObservation2DRangeScan &outObservation, bool &hardwareError)
Specific laser scanner 'software drivers' must process here new data from the I/O stream, and, if a whole scan has arrived, return it.
bool turnOn ()
Enables the scanning mode (which may depend on the specific laser device); this must be called before asking for observations to assure that the protocol has been initializated.
bool turnOff ()
Disables the scanning mode (this can be used to turn the device in low energy mode, if available).
void purgeBuffers ()
Empties the RX buffers of the serial port.
void setSerialPort (const std::string &port_name)
If set to non-empty, the serial port will be attempted to be opened automatically when this class is first used to request data from the laser.
const std::string getSerialPort ()
Returns the currently set serial port.
void setReducedFOV (const double fov)
If called (before calling 'turnOn'), the field of view of the laser is reduced to the given range (in radians), discarding the rest of measures.
void setVerbose (bool enable=true)

Protected Member Functions

bool checkCOMisOpen ()
Returns true if there is a valid stream bound to the laser scanner, otherwise it first try to open the serial port 'm_com_port'.
void loadConfig_sensorSpecific (const mrpt::utils::CConfigFileBase &configSource, const std::string &iniSection)
Loads specific configuration for the device from a given source of configuration parameters, for example, an '.ini' file, loading from the section '[iniSection]' (see utils::CConfigFileBase and derived classes) See hwdrivers::CHokuyoURG for the possible parameters.

Protected Attributes

double m_reduced_fov
Used to reduce artificially the interval of scan ranges.
std::string m_com_port
If set to non-empty, the serial port will be attempted to be opened automatically when this class is first used to request data from the laser.
TSensorInfom_sensor_info
The information gathered when the laser is first open.
bool m_I_am_owner_serial_port
uint32_t m_timeStartUI
Time of the first data packet, for synchronization purposes.
mrpt::system::TTimeStampm_timeStartTT

Private Member Functions

bool enableSCIP20 ()
Enables the SCIP2.0 protocol (this must be called at the very begining!).
bool setHighBaudrate ()
Passes to 115200bps bitrate.
bool switchLaserOn ()
Switchs the laser on.
bool switchLaserOff ()
Switchs the laser off.
bool setMotorSpeed (int motoSpeed_rpm)
Changes the motor speed in rpm's (default 600rpm).
bool displayVersionInfo ()
Ask to the device, and print to the debug stream, details about the firmware version,serial number,.
bool displaySensorInfo (CHokuyoURG::TSensorInfo *out_data=NULL)
Ask to the device, and print to the debug stream, details about the sensor model.
bool startScanningMode ()
Start the scanning mode, using parameters stored in the object (loaded from the .ini file) After this command the device will start to send scans until 'switchLaserOff' is called.
void initialize ()
Turns the laser on.
bool receiveResponse (const char *sentCmd_forEchoVerification, char &rcv_status0, char &rcv_status1, char *rcv_data, int &rcv_dataLength)
Waits for a response from the device.
bool assureBufferHasBytes (const size_t nDesiredBytes)
Assures a minimum number of bytes in the input buffer, reading from the serial port only if required.

Private Attributes

int m_firstRange
The first and last ranges to consider from the scan.
int m_lastRange
int m_motorSpeed_rpm
The motor speed (default=600rpm).
poses::CPose3Dm_sensorPose
The sensor 6D pose:.
mrpt::utils::circular_buffer<
uint8_t >
m_rx_buffer
Auxiliary buffer for readings.
std::string m_lastSentMeasCmd
The last sent measurement command (MDXXX), including the last 0x0A.
bool m_verbose

Classes

struct TSensorInfo
Used in CHokuyoURG::displayVersionInfo. More...

Detailed Description

This software driver implements the protocol SCIP-2.0 for interfacing HOKUYO URG and UTM laser scanners.

Refer to the wiki page for more details: http://www.mrpt.org/Example:HOKUYO_URG/UTM_Laser_Scanner

See also the application 'rawlog-grabber' for a ready-to-use application to gather data from the scanner.

Definition at line 72 of file CHokuyoURG.h.

Constructor & Destructor Documentation

Constructor.

virtual mrpt::hwdrivers::CHokuyoURG::~CHokuyoURG ( ) [virtual]

Member Function Documentation

bool mrpt::hwdrivers::CHokuyoURG::assureBufferHasBytes (const size_t nDesiredBytes ) [private]
Hokuyo Automatic driver

Assures a minimum number of bytes in the input buffer, reading from the serial port only if required.

[protected]

Returns true if there is a valid stream bound to the laser scanner, otherwise it first try to open the serial port 'm_com_port'.

bool mrpt::hwdrivers::CHokuyoURG::displaySensorInfo (CHokuyoURG::TSensorInfo * out_data = NULL ) [private]

Ask to the device, and print to the debug stream, details about the sensor model.

It also optionally saves all the information in an user supplied data structure 'out_data'.

[private]

Ask to the device, and print to the debug stream, details about the firmware version,serial number,.

..

[virtual]

Specific laser scanner 'software drivers' must process here new data from the I/O stream, and, if a whole scan has arrived, return it.

This method will be typically called in a different thread than other methods, and will be called in a timely fashion.

Implements mrpt::hwdrivers::C2DRangeFinderAbstract.

bool mrpt::hwdrivers::CHokuyoURG::enableSCIP20 ( ) [private]

Enables the SCIP2.0 protocol (this must be called at the very begining!).

[inline]

Returns the currently set serial port.

[private, virtual]

Turns the laser on.

Reimplemented from mrpt::hwdrivers::CGenericSensor.

void mrpt::hwdrivers::CHokuyoURG::loadConfig_sensorSpecific (const mrpt::utils::CConfigFileBase & configSource,
const std::string & iniSection
) [protected, virtual]

Loads specific configuration for the device from a given source of configuration parameters, for example, an '.ini' file, loading from the section '[iniSection]' (see utils::CConfigFileBase and derived classes) See hwdrivers::CHokuyoURG for the possible parameters.

Implements mrpt::hwdrivers::CGenericSensor.

void mrpt::hwdrivers::CHokuyoURG::purgeBuffers ( )
bool mrpt::hwdrivers::CHokuyoURG::receiveResponse (const char * sentCmd_forEchoVerification,
char & rcv_status0,
char & rcv_status1,
char * rcv_data,
int & rcv_dataLength
) [private]

Waits for a response from the device.

[private]

Passes to 115200bps bitrate.

Hokuyo Automatic Driver Manual
bool mrpt::hwdrivers::CHokuyoURG::setMotorSpeed (int motoSpeed_rpm ) [private]

Changes the motor speed in rpm's (default 600rpm).

[inline]

If called (before calling 'turnOn'), the field of view of the laser is reduced to the given range (in radians), discarding the rest of measures.

Call with '0' to disable this reduction again (the default).

Definition at line 205 of file CHokuyoURG.h.

void mrpt::hwdrivers::CHokuyoURG::setSerialPort (const std::string & port_name ) [inline]

If set to non-empty, the serial port will be attempted to be opened automatically when this class is first used to request data from the laser.

Definition at line 197 of file CHokuyoURG.h.

void mrpt::hwdrivers::CHokuyoURG::setVerbose (bool enable = true ) [inline]
bool mrpt::hwdrivers::CHokuyoURG::startScanningMode ( ) [private]

Start the scanning mode, using parameters stored in the object (loaded from the .ini file) After this command the device will start to send scans until 'switchLaserOff' is called.

[private]

Switchs the laser off.

[private]
bool mrpt::hwdrivers::CHokuyoURG::turnOff ( ) [virtual]

Disables the scanning mode (this can be used to turn the device in low energy mode, if available).

Implements mrpt::hwdrivers::C2DRangeFinderAbstract.

bool mrpt::hwdrivers::CHokuyoURG::turnOn ( ) [virtual]

Hokuyo Automatic Driver Operator

Enables the scanning mode (which may depend on the specific laser device); this must be called before asking for observations to assure that the protocol has been initializated.

Implements mrpt::hwdrivers::C2DRangeFinderAbstract.

Member Data Documentation

std::string mrpt::hwdrivers::CHokuyoURG::m_com_port [protected]

If set to non-empty, the serial port will be attempted to be opened automatically when this class is first used to request data from the laser.

Definition at line 217 of file CHokuyoURG.h.

int mrpt::hwdrivers::CHokuyoURG::m_firstRange [private]

The first and last ranges to consider from the scan.

Definition at line 90 of file CHokuyoURG.h.

bool mrpt::hwdrivers::CHokuyoURG::m_I_am_owner_serial_port [protected]
int mrpt::hwdrivers::CHokuyoURG::m_lastRange [private]
std::string mrpt::hwdrivers::CHokuyoURG::m_lastSentMeasCmd [private]

The last sent measurement command (MDXXX), including the last 0x0A.

Definition at line 102 of file CHokuyoURG.h.

int mrpt::hwdrivers::CHokuyoURG::m_motorSpeed_rpm [private]

The motor speed (default=600rpm).

Definition at line 94 of file CHokuyoURG.h.

double mrpt::hwdrivers::CHokuyoURG::m_reduced_fov [protected]

Used to reduce artificially the interval of scan ranges.

Definition at line 215 of file CHokuyoURG.h.

mrpt::utils::circular_buffer<uint8_t> mrpt::hwdrivers::CHokuyoURG::m_rx_buffer [private]

Auxiliary buffer for readings.

Definition at line 100 of file CHokuyoURG.h.

TSensorInfomrpt::hwdrivers::CHokuyoURG::m_sensor_info [protected]

The information gathered when the laser is first open.

Definition at line 220 of file CHokuyoURG.h.

poses::CPose3Dmrpt::hwdrivers::CHokuyoURG::m_sensorPose [private]

The sensor 6D pose:.

Definition at line 98 of file CHokuyoURG.h.

mrpt::system::TTimeStampmrpt::hwdrivers::CHokuyoURG::m_timeStartTT [protected]
uint32_t mrpt::hwdrivers::CHokuyoURG::m_timeStartUI [protected]

Time of the first data packet, for synchronization purposes.

Definition at line 224 of file CHokuyoURG.h.

bool mrpt::hwdrivers::CHokuyoURG::m_verbose [private]



Page generated by Doxygen 1.4.7 for MRPT 0.9.1 SVN:2082M at Sun Aug 1 15:04:25 PDT 2010Hosted on:
Comments are closed.