This software driver implements the protocol SCIP-2.0 for interfacing HOKUYO URG and UTM laser scanners. More..
#include <mrpt/hwdrivers/CHokuyoURG.h>
The port will be a 'Standard TCP/IP Port' (not any of the other choices) with a few configuration settings: protocol Raw with the default port of 9100; SNMP Status Enabled with a community name of public and device index of 1. At the time you create such a port, the Windows Server will attempt to communicate with the device and choose settings.
- Using udev to Give Hokuyos Consistent Device Names. The getID program can be used to get the hardware ID of a Hokuyo device given its port. Combined with udev, this allows a consistent device name to be given to each device, even if the order in which they are plugged in varies. On the PR2 we use the following udev rule.
- Install i-Life ZED AIR laptop drivers for Windows 10 x64, or download DriverPack Solution software for automatic drivers intallation and update.
Inheritance diagram for mrpt::hwdrivers::CHokuyoURG:
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. | |
TSensorInfo | m_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::TTimeStamp | m_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::CPose3D | m_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] |
Assures a minimum number of bytes in the input buffer, reading from the serial port only if required.
- Interrupt request (IRQ) line numbers
- Direct memory access (DMA) channels
- Input/output (I/O) port addresses
- Memory address ranges
Sign in to your computer as an administrator or as a member of the Administrators group.
Select Start, point to Administrative Tools, and then select Computer Management.
Under System Tools in the console tree, select Device Manager.
The devices that are installed on your computer are listed in the right pane.
Double-click the type of device that you want to configure--for example, Ports (COM & LPT).
Right-click the device that you want to configure, and then select Properties.
Select the Resources tab.
Click to clear the Use automatic settings check box.
Note
The Use automatic settings check box is unavailable and appears dimmed, both on devices for which there are no other settings to configure and on devices that are controlled by Plug and Play resources and which do not require user modification.
In the Settings based on box, select the hardware configuration that you want to modify--for example, Basic configuration 0000.
Under Resource type in the Resource settings box, select the type of resource that you want to modify--for example, Interrupt Request.
Select Change Setting.
In the Edit Resource dialog box, type the value that you want for the resource, and then select OK.
Repeat steps 8 through 11 to configure the resource settings that you want for the device.
Quit Device Manager.
Select Start, point to Administrative Tools, and then select Computer Management.
Under System Tools in the console tree, select Device Manager.
The devices that are installed on your computer are listed in the right pane. The default view lists devices by type.
Use one of the following methods:
To view a list of resources by type, select Resources by type on the View menu.
To view a list of resources by connection type, select Resources by connection on the View menu.
Select Start, point to Administrative Tools, and then select Computer Management.
Under System Tools in the console tree, select Device Manager.
The devices that are installed on your computer are listed in the right pane.
Double-click the type of device that you want to test--for example, Sound, video and game controllers.
Right-click the device that you want to test for conflicts, and then select Properties.
Select the Resources tab.
Any conflicts that exist for the device are listed under Conflicting device list.
Sign in to your computer as an administrator or as a member of the Administrators group.
Select Start, point to Administrative Tools, and then select Computer Management.
Under System Tools in the console tree, select Device Manager.
The devices that are installed on your computer are listed in the right pane.
Double-click the type of device that you want to troubleshoot--for example, Modems.
Right-click the device that you want to troubleshoot, and then select Properties.
Select the General tab.
Select Troubleshoot.
[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.
[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.
Fix USB Drivers using Device manager. View our post on fixing USB Driver issues in Windows 8. Go to Menu Run; Type device manager in the text box; Select Device Manager; Find Universal Serial Bus controllers and expand the list; Right-click Unknown Device; Select Properties from the context-sensitive menu; Select Drivers; Click Update Driver. Drivers hoffrichter usb devices dongle.
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] |
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] |
Download elcom s.r.o driver. 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 2010 | Hosted on: |
This article describes how to use Device Manager to configure the hardware devices that are installed on your Windows Server 2003-based computer.
Original product version: Windows Server 2003
Original KB number: 323423
Summary
Device Manager displays a graphical view of the hardware that is installed on your computer. Use this tool when you want to view and manage hardware devices and their drivers. You must be logged on to the computer as an administrator or as a member of the Administrators group to add or remove devices or to configure device properties in Device Manager.
When you install a Plug and Play device, Windows automatically configures the device so that it works correctly with the other devices that are installed on the computer. During the configuration process, Windows assigns a unique set of system resource settings to the device. The following list describes the four types of resources that a device can use:
Each resource that is assigned to a device is given a unique value. Occasionally, a device conflict may occur if two devices require the same resources. If this conflict occurs, you can manually configure the device to assign unique resources to each device. In some situations, depending on the device drivers and the computer, two devices can share a resource (for example, interrupts on Peripheral Component Interconnect [PCI] devices).
When you install a non-Plug and Play device, Windows doesn't automatically configure resource settings for the device. Depending on the type of device, you may have to manually configure these settings. Before you do so, either contact the hardware manufacturer, or see the documentation that is included with the device for more information.
Typically, Windows identifies devices and their resource requests, and then automatically gives the resource settings for your hardware. In most situations, you don't have to modify resource settings for your hardware. Don't change resource settings for a Plug and Play device unless it's necessary. When you manually configure a resource, the setting is fixed. So Windows can't modify resource assignments if that is required, and Windows can't assign that resource to another device.
How to configure a device in Device Manager
To configure a device in Device Manager, follow these steps.
Important
Use caution when you configure resource settings for a device. If you configure resources incorrectly, you can disable your hardware, and you can cause your computer to stop working. Change resource settings only when you are sure that the settings that you want to use are unique and don't conflict with settings for other devices, or when a hardware manufacturer has provided you with specific resource settings for a device.
How to view resource settings in Device Manager
To view a list of resources and the devices that are using them by type or by connection, follow these steps:
Use Device Manager to search for device conflicts
A device conflict occurs when the same resources are given to two or more devices. Use Device Manager to search for device conflicts. To do so, follow these steps:
Windows Hardware Troubleshooter
Hokuyo Automatic Port Devices Driver Download
Use the Windows Hardware Troubleshooter to help you troubleshoot and resolve a hardware conflict or other hardware-related issues. To start the Hardware Troubleshooter, follow these steps:
Hokuyo Automatic Port Devices Drivers
Hokuyo Automatic Port Devices Driver Updater
References
Hokuyo Automatic Port Devices Driver
For more information about how to manage devices by using Device Manager, see Error codes in Device Manager in Windows