Skip to content

Commit

Permalink
docs improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
jlblancoc committed May 31, 2021
1 parent 3418567 commit bdd76dd
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 75 deletions.
34 changes: 23 additions & 11 deletions doc/source/compiling.rst
Original file line number Diff line number Diff line change
Expand Up @@ -31,27 +31,39 @@ Minimum compiler requisites:
.. dropdown:: Debian/Ubuntu
:open:

**Minimum** recommended requisites:
**Minimum recommended** requisites:

.. code-block:: bash
sudo apt install build-essential pkg-config cmake libwxgtk3.0-dev \
libwxgtk3.0-gtk3-dev libopencv-dev libeigen3-dev libgtest-dev
libwxgtk3.0-gtk3-dev libopencv-dev libeigen3-dev zlib1g-dev \
libsuitesparse-dev libjpeg-dev
**Recommended additional** packages to enable most MRPT features
(except ROS bridges):
**Recommended additional** packages to enable most MRPT features:

.. code-block:: bash
sudo apt install libftdi-dev freeglut3-dev zlib1g-dev \
libusb-1.0-0-dev libudev-dev libfreenect-dev libdc1394-22-dev \
libavformat-dev libswscale-dev libassimp-dev libjpeg-dev \
libsuitesparse-dev libpcap-dev liboctomap-dev libglfw3-dev \
binutils-dev
# Build OpenGL graphics, Qt and nanogui GUIs:
sudo apt install freeglut3-dev libassimp-dev libglfw3-dev \
libglu1-mesa-dev libqt5opengl5-dev qtbase5-dev \
libxrandr-dev libxxf86vm-dev
# Support most common sensors:
sudo apt install libftdi-dev libusb-1.0-0-dev libudev-dev libfreenect-dev \
libdc1394-22-dev libavformat-dev libswscale-dev libpcap-dev \
liboctomap-dev libopenni2-dev
Install additional dependencies for ros1bridge using official Ubuntu
repositories. If you already have a ROS distribution installed,
# Support showing debug information in call stacks upon exceptions:
sudo apt install binutils-dev libiberty-dev
# Support using system SimpleINI library (only Ubuntu >=20.04 focal)
sudo apt install libicu-dev libsimpleini-dev
If your Ubuntu distribution is old and does not have any of the packages
above, do not worry and ignore it, MRPT CMake scripts will handle it.

**ROS1 support:** Install additional dependencies for ros1bridge using
official Ubuntu repositories. If you already have a ROS distribution installed,
doing ``source /opt/ros/xxx/setup.bash`` is enough, no further packages
must be installed. Do not install these packages if you do not need
the `mrpt::ros1bridge <group_mrpt_ros1bridge_grp.html>`_ module.
Expand Down
109 changes: 45 additions & 64 deletions doc/source/supported-sensors.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ All hardware and sensor-related classes can be found in
the \ `mrpt-hwdrivers
library <mrpt-hwdrivers.html>`__,
which contains
the \ `mrpt::hwdrivers <namespacemrpt_1_1hwdrivers.html>`__ namespace.
See also
the \ `rawlog-grabber <application-rawlog-grabber.html>`__ application.
the \ `mrpt::hwdrivers <namespace_mrpt_hwdrivers.html>`__ namespace.
See also: :ref:`doxid-app_rawlog-grabber`.

Unless specifically noted, all devices are supported under \ **both
Windows and Linux**, with only some (for now) supported on MacOS.

Expand All @@ -32,13 +32,13 @@ Any 3D camera supported by OpenNI2
:align: right

The C++ interface is implemented in the
class \ `mrpt::hwdrivers::OpenNI2Sensor <classmrpt_1_1hwdrivers_1_1_c_open_n_i2_sensor.html>`__.
class \ `mrpt::hwdrivers::OpenNI2Sensor <class_mrpt_hwdrivers_COpenNI2Sensor.html>`__.

Xbox Kinect (RGB+D camera)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The C++ interface is implemented in the
class \ `mrpt::hwdrivers::CKinect <classmrpt_1_1hwdrivers_1_1_c_kinect.html>`__.
class \ `mrpt::hwdrivers::CKinect <class_mrpt_hwdrivers_CKinect.html>`__.
See \ `this page <http://www.mrpt.org/Kinect_and_MRPT>`__ for more
information, demo videos and example code.

Expand All @@ -50,9 +50,8 @@ SwissRanger SR3000/4000 (legacy)
:align: right

The C++ interface is implemented in the
class \ `mrpt::hwdrivers::CSwissRanger3DCamera <classmrpt_1_1hwdrivers_1_1_c_swiss_ranger3_d_camera.html>`__.
See the \ `page of the demo
application <example-swissranger-sr4000-3d-camera-demo-application/>`__ for
class \ `mrpt::hwdrivers::CSwissRanger3DCamera <class_mrpt_hwdrivers_CSwissRanger3DCamera.html>`__.
See the \ `page of the demo application <page_hwdrivers_swissranger_example.html>`__ for
more information and a demo video.

Manufacturer: mesa-imaging
Expand All @@ -68,7 +67,7 @@ SICK LMS 2XX
:align: right

SICK LMS2XX laser scanners are supported by the
class \ `mrpt::hwdrivers::CSickLaserSerial <classmrpt_1_1hwdrivers_1_1_c_sick_laser_serial.html>`__,
class \ `mrpt::hwdrivers::CSickLaserSerial <class_mrpt_hwdrivers_CSickLaserSerial.html>`__,
which supports a wide variety of configurations (different aperture
angles, 0.25/0.50/1.0 degrees separation between rays,…) and operating
baud rates, including 500Kbauds for the USB2SERIAL converters that allow
Expand All @@ -81,7 +80,7 @@ SICK LMS 100 (Ethernet)
:align: right

SICK LMS 100 laser scanners with Ethernet interface are supported by the
class \ `mrpt::hwdrivers::CLMS100Eth <classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html>`__.
class \ `mrpt::hwdrivers::CLMS100Eth <class_mrpt_hwdrivers_CLMS100Eth.html>`__.

SICK TiM 55x/56x (Ethernet)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand All @@ -90,7 +89,7 @@ SICK TiM 55x/56x (Ethernet)
:align: right

SICK TiM laser scanners with Ethernet interface are supported by the
class mrpt::hwdrivers::CSICKTim561Eth.
class `mrpt::hwdrivers::CSICKTim561Eth <class_mrpt_hwdrivers_CSICKTim561Eth.html>`_.

Note: Since MRPT 1.9.9.

Expand All @@ -101,7 +100,7 @@ Hokuyo URG/UTM/UXM
:align: right

A wide range of Hokuyo laser scanners are supported by one single class,
the `mrpt::hwdrivers::CHokuyoURG <classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html>`__.
the `mrpt::hwdrivers::CHokuyoURG <class_mrpt_hwdrivers_CHokuyoURG.html>`__.
See also the example
named `HOKUYO_laser_test <example_hokuyo_urgutm_laser_scanner.html>`__.

Expand All @@ -114,7 +113,7 @@ Ibeo Automotive Laser Scanners
:align: right

Ibeo LUX laser scanner, Ethernet-interfaced, is supported since MRPT
0.9.4 through the class \ `mrpt::hwdrivers::CIbeoLuxETH <classmrpt_1_1hwdrivers_1_1_c_ibeo_lux_e_t_h.html>`__.
0.9.4 through the class \ `mrpt::hwdrivers::CIbeoLuxETH <class_mrpt_hwdrivers_CIbeoLuxETH.html>`__.

See the manufacturer website: \ http://www.ibeo-as.com/ 

Expand All @@ -126,7 +125,7 @@ RoboPeak RP-LIDAR laser Scanners

The low-cost RP-LIDAR sensor, USB-interfaced, is supported since MRPT
1.2.2 through the
class \ `mrpt::hwdrivers::CRobotPeakLidar <classmrpt_1_1hwdrivers_1_1_c_robo_peak_lidar.html>`__.
class \ `mrpt::hwdrivers::CRoboPeakLidar <class_mrpt_hwdrivers_CRoboPeakLidar.html>`__.

See the manufacturer website: \ http://rplidar.robopeak.com/

Expand All @@ -142,24 +141,21 @@ Velodyne
`Velodyne 3D LIDARs <https://velodynelidar.com/>`__ are supported by
means of:

- `mrpt::hwdrivers::CVelodyneScanner <classmrpt_1_1hwdrivers_1_1_c_velodyne_scanner.html>`__
- `mrpt::obs::CObservationVelodyne <classmrpt_1_1obs_1_1_c_observation_velodyne_scan.html>`__
- The new
application \ `velodyne-view <http://www.mrpt.org/list-of-mrpt-apps/application-velodyne-view/>`__
- Visualization of datasets
in \ `RawLogViewer <http://www.mrpt.org/list-of-mrpt-apps/rawlogviewer/>`__
- Grab of LiDAR scans, simultaneously to other sensors, is possible
via \ `rawlog-grabber <http://www.mrpt.org/list-of-mrpt-apps/application-rawlog-grabber/>`__

- `mrpt::hwdrivers::CVelodyneScanner <class_mrpt_hwdrivers_CVelodyneScanner.html>`__
- `mrpt::obs::CObservationVelodyne <class_mrpt_obs_CObservationVelodyneScan.html>`__
- :ref:`doxid-app_velodyne-view`
- Visualization of datasets: :ref:`app_RawLogViewer`
- Grabbing LiDAR scans, simultaneously to other sensors, is possible
via: :ref:`doxid-app_rawlog-grabber`

4. Cameras
----------

**Important: **\ MRPT provides a universal class capable of managing all
**Important:** MRPT provides a universal class capable of managing all
the following cameras with a common interface, deciding which camera to
open at runtime and converting the images from all the cameras to one
single format, the OpenCV IplImage format. See the
class \ `mrpt::hwdrivers::CCameraSensor <classmrpt_1_1hwdrivers_1_1_c_camera_sensor.html>`__.
class \ `mrpt::hwdrivers::CCameraSensor <class_mrpt_hwdrivers_CCameraSensor.html>`__.

Monocular and stereo cameras
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand All @@ -171,17 +167,17 @@ Apart from the generic CCameraSensor class, MRPT offers this
implementation-specific classes:

- All \ **cameras supported by OpenCV** are accessible by means of the
class \ `mrpt::hwdrivers::CImageGrabber_OpenCV <classmrpt_1_1hwdrivers_1_1_c_image_grabber___open_c_v.html>`__.
class \ `mrpt::hwdrivers::CImageGrabber_OpenCV <class_mrpt_hwdrivers_CImageGrabber_OpenCV.html>`__.
- **Firewire cameras** are specifically supported in GNU/Linux by means
of the libdc1394 library and the
class \ `mrpt::hwdrivers::CImageGrabber_dc1394 <classmrpt_1_1hwdrivers_1_1_c_image_grabber__dc1394.html>`__.
class \ `mrpt::hwdrivers::CImageGrabber_dc1394 <class_mrpt_hwdrivers_CImageGrabber_dc1394.html>`__.
- All \ **Point Grey Research (PGR) cameras** supported
by \ `FlyCapture2 <http://www.ptgrey.com/flycapture-sdk>`__ can be
read with the
class \ `mrpt::hwdrivers::CImageGrabber_FlyCapture2 <classmrpt_1_1hwdrivers_1_1_c_image_grabber___fly_capture2.html>`__ (Requires:
class \ `mrpt::hwdrivers::CImageGrabber_FlyCapture2 <class_mrpt_hwdrivers_CImageGrabber_FlyCapture2.html>`__ (Requires:
MRPT 1.0.3). \ **Stereo pairs** built from two independent PGR
cameras are supported
via \ `mrpt::hwdrivers::CCameraSensor <classmrpt_1_1hwdrivers_1_1_c_camera_sensor.html>`__.
via \ `mrpt::hwdrivers::CCameraSensor <class_mrpt_hwdrivers_CCameraSensor.html>`__.
Bumblebee/Bumblebee2 Stereo cameras
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand All @@ -190,15 +186,15 @@ Bumblebee stereo cameras are supported in MRPT in both Windows &
GNU/Linux by means of the manufacturer API and the libdc1394 libraries,
respectively. The C++ interface is the same in any case, and it’s
implemented in the
class\ `mrpt::hwdrivers::CStereoGrabber_Bumblebee_libdc1394 <classmrpt_1_1hwdrivers_1_1_c_stereo_grabber___bumblebee__libdc1394.html>`__.
class\ `mrpt::hwdrivers::CStereoGrabber_Bumblebee_libdc1394 <class_mrpt_hwdrivers_CStereoGrabber_Bumblebee_libdc1394.html>`__.

Videre Stereo cameras
~~~~~~~~~~~~~~~~~~~~~~~~~~

Videre stereo cameras are supported in MRPT (since MRPT 0.9.1) for
GNU/Linux only for now, by means of the manufacturer SVS API. The C++
interface is implemented in the
class \ `mrpt::hwdrivers::CStereoGrabber_SVS <classmrpt_1_1hwdrivers_1_1_c_stereo_grabber___s_v_s.html>`__.
class \ `mrpt::hwdrivers::CStereoGrabber_SVS <class_mrpt_hwdrivers_CStereoGrabber_SVS.html>`__.

IP cameras and video files
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand All @@ -209,40 +205,31 @@ IP cameras and video files
Both IP cameras and offline video files (in many common video formats
and codecs) are supported by means of the ffmpeg libraries, within the
MRPT
class \ `mrpt::hwdrivers::CFFMPEG_InputStream <classmrpt_1_1hwdrivers_1_1_c_f_f_m_p_e_g___input_stream.html>`__.
class \ `mrpt::hwdrivers::CFFMPEG_InputStream <class_mrpt_hwdrivers_CFFMPEG_InputStream.html>`__.

5. Inertial Sensors (IMUs)
----------------------------

5.1. xSens MTi Inertial Unit (IMU) – 3rd generation devices
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. image:: images/mti-150x150.jpg
:align: right

The interface to this sensor is implemented in the
class \ `mrpt::hwdrivers::CIMUXSens <classmrpt_1_1hwdrivers_1_1_c_i_m_u_x_sens.html>`__.

5.2. xSens MTi Inertial Units (IMUs) – 4th generation devices
5.1. xSens MTi Inertial Units (IMUs) – 4th generation devices
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. image:: images/MTi_10-series-150x150.jpg
:align: right

The interface to this sensor is implemented in the
class \ `mrpt::hwdrivers::CIMUXSens_MT4 <classmrpt_1_1hwdrivers_1_1_c_i_m_u_x_sens___m_t4.html>`__.
class \ `mrpt::hwdrivers::CIMUXSens_MT4 <class_mrpt_hwdrivers_CIMUXSens_MT4.html>`__.

Required: MRPT 1.0.3

KVH DSP3000 (Fiber Optic Gyro)
5.2. KVH DSP3000 (Fiber Optic Gyro)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. image:: images/KVH_dsp3000_IMU-150x150.jpg
:align: right

A precise fiber optic gyro. The interface to this sensor is implemented
in the
class \ `mrpt::hwdrivers::CGyroKVHDSP3000 <classmrpt_1_1hwdrivers_1_1_c_gyro_k_v_h_d_s_p3000.html>`__.
class \ `mrpt::hwdrivers::CGyroKVHDSP3000 <class_mrpt_hwdrivers_CGyroKVHDSP3000.html>`__.

See the manufacturer
website: \ `http://www.kvh.com/…/Fiber-Optic-Gyros/DSP-3000.aspx <http://www.kvh.com/Military-and-Government/Gyros-Inertial-Systems-and-Compasses/Gyros-IMUs-and-INS/Fiber-Optic-Gyros/DSP-3000.aspx>`__ 
Expand All @@ -259,7 +246,7 @@ Parser of standard NMEA commands and Novatel binary frames
An implementation of a parser of NMEA commands from a wide range of GPS
devices, also capable of receiving Novatel frames (this latter feature,
only available in MRPT 1.3.3 or newer), can be found in the
class \ `mrpt::hwdrivers::CGPSInterface <classmrpt_1_1hwdrivers_1_1_c_g_p_s_interface.html>`__.
class \ `mrpt::hwdrivers::CGPSInterface <class_mrpt_hwdrivers_CGPSInterface.html>`__.

RTK corrections via NTRIP
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand All @@ -270,22 +257,14 @@ RTK corrections via NTRIP
You can use advanced RTK GPS receivers with MRPT. For that, MRPT
includes a class that receives NTRIP RTK corrections from an Internet
server and sends them to a serial port connected to the GPS receiver.
See \ `mrpt::hwdrivers::CNTRIPEmitter <classmrpt_1_1hwdrivers_1_1_c_n_t_r_i_p_emitter.html>`__.
See \ `mrpt::hwdrivers::CNTRIPEmitter <class_mrpt_hwdrivers_CNTRIPEmitter.html>`__.

7. Activemedia robotic bases (All ARIA-compatible bases)
--------------------------------------------------------

.. image:: images/Pioneer2DX_2-150x150.jpg
:align: right


Access to all ARIA-based mobile robotic bases is done via the C++
class \ `mrpt::hwdrivers::CActivMediaRobotBase <http://mrpt.ual.es/reference/1.4.0/classmrpt_1_1hwdrivers_1_1_c_activ_media_robot_base.html>`__,
which implements basic mobility functions as well as sonars and other
sensors. Since MRPT carries its own embedded version of ARIA, you won’t
need any software or library previously installed in your system to use
this class.

Note: Support for these robots was dropped in MRPT 1.5.3. Use older
versions if you need it with MRPT. Ten years ago, it might make sense to
integrate ARIA into MRPT, but nowadays it’s probably more practical to
Expand All @@ -296,7 +275,9 @@ use ARIA ROS packages to access robots instead of directly using MRPT.

An interface to this mobile robot, equipped with an IP camera, is
implemented in the C++
class \ `mrpt::hwdrivers::CRovio <classmrpt_1_1hwdrivers_1_1_c_rovio.html>`__.
class ``mrpt::hwdrivers::CRovio``.

Note: Deprecated and removed in MRPT 2.1.0.

See the manufacturer
web: \ http://www.wowwee.com/en/products/tech/telepresence/rovio/rovio 
Expand All @@ -309,7 +290,7 @@ web: \ http://www.wowwee.com/en/products/tech/telepresence/rovio/rovio 

A cross-platform and very simple interface to joysticks is provided via
the
class \ `mrpt::hwdrivers::CJoystick <classmrpt_1_1hwdrivers_1_1_c_joystick.html>`__.
class \ `mrpt::hwdrivers::CJoystick <class_mrpt_hwdrivers_CJoystick.html>`__.

10. Pan and Tilt Units
----------------------
Expand All @@ -318,14 +299,14 @@ Direct Perception Pan-Tilt-Unit (PTU)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

An interface to this PTU model is implemented in the C++
class \ `mrpt::hwdrivers::CPtuDPerception <classmrpt_1_1hwdrivers_1_1_c_ptu_d_perception.html>`__.
class \ `mrpt::hwdrivers::CPtuDPerception <class_mrpt_hwdrivers_CPtuDPerception.html>`__.

Micos Tilt-Unit
~~~~~~~~~~~~~~~~~~~~~

An interface to the precision “rotation stage DT-80”, by MICOS. See the
C++
class \ `mrpt::hwdrivers::CTuMicos <classmrpt_1_1hwdrivers_1_1_c_tu_micos.html>`__.
class \ `mrpt::hwdrivers::CTuMicos <class_mrpt_hwdrivers_CTuMicos.html>`__.

See the manufacturer
website: http://www.micos-online.com/web2/en/1,5,120,dt80.html
Expand All @@ -337,7 +318,7 @@ Impinj’s RFID Speedway Revolution Reader
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This sensor is supported by the MRPT
class \ `mrpt::hwdrivers::CImpinfRFID <classmrpt_1_1hwdrivers_1_1_c_impinj_r_f_i_d.html>`__.
class \ `mrpt::hwdrivers::CImpinjRFID <class_mrpt_hwdrivers_CImpinjRFID.html>`__.
Note however that this sensor requires an external program outside of
MRPT for communications (refer to the Doxygen documentation of the C++
class).
Expand All @@ -355,15 +336,15 @@ Phidgets boards
:align: right

Phidgets Inc.’s board “PhidgetInterfaceKit 8/8/8” is supported by
class \ `mrpt::hwdrivers::CPhidgetInterfaceKitProximitySensors <classmrpt_1_1hwdrivers_1_1_c_phidget_interface_kit_proximity_sensors.html>`__.
class \ `mrpt::hwdrivers::CPhidgetInterfaceKitProximitySensors <class_mrpt_hwdrivers_CPhidgetInterfaceKitProximitySensors.html>`__.

Manufacturer web: \ http://www.phidgets.com/products.php?product_id=1018

National Instruments boards compatible with DAQmx Base
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

| See
class: \ `mrpt::hwdrivers::CNationalInstrumentsDAQ <classmrpt_1_1hwdrivers_1_1_c_national_instruments_d_a_q.html>`__
class: \ `mrpt::hwdrivers::CNationalInstrumentsDAQ <class_mrpt_hwdrivers_CNationalInstrumentsDAQ.html>`__
| Read \ `this blog
entry <https://www.mrpt.org/NI_DAQmx_Base_in_openSUSE_64bit>`__ about
the limitations of NI PCI/USB DAQ boards in 64bit Linux distributions.
Expand All @@ -378,7 +359,7 @@ MiniRAE Lite photoionization detector (PID)

This sensor for fast detection of volatile organic compounds (VOC) is
supported by the software driver C++
class \ `mrpt::hwdrivers::CRaePID <classmrpt_1_1hwdrivers_1_1_c_rae_p_i_d.html>`__
class \ `mrpt::hwdrivers::CRaePID <class_mrpt_hwdrivers_CRaePID.html>`__

Manufacturer web: \ http://www.raesystems.com/products/minirae-lite

Expand All @@ -390,7 +371,7 @@ Gill WindSonic Wind sensor

Speed and direction ultrasonic wind sensor. Supported by the software
driver C++
class \ `mrpt::hwdrivers::CGillAnemometer <classmrpt_1_1hwdrivers_1_1_c_gill_anemometer.html>`__ 
class \ `mrpt::hwdrivers::CGillAnemometer <class_mrpt_hwdrivers_CGillAnemometer.html>`__ 

Manufacturer
web: \ http://gillinstruments.com/products/anemometer/windsonic.htm
1 change: 1 addition & 0 deletions libs/hwdrivers/include/mrpt/hwdrivers/CImpinjRFID.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ namespace mrpt::hwdrivers
* connects to a program that does the actual communication with the receiver.
* This is done because the manufacturer only provides libraries for C# and
* Java. The program that runs the device must be started after this object
* \ingroup mrpt_hwdrivers_grp
*/
class CImpinjRFID : public mrpt::hwdrivers::CGenericSensor
{
Expand Down

0 comments on commit bdd76dd

Please sign in to comment.