Visual Servoing Platform  version 3.0.1
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
vpSickLDMRS Class Reference

#include <visp3/sensor/vpSickLDMRS.h>

+ Inheritance diagram for vpSickLDMRS:

Public Types

enum  MagicWord { MagicWordC2 = 0xAFFEC0C2 }
 
enum  DataType { MeasuredData = 0x2202 }
 

Public Member Functions

 vpSickLDMRS ()
 
 vpSickLDMRS (const vpSickLDMRS &sick)
 
virtual ~vpSickLDMRS ()
 
vpSickLDMRSoperator= (const vpSickLDMRS &sick)
 
bool setup (std::string ip, int port)
 
bool setup ()
 
bool measure (vpLaserScan laserscan[4])
 
void setIpAddress (std::string ip_address)
 
void setPort (int com_port)
 

Protected Attributes

int socket_fd
 
unsigned char * body
 
vpColVector vAngle
 
double time_offset
 
bool isFirstMeasure
 
size_t maxlen_body
 
std::string ip
 
int port
 

Detailed Description

Driver for the Sick LD-MRS laser scanner.

Warning
For the moment, this driver works only on UNIX platform.

The code below shows how the four laser scan provided by the Sick LD-MRS could be acquired.

#include "visp3/sensor/vpSickLDMRS.h"
int main()
{
#if !defined(_WIN32) && (defined(__unix__) || defined(__unix) || (defined(__APPLE__) && defined(__MACH__))) // UNIX
std::string ip = "131.254.12.119";
vpSickLDMRS laser;
laser.setIpAddress(ip);
laser.setup();
vpLaserScan laserscan[4];
for ( ; ; ) {
// Get the measured points in the four layers
laser.measure(laserscan);
// Prints all the measured points
for (int layer=0; layer<4; layer++) {
std::vector<vpScanPoint> pointsInLayer = laserscan[layer].getScanPoints();
for (unsigned int i=0; i < pointsInLayer.size(); i++) {
std::cout << pointsInLayer[i] << std::endl;
}
}
}
#endif
}
Examples:
SickLDMRS-Acq.cpp, and SickLDMRS-Process.cpp.

Definition at line 106 of file vpSickLDMRS.h.

Member Enumeration Documentation

Enumerator
MeasuredData 

Flag to indicate that the body of a message contains measured data.

Definition at line 112 of file vpSickLDMRS.h.

Enumerator
MagicWordC2 

The magic word that allows to identify the messages that are sent by the Sick LD-MRS.

Definition at line 109 of file vpSickLDMRS.h.

Constructor & Destructor Documentation

vpSickLDMRS::vpSickLDMRS ( )

Default constructor that initialize the Ethernet address to "131.254.12.119", set the port to 12002 and allocates memory for the body messages.

Definition at line 72 of file vpSickLDMRS.cpp.

References body, vpLaserScanner::ip, maxlen_body, vpLaserScanner::port, vpMath::rad(), vpColVector::resize(), and vAngle.

vpSickLDMRS::vpSickLDMRS ( const vpSickLDMRS sick)
inline

Copy constructor.

Definition at line 117 of file vpSickLDMRS.h.

vpSickLDMRS::~vpSickLDMRS ( )
virtual

Destructor that deallocate the memory for the body messages.

Definition at line 90 of file vpSickLDMRS.cpp.

References body.

Member Function Documentation

vpSickLDMRS& vpSickLDMRS::operator= ( const vpSickLDMRS sick)
inline

Copy constructor.

Definition at line 125 of file vpSickLDMRS.h.

References body, isFirstMeasure, maxlen_body, socket_fd, time_offset, and vAngle.

void vpLaserScanner::setIpAddress ( std::string  ip_address)
inlineinherited

Set the Ethernet address of the laser.

Examples:
SickLDMRS-Acq.cpp, and SickLDMRS-Process.cpp.

Definition at line 73 of file vpLaserScanner.h.

Referenced by setup().

void vpLaserScanner::setPort ( int  com_port)
inlineinherited

Set the communication port.

Definition at line 78 of file vpLaserScanner.h.

Referenced by setup().

bool vpSickLDMRS::setup ( std::string  ip_address,
int  com_port 
)

Initialize the connection with the Sick LD-MRS laser scanner.

Parameters
ip_address: Ethernet address of the laser.
com_port: Ethernet port of the laser.
Returns
true if the device was initialized, false otherwise.
Examples:
SickLDMRS-Acq.cpp, and SickLDMRS-Process.cpp.

Definition at line 105 of file vpSickLDMRS.cpp.

References vpLaserScanner::setIpAddress(), vpLaserScanner::setPort(), and setup().

bool vpSickLDMRS::setup ( )

Initialize the connection with the Sick LD-MRS laser scanner.

Returns
true if the device was initialized, false otherwise.

Definition at line 117 of file vpSickLDMRS.cpp.

References vpLaserScanner::ip, vpLaserScanner::port, and socket_fd.

Referenced by setup().

Member Data Documentation

unsigned char* vpSickLDMRS::body
protected

Definition at line 148 of file vpSickLDMRS.h.

Referenced by measure(), operator=(), vpSickLDMRS(), and ~vpSickLDMRS().

std::string vpLaserScanner::ip
protectedinherited

Definition at line 80 of file vpLaserScanner.h.

Referenced by setup(), vpLaserScanner::vpLaserScanner(), and vpSickLDMRS().

bool vpSickLDMRS::isFirstMeasure
protected

Definition at line 151 of file vpSickLDMRS.h.

Referenced by measure(), and operator=().

size_t vpSickLDMRS::maxlen_body
protected

Definition at line 152 of file vpSickLDMRS.h.

Referenced by operator=(), and vpSickLDMRS().

int vpLaserScanner::port
protectedinherited

Definition at line 84 of file vpLaserScanner.h.

Referenced by setup(), vpLaserScanner::vpLaserScanner(), and vpSickLDMRS().

int vpSickLDMRS::socket_fd
protected

Definition at line 146 of file vpSickLDMRS.h.

Referenced by measure(), operator=(), and setup().

double vpSickLDMRS::time_offset
protected

Definition at line 150 of file vpSickLDMRS.h.

Referenced by measure(), and operator=().

vpColVector vpSickLDMRS::vAngle
protected

Definition at line 149 of file vpSickLDMRS.h.

Referenced by measure(), operator=(), and vpSickLDMRS().