Go to the documentation of this file.
36 cerr <<
"Usage: " <<
argv[0] <<
" <sensor_id/sensor_serial\n";
37 cerr <<
"Example: " <<
argv[0] <<
" 0 \n";
47 unsigned sensor_id_or_serial = 0;
50 sensor_id_or_serial = atoi(
argv[1]);
51 if (sensor_id_or_serial > 10)
63 cout <<
"OK " << rgbd_sensor.
getNumDevices() <<
" available devices."
65 cout <<
"\nUse device " << sensor_id_or_serial << endl << endl;
71 win3D.setCameraAzimuthDeg(140);
72 win3D.setCameraElevationDeg(20);
73 win3D.setCameraZoom(8.0);
75 win3D.setCameraPointingToPoint(2.5, 0, 0);
79 gl_points->setPointSize(2.5);
84 gl_2d_scan->enablePoints(
true);
85 gl_2d_scan->enableLine(
true);
86 gl_2d_scan->enableSurface(
true);
87 gl_2d_scan->setSurfaceColor(0, 0, 1, 0.3);
95 scene->insert(gl_points);
98 scene->insert(gl_2d_scan);
100 const double aspect_ratio = 480.0 / 640.0;
103 const int VW_HEIGHT = aspect_ratio * VW_WIDTH;
106 viewInt = scene->createViewport(
"view2d_int");
107 viewInt->setViewportPosition(5, 30, VW_WIDTH, VW_HEIGHT);
108 win3D.addTextMessage(10, 30 + VW_HEIGHT + 10,
"Intensity data", 2);
110 win3D.addTextMessage(5, 5,
"'o'/'i'-zoom out/in, ESC: quit", 110);
112 win3D.unlockAccess3DScene();
119 bool bObs =
false, bError =
true;
122 while (!win3D.keyHit())
131 if (bObs && !bError && newObs &&
133 newObs->timestamp != last_obs_tim)
136 last_obs_tim = newObs->timestamp;
139 if (newObs->hasRangeImage)
148 newObs->convertTo2DScan(*obs_2d, p2s);
153 win3D.get3DSceneAndLock();
156 win3D.addTextMessage(
165 if (newObs->hasIntensityImage)
167 viewInt->setImageView(
168 newObs->intensityImage);
172 win3D.unlockAccess3DScene();
182 if (newObs->hasRangeImage)
185 win3D.get3DSceneAndLock();
188 newObs->unprojectInto(
190 win3D.unlockAccess3DScene();
194 gl_2d_scan->setScan(*obs_2d);
200 cout <<
"\nClosing RGBD sensor...\n";
204 catch (
const std::exception& e)
211 printf(
"Untyped exception!!");
int getNumDevices() const
The number of available devices at initialization.
std::string sensorLabel
The sensor label that will have the newly created observation.
std::string dateTimeLocalToString(const mrpt::system::TTimeStamp t)
Convert a timestamp into this textual form (in local time): YEAR/MONTH/DAY,HH:MM:SS....
#define INVALID_TIMESTAMP
Represents an invalid timestamp, where applicable.
Used in CObservation3DRangeScan::unprojectInto()
std::shared_ptr< mrpt::opengl ::CPointCloudColoured > Ptr
void getNextObservation(mrpt::obs::CObservation3DRangeScan &out_obs, bool &there_is_obs, bool &hardware_error)
The main data retrieving function, to be called after calling loadConfig() and initialize().
Contains classes for various device interfaces.
double angle_sup
(Default=5 degrees) [Only if use_origin_sensor_pose=false] The upper & lower half-FOV angle (in radia...
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
void setSerialToOpen(const unsigned serial)
Set the serial number of the device to open.
Used in CObservation3DRangeScan::convertTo2DScan()
This namespace contains representation of robot actions and observations.
std::shared_ptr< mrpt::obs ::CObservation2DRangeScan > Ptr
static Ptr Create(Args &&... args)
std::shared_ptr< mrpt::opengl ::COpenGLViewport > Ptr
static Ptr Create(Args &&... args)
static Ptr Create(Args &&... args)
void setSensorIDToOpen(const unsigned sensor_id)
Set the sensor_id of the device to open.
mrpt::Clock::time_point TTimeStamp
A system independent time type, it holds the the number of 100-nanosecond intervals since January 1,...
std::shared_ptr< mrpt::opengl ::CPlanarLaserScan > Ptr
std::shared_ptr< mrpt::opengl ::COpenGLScene > Ptr
static Ptr Create(Args &&... args)
CSetOfObjects::Ptr CornerXYZ(float scale=1.0)
Returns three arrows representing a X,Y,Z 3D corner.
static Ptr Create(Args &&... args)
void initialize() override
Initializes the 3D camera - should be invoked after calling loadConfig() or setting the different par...
std::string exception_to_str(const std::exception &e)
Builds a nice textual representation of a nested exception, which if generated using MRPT macros (THR...
bool takeIntoAccountSensorPoseOnRobot
(Default: false) If false, local (sensor-centric) coordinates of points are generated.
The namespace for 3D scene representation and rendering.
std::shared_ptr< mrpt::obs ::CObservation3DRangeScan > Ptr
A graphical user interface (GUI) for efficiently rendering 3D scenes in real-time.
A class for grabing "range images", intensity images (either RGB or IR) and other information from an...
std::string std::string format(std::string_view fmt, ARGS &&... args)
Page generated by Doxygen 1.8.17 for MRPT 2.0.4 at Sun Jul 19 17:54:30 UTC 2020 | |