diff --git a/libs/config/include/mrpt/config/CLoadableOptions.h b/libs/config/include/mrpt/config/CLoadableOptions.h index dac64c0ce8..4aea9fb752 100644 --- a/libs/config/include/mrpt/config/CLoadableOptions.h +++ b/libs/config/include/mrpt/config/CLoadableOptions.h @@ -19,8 +19,6 @@ class CConfigFileBase; /** This is a virtual base class for sets of options than can be loaded from * and/or saved to configuration plain-text files. - * \todo Automatize this class thru a proxy auxiliary class where variables are - * registered from pointers, etc... * \ingroup mrpt_config_grp */ class CLoadableOptions diff --git a/libs/hwdrivers/include/mrpt/hwdrivers/CNTRIPEmitter.h b/libs/hwdrivers/include/mrpt/hwdrivers/CNTRIPEmitter.h index 797fa93b67..185c5c75fa 100644 --- a/libs/hwdrivers/include/mrpt/hwdrivers/CNTRIPEmitter.h +++ b/libs/hwdrivers/include/mrpt/hwdrivers/CNTRIPEmitter.h @@ -20,8 +20,8 @@ namespace mrpt::hwdrivers /** This "virtual driver" encapsulates a NTRIP client (see CNTRIPClient) but * adds the functionality of dumping the received datastream to a given serial * port. - * Used within rawlog-grabber, along CGPSInterface, this class allows to build - * a powerful & simple RTK-capable GPS receiver system. + * Used within rawlog-grabber, along CGPSInterface, this class allows one to + * build a powerful & simple RTK-capable GPS receiver system. * * Therefore, this sensor will never "collect" any observation via the * CGenericSensor interface. diff --git a/libs/hwdrivers/include/mrpt/hwdrivers/COpenNI2Generic.h b/libs/hwdrivers/include/mrpt/hwdrivers/COpenNI2Generic.h index 2ef4b0cee8..25a9a3fddd 100644 --- a/libs/hwdrivers/include/mrpt/hwdrivers/COpenNI2Generic.h +++ b/libs/hwdrivers/include/mrpt/hwdrivers/COpenNI2Generic.h @@ -13,7 +13,7 @@ namespace mrpt::hwdrivers { /** An abstract class for accessing OpenNI2 compatible sensors. - * This class permits to access several sensors simultaneously. The same + * This class permits one to access several sensors simultaneously. The same *options (resolution, fps, etc.) are used for every sensor. * * More references to read: diff --git a/libs/hwdrivers/include/mrpt/hwdrivers/COpenNI2Sensor.h b/libs/hwdrivers/include/mrpt/hwdrivers/COpenNI2Sensor.h index d22a9cd881..aa42f36cf3 100644 --- a/libs/hwdrivers/include/mrpt/hwdrivers/COpenNI2Sensor.h +++ b/libs/hwdrivers/include/mrpt/hwdrivers/COpenNI2Sensor.h @@ -17,7 +17,7 @@ namespace mrpt::hwdrivers { /** A class for grabing "range images", intensity images (either RGB or IR) and *other information from an OpenNI2 sensor. - * This class permits to access several sensors simultaneously. The same + * This class permits one to access several sensors simultaneously. The same *options (resolution, fps, etc.) are used for every sensor. * *

Configuration and usage:


diff --git a/libs/opengl/include/mrpt/opengl/CSetOfTriangles.h b/libs/opengl/include/mrpt/opengl/CSetOfTriangles.h index 7f2ee3e912..c44d4b31fb 100644 --- a/libs/opengl/include/mrpt/opengl/CSetOfTriangles.h +++ b/libs/opengl/include/mrpt/opengl/CSetOfTriangles.h @@ -139,9 +139,9 @@ class CSetOfTriangles : public CRenderizableShaderTriangles /** Polygon cache, used for ray-tracing only */ mutable std::vector m_polygons; }; -/** Inserts a set of triangles into the list; note that this method allows to - * pass another CSetOfTriangles as argument. Allows call chaining. - * \sa mrpt::opengl::CSetOfTriangles::insertTriangle +/** Inserts a set of triangles into the list; note that this method allows one + * to pass another CSetOfTriangles as argument. Allows call chaining. \sa + * mrpt::opengl::CSetOfTriangles::insertTriangle */ template inline CSetOfTriangles::Ptr& operator<<(CSetOfTriangles::Ptr& s, const T& t) diff --git a/python/src/mrpt/config/CLoadableOptions.cpp b/python/src/mrpt/config/CLoadableOptions.cpp index fa3c1c9b31..24034f6c6d 100644 --- a/python/src/mrpt/config/CLoadableOptions.cpp +++ b/python/src/mrpt/config/CLoadableOptions.cpp @@ -59,7 +59,7 @@ struct PyCallBack_mrpt_config_CLoadableOptions : public mrpt::config::CLoadableO void bind_mrpt_config_CLoadableOptions(std::function< pybind11::module &(std::string const &namespace_) > &M) { { // mrpt::config::CLoadableOptions file:mrpt/config/CLoadableOptions.h line:26 - pybind11::class_, PyCallBack_mrpt_config_CLoadableOptions> cl(M("mrpt::config"), "CLoadableOptions", "This is a virtual base class for sets of options than can be loaded from\n and/or saved to configuration plain-text files.\n \n\n Automatize this class thru a proxy auxiliary class where variables are\n registered from pointers, etc...\n \n\n\n "); + pybind11::class_, PyCallBack_mrpt_config_CLoadableOptions> cl(M("mrpt::config"), "CLoadableOptions", "This is a virtual base class for sets of options than can be loaded from\n and/or saved to configuration plain-text files.\n"); cl.def(pybind11::init()); cl.def( pybind11::init( [](){ return new PyCallBack_mrpt_config_CLoadableOptions(); } ) ); cl.def("loadFromConfigFile", (void (mrpt::config::CLoadableOptions::*)(const class mrpt::config::CConfigFileBase &, const std::string &)) &mrpt::config::CLoadableOptions::loadFromConfigFile, "This method load the options from a \".ini\"-like file or memory-stored\n string list.\n Only those parameters found in the given \"section\" and having\n the same name that the variable are loaded. Those not found in\n the file will stay with their previous values (usually the default\n values loaded at initialization). An example of an \".ini\" file:\n \n\n\n\n\n\n \n loadFromConfigFileName, saveToConfigFile\n\nC++: mrpt::config::CLoadableOptions::loadFromConfigFile(const class mrpt::config::CConfigFileBase &, const std::string &) --> void", pybind11::arg("source"), pybind11::arg("section")); diff --git a/python/src/mrpt/hwdrivers/CMyntEyeCamera.cpp b/python/src/mrpt/hwdrivers/CMyntEyeCamera.cpp index 2bd3af2294..b83925f685 100644 --- a/python/src/mrpt/hwdrivers/CMyntEyeCamera.cpp +++ b/python/src/mrpt/hwdrivers/CMyntEyeCamera.cpp @@ -252,7 +252,7 @@ void bind_mrpt_hwdrivers_CMyntEyeCamera(std::function< pybind11::module &(std::s cl.def("assign", (class mrpt::hwdrivers::CMyntEyeCamera & (mrpt::hwdrivers::CMyntEyeCamera::*)(const class mrpt::hwdrivers::CMyntEyeCamera &)) &mrpt::hwdrivers::CMyntEyeCamera::operator=, "C++: mrpt::hwdrivers::CMyntEyeCamera::operator=(const class mrpt::hwdrivers::CMyntEyeCamera &) --> class mrpt::hwdrivers::CMyntEyeCamera &", pybind11::return_value_policy::automatic, pybind11::arg("")); } { // mrpt::hwdrivers::COpenNI2Generic file:mrpt/hwdrivers/COpenNI2Generic.h line:23 - pybind11::class_> cl(M("mrpt::hwdrivers"), "COpenNI2Generic", "An abstract class for accessing OpenNI2 compatible sensors.\n This class permits to access several sensors simultaneously. The same\noptions (resolution, fps, etc.) are used for every sensor.\n\n More references to read:\n - http://http://www.openni.org/\n \n\n\n "); + pybind11::class_> cl(M("mrpt::hwdrivers"), "COpenNI2Generic", "An abstract class for accessing OpenNI2 compatible sensors.\n This class permits one to access several sensors simultaneously. The same\noptions (resolution, fps, etc.) are used for every sensor.\n\n More references to read:\n - http://http://www.openni.org/\n \n\n\n "); cl.def( pybind11::init( [](){ return new mrpt::hwdrivers::COpenNI2Generic(); } ) ); cl.def( pybind11::init( [](int const & a0, int const & a1){ return new mrpt::hwdrivers::COpenNI2Generic(a0, a1); } ), "doc" , pybind11::arg("width"), pybind11::arg("height")); cl.def( pybind11::init( [](int const & a0, int const & a1, float const & a2){ return new mrpt::hwdrivers::COpenNI2Generic(a0, a1, a2); } ), "doc" , pybind11::arg("width"), pybind11::arg("height"), pybind11::arg("fps")); @@ -286,7 +286,7 @@ void bind_mrpt_hwdrivers_CMyntEyeCamera(std::function< pybind11::module &(std::s cl.def("assign", (class mrpt::hwdrivers::COpenNI2Generic & (mrpt::hwdrivers::COpenNI2Generic::*)(const class mrpt::hwdrivers::COpenNI2Generic &)) &mrpt::hwdrivers::COpenNI2Generic::operator=, "C++: mrpt::hwdrivers::COpenNI2Generic::operator=(const class mrpt::hwdrivers::COpenNI2Generic &) --> class mrpt::hwdrivers::COpenNI2Generic &", pybind11::return_value_policy::automatic, pybind11::arg("")); } { // mrpt::hwdrivers::COpenNI2Sensor file:mrpt/hwdrivers/COpenNI2Sensor.h line:216 - pybind11::class_, PyCallBack_mrpt_hwdrivers_COpenNI2Sensor, mrpt::hwdrivers::CGenericSensor, mrpt::hwdrivers::COpenNI2Generic> cl(M("mrpt::hwdrivers"), "COpenNI2Sensor", "A class for grabing \"range images\", intensity images (either RGB or IR) and\nother information from an OpenNI2 sensor.\n This class permits to access several sensors simultaneously. The same\noptions (resolution, fps, etc.) are used for every sensor.\n\n Configuration and usage: \n Data is returned as observations of type mrpt::obs::CObservation3DRangeScan.\n See those classes for documentation on their fields.\n\n As with any other CGenericSensor class, the normal sequence of methods to be\ncalled is:\n - CGenericSensor::loadConfig() - Or calls to the individual setXXX() to\nconfigure the sensor parameters.\n - COpenNI2Sensor::initialize() - to start the communication with the\nsensor.\n - call COpenNI2Sensor::getNextObservation() for getting the data.\n\n Calibration parameters\n In this class we employ the OpenNI2 method to return depth images refered\nto the RGB camera. Otherwise we could specify\n an accurate transformation of depth images to 3D points, you'll have to\ncalibrate your RGBD sensor for that, and supply\n the following threee pieces of information (default calibration\ndata will be used otherwise, but they'll be not optimal for all sensors!):\n - Camera parameters for the RGB camera. See\nCOpenNI2Sensor::setCameraParamsIntensity()\n - Camera parameters for the depth camera. See\nCOpenNI2Sensor::setCameraParamsDepth()\n - The 3D relative pose of the two cameras. See\nCOpenNI2Sensor::setRelativePoseIntensityWrtDepth()\n\n See https://www.mrpt.org/Kinect_calibration for a procedure to calibrate\nRGBD sensors with an interactive GUI program.\n\n Coordinates convention\n The origin of coordinates is the focal point of the depth camera, with the\naxes oriented as in the\n diagram shown in mrpt::obs::CObservation3DRangeScan. Notice in that\npicture that the RGB camera is\n assumed to have axes as usual in computer vision, which differ from those\nfor the depth camera.\n\n The X,Y,Z axes used to report the data from accelerometers coincide with\nthose of the depth camera\n (e.g. the camera standing on a table would have an ACC_Z=-9.8m/s2).\n\n Notice however that, for consistency with stereo cameras, when loading the\ncalibration parameters from\n a configuration file, the left-to-right pose increment is expected as if\nboth RGB & IR cameras had\n their +Z axes pointing forward, +X to the right, +Y downwards (just like\nit's the standard in stereo cameras\n and in computer vision literature). In other words: the pose stored in\nthis class uses a different\n axes convention for the depth camera than in a stereo camera, so when a\npose L2R is loaded from a calibration file\n it's actually converted like:\n\n L2R(this class convention) = CPose3D(0,0,0,-90deg,0deg,-90deg) (+)\nL2R(in the config file)\n\n Some general comments\n - Depth is grabbed in millimeters\n - This sensor can be also used from within rawlog-grabber to grab\ndatasets\nwithin a robot with more sensors.\n - There is no built-in threading support, so if you use this class\nmanually\n(not with-in rawlog-grabber),\n the ideal would be to create a thread and continuously request data\nfrom\nthat thread (see mrpt::system::createThread ).\n - The intensity channel default to the RGB images, but it can be changed\nwith setVideoChannel() to read the IR camera images (useful for calibrating).\n - There is a built-in support for an optional preview of the data on a\nwindow, so you don't need to even worry on creating a window to show them.\n - This class relies on an embedded version of libfreenect (you do NOT\nneed\nto install it in your system). Thanks guys for the great job!\n\n Converting to 3D point cloud \n You can convert the 3D observation into a 3D point cloud with this piece\nof code:\n\n \n\n\n\n\n\n Then the point cloud mrpt::maps::CColouredPointsMap can be converted into\nan OpenGL object for\n rendering with mrpt::maps::CMetricMap::getAs3DObject() or alternatively\nwith:\n\n \n\n\n\n\n Platform-specific comments\n For more details, refer to \n*>libfreenect documentation:\n - Linux: You'll need root privileges to access Kinect. Or, install\n\nMRPT/scripts/51-kinect.rules in /etc/udev/rules.d/ to\nallow access to all users.\n - Windows:\n - Since MRPT 0.9.4 you'll only need to install \n*href=\"http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/\"\n>libusb-win32: download and extract the latest\nlibusb-win32-bin-x.x.x.x.zip\n - To install the drivers, read this:\nhttp://openkinect.org/wiki/Getting_Started#Windows\n - MacOS: (write me!)\n\n Format of parameters for loading from a .ini file\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n More references to read:IMPEXP mrpt\n - http://http://www.openni.org/\n \n\n\n "); + pybind11::class_, PyCallBack_mrpt_hwdrivers_COpenNI2Sensor, mrpt::hwdrivers::CGenericSensor, mrpt::hwdrivers::COpenNI2Generic> cl(M("mrpt::hwdrivers"), "COpenNI2Sensor", "A class for grabing \"range images\", intensity images (either RGB or IR) and\nother information from an OpenNI2 sensor.\n This class permits one to access several sensors simultaneously. The same\noptions (resolution, fps, etc.) are used for every sensor.\n\n Configuration and usage: \n Data is returned as observations of type mrpt::obs::CObservation3DRangeScan.\n See those classes for documentation on their fields.\n\n As with any other CGenericSensor class, the normal sequence of methods to be\ncalled is:\n - CGenericSensor::loadConfig() - Or calls to the individual setXXX() to\nconfigure the sensor parameters.\n - COpenNI2Sensor::initialize() - to start the communication with the\nsensor.\n - call COpenNI2Sensor::getNextObservation() for getting the data.\n\n Calibration parameters\n In this class we employ the OpenNI2 method to return depth images refered\nto the RGB camera. Otherwise we could specify\n an accurate transformation of depth images to 3D points, you'll have to\ncalibrate your RGBD sensor for that, and supply\n the following threee pieces of information (default calibration\ndata will be used otherwise, but they'll be not optimal for all sensors!):\n - Camera parameters for the RGB camera. See\nCOpenNI2Sensor::setCameraParamsIntensity()\n - Camera parameters for the depth camera. See\nCOpenNI2Sensor::setCameraParamsDepth()\n - The 3D relative pose of the two cameras. See\nCOpenNI2Sensor::setRelativePoseIntensityWrtDepth()\n\n See https://www.mrpt.org/Kinect_calibration for a procedure to calibrate\nRGBD sensors with an interactive GUI program.\n\n Coordinates convention\n The origin of coordinates is the focal point of the depth camera, with the\naxes oriented as in the\n diagram shown in mrpt::obs::CObservation3DRangeScan. Notice in that\npicture that the RGB camera is\n assumed to have axes as usual in computer vision, which differ from those\nfor the depth camera.\n\n The X,Y,Z axes used to report the data from accelerometers coincide with\nthose of the depth camera\n (e.g. the camera standing on a table would have an ACC_Z=-9.8m/s2).\n\n Notice however that, for consistency with stereo cameras, when loading the\ncalibration parameters from\n a configuration file, the left-to-right pose increment is expected as if\nboth RGB & IR cameras had\n their +Z axes pointing forward, +X to the right, +Y downwards (just like\nit's the standard in stereo cameras\n and in computer vision literature). In other words: the pose stored in\nthis class uses a different\n axes convention for the depth camera than in a stereo camera, so when a\npose L2R is loaded from a calibration file\n it's actually converted like:\n\n L2R(this class convention) = CPose3D(0,0,0,-90deg,0deg,-90deg) (+)\nL2R(in the config file)\n\n Some general comments\n - Depth is grabbed in millimeters\n - This sensor can be also used from within rawlog-grabber to grab\ndatasets\nwithin a robot with more sensors.\n - There is no built-in threading support, so if you use this class\nmanually\n(not with-in rawlog-grabber),\n the ideal would be to create a thread and continuously request data\nfrom\nthat thread (see mrpt::system::createThread ).\n - The intensity channel default to the RGB images, but it can be changed\nwith setVideoChannel() to read the IR camera images (useful for calibrating).\n - There is a built-in support for an optional preview of the data on a\nwindow, so you don't need to even worry on creating a window to show them.\n - This class relies on an embedded version of libfreenect (you do NOT\nneed\nto install it in your system). Thanks guys for the great job!\n\n Converting to 3D point cloud \n You can convert the 3D observation into a 3D point cloud with this piece\nof code:\n\n \n\n\n\n\n\n Then the point cloud mrpt::maps::CColouredPointsMap can be converted into\nan OpenGL object for\n rendering with mrpt::maps::CMetricMap::getAs3DObject() or alternatively\nwith:\n\n \n\n\n\n\n Platform-specific comments\n For more details, refer to \n*>libfreenect documentation:\n - Linux: You'll need root privileges to access Kinect. Or, install\n\nMRPT/scripts/51-kinect.rules in /etc/udev/rules.d/ to\nallow access to all users.\n - Windows:\n - Since MRPT 0.9.4 you'll only need to install \n*href=\"http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/\"\n>libusb-win32: download and extract the latest\nlibusb-win32-bin-x.x.x.x.zip\n - To install the drivers, read this:\nhttp://openkinect.org/wiki/Getting_Started#Windows\n - MacOS: (write me!)\n\n Format of parameters for loading from a .ini file\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n More references to read:IMPEXP mrpt\n - http://http://www.openni.org/\n \n\n\n "); cl.def( pybind11::init( [](){ return new mrpt::hwdrivers::COpenNI2Sensor(); }, [](){ return new PyCallBack_mrpt_hwdrivers_COpenNI2Sensor(); } ) ); cl.def("GetRuntimeClass", (const struct mrpt::hwdrivers::TSensorClassId * (mrpt::hwdrivers::COpenNI2Sensor::*)() const) &mrpt::hwdrivers::COpenNI2Sensor::GetRuntimeClass, "C++: mrpt::hwdrivers::COpenNI2Sensor::GetRuntimeClass() const --> const struct mrpt::hwdrivers::TSensorClassId *", pybind11::return_value_policy::automatic); cl.def_static("CreateObject", (class mrpt::hwdrivers::CGenericSensor * (*)()) &mrpt::hwdrivers::COpenNI2Sensor::CreateObject, "C++: mrpt::hwdrivers::COpenNI2Sensor::CreateObject() --> class mrpt::hwdrivers::CGenericSensor *", pybind11::return_value_policy::automatic); diff --git a/python/src/mrpt/hwdrivers/CNTRIPClient.cpp b/python/src/mrpt/hwdrivers/CNTRIPClient.cpp index c8ef0b9fff..2440654c69 100644 --- a/python/src/mrpt/hwdrivers/CNTRIPClient.cpp +++ b/python/src/mrpt/hwdrivers/CNTRIPClient.cpp @@ -355,7 +355,7 @@ void bind_mrpt_hwdrivers_CNTRIPClient(std::function< pybind11::module &(std::str } { // mrpt::hwdrivers::CNTRIPEmitter file:mrpt/hwdrivers/CNTRIPEmitter.h line:62 - pybind11::class_, PyCallBack_mrpt_hwdrivers_CNTRIPEmitter, mrpt::hwdrivers::CGenericSensor> cl(M("mrpt::hwdrivers"), "CNTRIPEmitter", "This \"virtual driver\" encapsulates a NTRIP client (see CNTRIPClient) but\n adds the functionality of dumping the received datastream to a given serial\n port.\n Used within rawlog-grabber, along CGPSInterface, this class allows to build\n a powerful & simple RTK-capable GPS receiver system.\n\n Therefore, this sensor will never \"collect\" any observation via the\n CGenericSensor interface.\n\n See also the example configuration file for rawlog-grabber in\n \"share/mrpt/config_files/rawlog-grabber\".\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n The next picture summarizes existing MRPT classes related to GPS / GNSS\n devices (CGPSInterface, CNTRIPEmitter, CGPS_NTRIP):\n\n \n\n \n\n \n CGPSInterface, CGPS_NTRIP, CNTRIPClient"); + pybind11::class_, PyCallBack_mrpt_hwdrivers_CNTRIPEmitter, mrpt::hwdrivers::CGenericSensor> cl(M("mrpt::hwdrivers"), "CNTRIPEmitter", "This \"virtual driver\" encapsulates a NTRIP client (see CNTRIPClient) but\n adds the functionality of dumping the received datastream to a given serial\n port.\n Used within rawlog-grabber, along CGPSInterface, this class allows one to build\n a powerful & simple RTK-capable GPS receiver system.\n\n Therefore, this sensor will never \"collect\" any observation via the\n CGenericSensor interface.\n\n See also the example configuration file for rawlog-grabber in\n \"share/mrpt/config_files/rawlog-grabber\".\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n The next picture summarizes existing MRPT classes related to GPS / GNSS\n devices (CGPSInterface, CNTRIPEmitter, CGPS_NTRIP):\n\n \n\n \n\n \n CGPSInterface, CGPS_NTRIP, CNTRIPClient"); cl.def( pybind11::init( [](){ return new mrpt::hwdrivers::CNTRIPEmitter(); }, [](){ return new PyCallBack_mrpt_hwdrivers_CNTRIPEmitter(); } ) ); cl.def("GetRuntimeClass", (const struct mrpt::hwdrivers::TSensorClassId * (mrpt::hwdrivers::CNTRIPEmitter::*)() const) &mrpt::hwdrivers::CNTRIPEmitter::GetRuntimeClass, "C++: mrpt::hwdrivers::CNTRIPEmitter::GetRuntimeClass() const --> const struct mrpt::hwdrivers::TSensorClassId *", pybind11::return_value_policy::automatic); cl.def_static("CreateObject", (class mrpt::hwdrivers::CGenericSensor * (*)()) &mrpt::hwdrivers::CNTRIPEmitter::CreateObject, "C++: mrpt::hwdrivers::CNTRIPEmitter::CreateObject() --> class mrpt::hwdrivers::CGenericSensor *", pybind11::return_value_policy::automatic);