Захват для устройств IDS-Imaging Ensenso. Подробнее...
#include <pcl/io/ensenso_grabber.h>
Общедоступные члены-функции | |
| EnsensoGrabber () | |
| Конструктор. Подробнее... |
|
| ~EnsensoGrabber () noexcept override | |
| Деструктор, унаследованный от интерфейса Grabber. Подробнее... |
|
| int | enumDevices () const |
| Ищет доступные устройства. Подробнее... |
|
| bool | openDevice (const int device=0) |
| Открывает устройство Ensenso. Подробнее... |
|
| bool | closeDevice () |
| Закрывает устройство Ensenso. Подробнее... |
|
| void | start () override |
| Запустить захват облака точек и/или изображений. Подробнее... |
|
| void | stop () override |
| Остановить захват данных. Подробнее... |
|
| bool | isRunning () const override |
| Проверить, идёт ли по-прежнему захват данных. Подробнее... |
|
| bool | isTcpPortOpen () const |
| Проверить, открыт ли TCP-порт. Подробнее... |
|
| std::string | getName () const override |
| Получить имя класса. Подробнее... |
|
| bool | configureCapture (const bool auto_exposure=true, const bool auto_gain=true, const int bining=1, const float exposure=0.32, const bool front_light=false, const int gain=1, const bool gain_boost=false, const bool hardware_gamma=false, const bool hdr=false, const int pixel_clock=10, const bool projector=true, const int target_brightness=80, const std::string trigger_mode="Software", const bool use_disparity_map_area_of_interest=false) const |
| Настройка параметров захвата Ensenso. Подробнее... |
|
| bool | grabSingleCloud (pcl::PointCloud< pcl::PointXYZ > &cloud) const |
| Захват единственного облака точек и сохранение его. Подробнее... |
|
| bool | initExtrinsicCalibration (const int grid_spacing) const |
| Настроить датчик Ensenso и API для проведения внешней калибровки 3D с использованием 2D-паттернов Ensenso. Подробнее... |
|
| bool | clearCalibrationPatternBuffer () const |
| Очистить буфер калибровочных паттернов. Подробнее... |
|
| int | captureCalibrationPattern () const |
| Захватывает калибровочный шаблон. Подробнее... |
|
| bool | estimateCalibrationPatternPose (Eigen::Affine3d &pattern_pose) const |
| Оценить положение калибровочного шаблона. Подробнее... |
|
| bool | computeCalibrationMatrix (const std::vector< Eigen::Affine3d, Eigen::aligned_allocator< Eigen::Affine3d > > &robot_poses, std::string &json, const std::string setup="Moving", const std::string target="Hand", const Eigen::Affine3d &guess_tf=Eigen::Affine3d::Identity(), const bool pretty_format=true) const |
| Вычисляет матрицу калибровки, используя собранные паттерны и вектор позиций робота. Подробнее... |
|
| bool | storeEEPROMExtrinsicCalibration () const |
| Копирует ссылку, определённую в узле Link nxTree, в EEPROM. Подробнее... |
|
| bool | clearEEPROMExtrinsicCalibration () |
| Очистить внешнюю калибровку, сохранённую в EEPROM, записав единичную матрицу. Подробнее... |
|
| bool | setExtrinsicCalibration (const double euler_angle, Eigen::Vector3d &rotation_axis, const Eigen::Vector3d &translation, const std::string target="Hand") const |
| Обновить узел Link в дереве NxLib. Подробнее... |
|
| bool | setExtrinsicCalibration (const std::string target="Hand") |
| Обновить узел Link в дереве NxLib с единичной матрицей. Подробнее... |
|
| bool | setExtrinsicCalibration (const Eigen::Affine3d &transformation, const std::string target="Hand") |
| Обновить узел Link в дереве NxLib. Подробнее... |
|
| float | getFramesPerSecond () const override |
| Получить количество кадров в секунду (FPS) Подробнее... |
|
| bool | openTcpPort (const int port=24000) |
| Открыть TCP-порт для доступа через программу nxTreeEdit. Подробнее... |
|
| bool | closeTcpPort () |
| Закрыть TCP-порт программы. Подробнее... |
|
| std::string | getTreeAsJson (const bool pretty_format=true) const |
| Возвращает полное дерево NxLib в виде строки JSON. Подробнее... |
|
| std::string | getResultAsJson (const bool pretty_format=true) const |
| Возвращает узел Result (последней команды) в виде строки JSON. Подробнее... |
|
| bool | jsonTransformationToEulerAngles (const std::string &json, double &x, double &y, double &z, double &w, double &p, double &r) const |
| Получить углы Эйлера, соответствующие строке JSON (преобразование с осью вращения). Подробнее... |
|
| bool | jsonTransformationToAngleAxis (const std::string json, double &alpha, Eigen::Vector3d &axis, Eigen::Vector3d &translation) const |
| Получить параметры вращения по оси, соответствующие строке JSON. Подробнее... |
|
| bool | jsonTransformationToMatrix (const std::string transformation, Eigen::Affine3d &matrix) const |
| Получить строку JSON, соответствующую 4x4 матрице. Подробнее... |
|
| bool | eulerAnglesTransformationToJson (const double x, const double y, const double z, const double w, const double p, const double r, std::string &json, const bool pretty_format=true) const |
| Получить строку JSON, соответствующую преобразованию углов Эйлера. Подробнее... |
|
| bool | angleAxisTransformationToJson (const double x, const double y, const double z, const double rx, const double ry, const double rz, const double alpha, std::string &json, const bool pretty_format=true) const |
| Получить строку JSON, соответствующую преобразованию с осью вращения. Подробнее... |
|
| bool | matrixTransformationToJson (const Eigen::Affine3d &matrix, std::string &json, const bool pretty_format=true) const |
| Получить строку JSON, соответствующую 4x4 матрице. Подробнее... |
|
|
| |
| Grabber ()=default | |
| Конструктор по умолчанию. Подробнее... |
|
| Grabber (const Grabber &)=delete | |
| Конструктор копирования отсутствует, так как объект Grabber не может быть скопирован. Подробнее... |
|
| Grabber & | operator= (const Grabber &)=delete |
| Оператор присваивания копирования отсутствует, так как объект Grabber не может быть скопирован. Подробнее... |
|
| Grabber (Grabber &&)=default | |
| Конструктор перемещения. Подробнее... |
|
| Grabber & | operator= (Grabber &&)=default |
| Оператор присваивания перемещения. Подробнее... |
|
| virtual | ~Grabber () noexcept=default |
| Виртуальный деструктор. Подробнее... |
|
| template<typename T > | |
| boost::signals2::connection | registerCallback (const std::function< T > &callback) |
| Регистрирует функцию/метод обратного вызова для сигнала с соответствующей подписью Подробнее... |
|
| template<typename T > | |
| bool | providesCallback () const noexcept |
| Указывает, существует ли сигнал с заданным типом параметра или нет Подробнее... |
|
| bool | toggle () |
| Для устройств, которые ведут потоковую передачу, остановленные потоки запускаются, а работающие останавливаются. Подробнее... |
|
Общедоступные атрибуты | |
| shared_ptr< const NxLibItem > | root_ |
| Ссылка на корень дерева NxLib. Подробнее... |
|
| NxLibItem | camera_ |
| Ссылка на дерево камеры. Подробнее... |
|
Защищенные члены-функции | |
| void | processGrabbing () |
| Непрерывно запрашивает данные изображений и/или облаков точек с устройства и публикует их, если они доступны. Подробнее... |
|
|
| |
| virtual void | signalsChanged () |
| template<typename T > | |
| boost::signals2::signal< T > * | find_signal () const noexcept |
| template<typename T > | |
| int | num_slots () const noexcept |
| template<typename T > | |
| void | disconnect_all_slots () |
| template<typename T > | |
| void | block_signal () |
| template<typename T > | |
| void | unblock_signal () |
| void | block_signals () |
| void | unblock_signals () |
| template<typename T > | |
| boost::signals2::signal< T > * | createSignal () |
Статические защищенные члены-функции | |
| static std::uint64_t | getPCLStamp (const double ensenso_stamp) |
| Преобразовать временную метку Ensenso во временную метку PCL/ROS. Подробнее... |
|
| static std::string | getOpenCVType (const int channels, const int bpe, const bool isFlt) |
| Получить тип изображения OpenCV, соответствующий заданным параметрам. Подробнее... |
|
Защищенные атрибуты | |
| std::thread | grabber_thread_ |
| Поток Grabber. Подробнее... |
|
| boost::signals2::signal< sig_cb_ensenso_point_cloud > * | point_cloud_signal_ |
| Сигнал Boost для облака точек. Подробнее... |
|
| boost::signals2::signal< sig_cb_ensenso_images > * | images_signal_ |
| Сигнал Boost для изображений. Подробнее... |
|
| boost::signals2::signal< sig_cb_ensenso_point_cloud_images > * | point_cloud_images_signal_ |
| Сигнал Boost для изображений + облака точек. Подробнее... |
|
| bool | device_open_ |
| Открыто ли устройство Ensenso. Подробнее... |
|
| bool | tcp_open_ |
| Открыт ли TCP порт. Подробнее... |
|
| bool | running_ |
| Работает ли устройство Ensenso. Подробнее... |
|
| pcl::EventFrequency | frequency_ |
| Частота захвата/обработки облака точек. Подробнее... |
|
| std::mutex | fps_mutex_ |
| Взаимная блокировка для вычисления FPS. Подробнее... |
|
|
| |
| std::map< std::string, std::unique_ptr< boost::signals2::signal_base > > | signals_ |
| std::map< std::string, std::vector< boost::signals2::connection > > | connections_ |
| std::map< std::string, std::vector< boost::signals2::shared_connection_block > > | shared_connections_ |
Подробное описание
Интерфейс Grabber для устройств IDS-Imaging Ensenso.
Ensenso SDK позволяет использовать несколько устройств Ensenso для создания одного облака точек.
Эта функция не реализована здесь, пользователю нужно настроить несколько камер Ensenso.
Определение в строке 66 файла ensenso_grabber.h.
Документация конструктора и деструктора
EnsensoGrabber()
| pcl::EnsensoGrabber::EnsensoGrabber | ( | ) |
Конструктор.
~EnsensoGrabber()
| overridenoexcept |
Деструктор, унаследованный от интерфейса Grabber.
Он никогда не выбрасывает исключений.
Документация функций-членов
angleAxisTransformationToJson()
| bool pcl::EnsensoGrabber::angleAxisTransformationToJson | ( | const double | x, |
| const double | y, | ||
| const double | z, | ||
| const double | rx, | ||
| const double | ry, | ||
| const double | rz, | ||
| const double | alpha, | ||
| std::string & | json, | ||
| const bool |
pretty_format = true | ||
| ) | const |
Получить строку JSON, соответствующую преобразованию по углу и оси.
- Параметры
-
[вход] x Угол X [вход] y Угол Y [вход] z Угол Z [вход] rx Компонента оси Эйлера по X [вход] ry Компонента оси Эйлера по Y [вход] rz Компонента оси Эйлера по Z [вход] alpha Угол поворота Эйлера [выход] json Строка, содержащая преобразование по углу и оси в формате JSON [вход] pretty_format Стиль форматирования JSON
- Возвращает
- True, если успешно, иначе false
- Предупреждение
- Единицы измерения - метры и радианы! (ось Эйлера не обязательно должна быть нормализована)
- Примечание
- См.: страницу преобразования в документации EnsensoSDK
captureCalibrationPattern()
| int pcl::EnsensoGrabber::captureCalibrationPattern | ( | ) | const |
Захватывает шаблон калибровки.
- Возвращает
- число шаблонов калибровки, сохранённых в nxTree, -1 при ошибке
- Предупреждение
- Устройство должно быть открыто и не должно работать.
- Примечание
- Перед этим следует использовать initExtrinsicCalibration
clearCalibrationPatternBuffer()
| bool pcl::EnsensoGrabber::clearCalibrationPatternBuffer | ( | ) | const |
Очистить буфер шаблонов калибровки.
clearEEPROMExtrinsicCalibration()
| bool pcl::EnsensoGrabber::clearEEPROMExtrinsicCalibration | ( | ) |
Очистить данные внешней калибровки, хранящиеся в EEPROM, записав единичную матрицу.
- Возвращает
- True, если успешно, иначе false
closeDevice()
| bool pcl::EnsensoGrabber::closeDevice | ( | ) |
Закрыть устройство Ensenso.
- Возвращает
- True, если успешно, иначе false
closeTcpPort()
| bool pcl::EnsensoGrabber::closeTcpPort | ( | ) |
Закрыть TCP-порт.
- Возвращает
- True, если успешно, иначе false
- Предупреждение
- Если TCP-порт не закрыть, программа может завершиться с открытым портом. В этом случае используйте
ps -ef
иkill PID
для завершения приложения и эффективного закрытия порта.
computeCalibrationMatrix()
| bool pcl::EnsensoGrabber::computeCalibrationMatrix | ( | const std::vector< Eigen::Affine3d, Eigen::aligned_allocator< Eigen::Affine3d > > & | robot_poses, |
| std::string & | json, | ||
| const std::string |
setup = "Moving", | ||
| const std::string |
target = "Hand", | ||
| const Eigen::Affine3d & |
guess_tf = Eigen::Affine3d::Identity(), | ||
| const bool |
pretty_format = true | ||
| ) | const |
Вычисляет матрицу калибровки, используя собранные шаблоны и вектор позиций робота.
- Параметры
-
[вход] robot_poses Список позиций робота, по одному для каждого полученного шаблона (в том же порядке) [выход] json Данные внешней калибровки в формате JSON [вход] setup Перемещение или Фиксирование, см. документацию Ensenso [вход] target См. документацию Ensenso [вход] guess_tf Предположительное преобразование для матрицы калибровки (перевод в метрах) [вход] pretty_format Стиль форматирования JSON
- Возвращает
- True, если успешно, иначе false
- Предупреждение
- Может занять до 120 секунд
- Примечание
- Проверьте результат с помощью getResultAsJson. Для постоянного хранения результата используйте storeEEPROMExtrinsicCalibration.
configureCapture()
| bool pcl::EnsensoGrabber::configureCapture | ( | const bool |
auto_exposure = true, |
| const bool |
auto_gain = true, | ||
| const int |
bining = 1, | ||
| const float |
exposure = 0.32, | ||
| const bool |
front_light = false, | ||
| const int |
gain = 1, | ||
| const bool |
gain_boost = false, | ||
| const bool |
hardware_gamma = false, | ||
| const bool |
hdr = false, | ||
| const int |
pixel_clock = 10, | ||
| const bool |
projector = true, | ||
| const int |
target_brightness = 80, | ||
| const std::string |
trigger_mode = "Software", | ||
| const bool |
use_disparity_map_area_of_interest = false | ||
| ) | const |
Настройка параметров захвата Ensenso.
- Parameters
-
[in] auto_exposure Если установлено в «да», параметр exposure будет игнорироваться [in] auto_gain Если установлено в «да», параметр gain будет игнорироваться [in] bining Объединение пикселей: 1, 2 или 4 [in] exposure В миллисекундах, от 0,01 до 20 мс [in] front_light Инфракрасный передний свет (полезно для калибровки) [in] gain Значение от 1 до 4 [in] gain_boost [in] hardware_gamma [in] hdr Высокий динамический диапазон (проверьте совместимость с другими параметрами в руководстве Ensenso) [in] pixel_clock В мегагерцах, от 5 до 85 [in] projector Использовать центральный инфракрасный проектор или нет [in] target_brightness От 40 до 210 [in] trigger_mode [in] use_disparity_map_area_of_interest
- Returns
- True, если успешно, иначе false
- Примечание
- См. Элемент дерева захвата для получения более подробной информации о параметрах.
enumDevices()
| int pcl::EnsensoGrabber::enumDevices | ( | ) | const |
Поиск доступных устройств.
- Returns
- Количество подключенных устройств Ensenso
estimateCalibrationPatternPose()
| bool pcl::EnsensoGrabber::estimateCalibrationPatternPose | ( | Eigen::Affine3d & | pattern_pose | ) | const |
Определение позы шаблона калибровки.
- Parameters
-
[out] pattern_pose Поза шаблона калибровки
- Returns
- true при успешном выполнении, иначе false
- Предупреждение
- Устройство должно быть открыто и не должно работать.
- Примечание
- Необходимо предварительно захватить хотя бы один шаблон калибровки. Используйте captureCalibrationPattern перед этим
eulerAnglesTransformationToJson()
| bool pcl::EnsensoGrabber::eulerAnglesTransformationToJson | ( | const double | x, |
| const double | y, | ||
| const double | z, | ||
| const double | w, | ||
| const double | p, | ||
| const double | r, | ||
| std::string & | json, | ||
| const bool |
pretty_format = true | ||
| ) | const |
Получение JSON-строки, соответствующей преобразованию углов Эйлера.
- Parameters
-
[in] x Перенос по оси X [in] y Перенос по оси Y [in] z Перенос по оси Z [in] w Угол yaw [in] p Угол Pitch [in] r Угол Roll [out] json Строка, содержащая преобразование углов Эйлера в формате JSON [in] pretty_format Стиль форматирования JSON
- Returns
- True при успешном выполнении, иначе false
- Предупреждение
- Единицы измерения — метры и радианы!
- Примечание
- См.: страницу преобразования в документации EnsensoSDK
getFramesPerSecond()
| overridevirtual |
Получение количества кадров в секунду (FPS)
Реализация pcl::Grabber.
getName()
| overridevirtual |
getOpenCVType()
| staticprotected |
Получить тип изображения OpenCV, соответствующий заданным параметрам.
- Параметры
-
channels количество каналов в изображении bpe байты на элемент isFlt является плавающей точкой
- Возвращает
- тип OpenCV в виде строки
getPCLStamp()
| staticprotected |
Преобразовать временную метку Ensenso в временную метку PCL/ROS.
- Параметры
-
[in] ensenso_stamp
- Возвращает
- Метка PCL. API Ensenso возвращает время, прошедшее с 1 января 1601 года (UTC); в операционной системе Linux эта временная метка — 1 января 1970 года (UTC). См. страницу временных меток для получения дополнительной информации о преобразовании временных меток.
getResultAsJson()
| std::string pcl::EnsensoGrabber::getResultAsJson | ( | const bool |
pretty_format = true
|
) | const |
Возвращает узел Result (последней команды) в виде строки JSON.
- Параметры
-
[in] pretty_format Стиль форматирования JSON
- Возвращает
- Строка, содержащая узел Result в формате JSON
getTreeAsJson()
| std::string pcl::EnsensoGrabber::getTreeAsJson | ( | const bool |
pretty_format = true
|
) | const |
Возвращает полное дерево NxLib в виде строки JSON.
- Параметры
-
[in] pretty_format Стиль форматирования JSON
- Возвращает
- Строка, содержащая дерево NxLib в формате JSON
grabSingleCloud()
| bool pcl::EnsensoGrabber::grabSingleCloud | ( | pcl::PointCloud< pcl::PointXYZ > & | cloud | ) | const |
Захватить один облако точек и сохранить его.
- Параметры
-
[out] cloud Облако точек для заполнения
- Возвращает
- true, если успешно, false в противном случае
- Предупреждение
- Устройство должно быть открыто и не работать
initExtrinsicCalibration()
| bool pcl::EnsensoGrabber::initExtrinsicCalibration | ( | const int | grid_spacing | ) | const |
Настроить датчик Ensenso и API для выполнения внешней калибровки 3D с использованием 2D шаблонов Ensenso.
- Параметры
-
[in] grid_spacing
- Возвращает
- true, если успешно, false в противном случае
Настраивает параметры захвата на значения по умолчанию (например: projector = false и front_light = true) Отбрасывает все предыдущие шаблоны, настраивает grid_spacing
- Предупреждение
- Устройство должно быть открыто и не должно работать.
- Примечание
- См. справочник Ensenso для получения дополнительной информации о процессе внешней калибровки.
- Элемент GridSize защищен в NxTree, вы не можете его изменить.
isRunning()
| overridevirtual |
Проверить, всё ли ещё идёт процесс получения данных.
- Возвращает
- true, если работает, false в противном случае
Реализует pcl::Grabber.
isTcpPortOpen()
| bool pcl::EnsensoGrabber::isTcpPortOpen | ( | ) | const |
Проверить, открыт ли TCP-порт.
- Возвращает
- true, если открыт, false в противном случае
jsonTransformationToAngleAxis()
| bool pcl::EnsensoGrabber::jsonTransformationToAngleAxis | ( | const std::string | json, |
| double & | alpha, | ||
| Eigen::Vector3d & | axis, | ||
| Eigen::Vector3d & | translation | ||
| ) | const |
Получить параметры угла оси, соответствующие строке JSON.
- Параметры
-
[in] json Строка, содержащая преобразование угла оси в формате JSON [out] alpha Угол Эйлера [out] axis Вектор pcl::Axis [out] translation Вектор сдвига
- Возвращает
- true, если успешно, false в противном случае
- Предупреждение
- Единицы измерения: метры и радианы!
- Примечание
- См. страницу преобразований в документации EnsensoSDK
jsonTransformationToEulerAngles()
| bool pcl::EnsensoGrabber::jsonTransformationToEulerAngles | ( | const std::string & | json, |
| double & | x, | ||
| double & | y, | ||
| double & | z, | ||
| double & | w, | ||
| double & | p, | ||
| double & | r | ||
| ) | const |
Получить углы Эйлера, соответствующие строке JSON (преобразование по оси угла)
- Parameters
-
[in] json Строка, содержащая преобразование по оси угла в формате JSON [out] x Смещение по оси X [out] y Смещение по оси Y [out] z Смещение по оси Z [out] w Угол yaw [out] p Угол Pitch [out] r Угол Roll
- Returns
- True при успехе, false в противном случае
- Warning
- Единицы измерения: метры и радианы!
- Note
- См.: страницу преобразований в документации EnsensoSDK
jsonTransformationToMatrix()
| bool pcl::EnsensoGrabber::jsonTransformationToMatrix | ( | const std::string | transformation, |
| Eigen::Affine3d & | matrix | ||
| ) | const |
Получить строку JSON, соответствующую 4x4 матрице.
- Parameters
-
[in] transformation Входное преобразование [out] matrix Матрица, содержащая JSON преобразование
- Returns
- True при успехе, false в противном случае
- Warning
- Единицы измерения: метры и радианы!
- Note
- См.: страницу преобразования в документации EnsensoSDK
matrixTransformationToJson()
| bool pcl::EnsensoGrabber::matrixTransformationToJson | ( | const Eigen::Affine3d & | matrix, |
| std::string & | json, | ||
| const bool |
pretty_format = true | ||
| ) | const |
Получить строку JSON, соответствующую 4x4 матрице.
- Parameters
-
[in] matrix Входная матрица [out] json Строка, содержащая матричное преобразование в формате JSON [in] pretty_format Стиль форматирования JSON
- Returns
- True при успехе, false в противном случае
- Warning
- Единицы измерения: метры и радианы!
- Note
- См.: страницу преобразования в документации EnsensoSDK
openDevice()
| bool pcl::EnsensoGrabber::openDevice | ( | const int |
device = 0
|
) |
Открывает устройство Ensenso.
- Parameters
-
[in] device ID устройства для открытия
- Returns
- True при успехе, false в противном случае
openTcpPort()
| bool pcl::EnsensoGrabber::openTcpPort | ( | const int |
port = 24000
|
) |
Открывает TCP-порт для доступа через программу nxTreeEdit.
- Parameters
-
[in] port Номер порта
- Returns
- True при успехе, false в противном случае
processGrabbing()
| protected |
Непрерывно запрашивает данные изображений и/или облаков точек от устройства и публикует их, если они доступны.
Для полученных изображений и облаков точек заполняются метки времени PCL (см. getPCLStamp)
- Note
- Метка времени облака — это метка времени изображения RAW
setExtrinsicCalibration() [1/3]
| bool pcl::EnsensoGrabber::setExtrinsicCalibration | ( | const double | euler_angle, |
| Eigen::Vector3d & | rotation_axis, | ||
| const Eigen::Vector3d & | translation, | ||
| const std::string |
target = "Hand" | ||
| ) | const |
Обновить узел Link в дереве NxLib.
- Parameters
-
[in] target Например, "Hand" или "Workspace" [in] euler_angle [in] rotation_axis [in] translation Смещение в метрах
- Returns
- True при успехе, false в противном случае
- Warning
- Смещения в метрах, углы поворота в радианах! (сохраняются в мм/радианах в дереве Ensenso)
- Note
- Если калибровка была сохранена в EEPROM, она копируется в узел Link при старте nxLib. Этот метод перезаписывает узел Link, но не записывает в EEPROM.
Более подробную информацию о параметрах можно найти в разделе узла Link руководства Ensenso.
Полученные данные облака точек Ensenso уже преобразованы с использованием этой матрицы калибровки. Убедитесь, что это преобразование является единичным, если вы хотите получить исходное облако точек! (используйте clearEEPROMExtrinsicCalibration) Используйте storeEEPROMExtrinsicCalibration для постоянного сохранения этого преобразования
setExtrinsicCalibration() [2/3]
| bool pcl::EnsensoGrabber::setExtrinsicCalibration | ( | const Eigen::Affine3d & | transformation, |
| const std::string |
target = "Hand" | ||
| ) |
Обновить узел Link в дереве NxLib.
- Параметры
-
[in] transformation Матрица преобразования [in] target Например, "Hand" или "Workspace"
- Возвращает
- True в случае успеха, иначе false
- Предупреждение
- Преобразования в метрах, углы вращения в радианах! (хранятся в мм/радианах в дереве Ensenso)
- Примечание
- Если калибровка сохранена в EEPROM, она копируется в узел Link при запуске дерева nxLib. Этот метод перезаписывает узел Link, но не записывает в EEPROM.
Дополнительную информацию о параметрах можно найти в разделе «Узел Link» руководства Ensenso по адресу Узел Link.
Полученные от Ensenso облака точек уже преобразуются с использованием этой матрицы калибровки. Убедитесь, что это тождественное преобразование, если вы хотите получить исходное облако точек! (используйте clearEEPROMExtrinsicCalibration) Используйте storeEEPROMExtrinsicCalibration для постоянного сохранения этого преобразования
setExtrinsicCalibration() [3/3]
| bool pcl::EnsensoGrabber::setExtrinsicCalibration | ( | const std::string |
target = "Hand"
|
) |
Обновить узел Link в дереве NxLib с использованием единичной матрицы.
- Параметры
-
[in] target Например, "Hand" или "Workspace"
- Возвращает
- True в случае успеха, иначе false
start()
| overridevirtual |
Запустить захват облака точек и/или изображений.
- Примечание
- Открывает устройство "0", если ни одно устройство не открыто
Реализует pcl::Grabber.
stop()
| overridevirtual |
Остановить процесс захвата данных.
Реализует pcl::Grabber.
storeEEPROMExtrinsicCalibration()
| bool pcl::EnsensoGrabber::storeEEPROMExtrinsicCalibration | ( | ) | const |
Скопировать определение узла Link в узле Link nxTree в EEPROM.
- Возвращает
- True в случае успеха, иначе false. Для получения дополнительной информации о работе с EEPROM см. setExtrinsicCalibration.
После вызова computeCalibrationMatrix, это позволяет постоянно сохранить матрицу.
- Примечание
- Необходимо указать целевой объект (computeCalibrationMatrix указывает целевой объект)
Документация по данным членам
camera_
| NxLibItem pcl::EnsensoGrabber::camera_ |
Ссылка на дерево камеры.
- Предупреждение
- При работе с camera_ необходимо вручную обрабатывать исключения NxLib!
Определение в строке 430 файла ensenso_grabber.h.
device_open_
| protected |
Открыто ли устройство Ensenso.
Определение в строке 446 файла ensenso_grabber.h.
fps_mutex_
| mutableprotected |
Взаимная блокировка для вычисления FPS.
Определение в строке 458 файла ensenso_grabber.h.
frequency_
| protected |
Частота захвата/обработки облака точек.
Определение в строке 455 файла ensenso_grabber.h.
grabber_thread_
| protected |
Поток Grabber.
Определение в строке 434 файла ensenso_grabber.h.
images_signal_
| protected |
Сигнал Boost для изображений.
Определение в строке 440 файла ensenso_grabber.h.
point_cloud_images_signal_
| protected |
Сигнал Boost для изображений + облака точек.
Определение в строке 443 файла ensenso_grabber.h.
point_cloud_signal_
| protected |
Сигнал Boost для облака точек.
Определено в строке 437 файла ensenso_grabber.h.
root_
| shared_ptr<const NxLibItem> pcl::EnsensoGrabber::root_ |
Ссылка на корень дерева NxLib.
- Предупреждение
- Вы должны вручную обрабатывать исключения NxLib при работе с root_! См. ensensoExceptionHandling в ensenso_grabber.cpp
Определено в строке 426 файла ensenso_grabber.h.
running_
| protected |
Указывает, работает ли устройство Ensenso или нет.
Определено в строке 452 файла ensenso_grabber.h.
tcp_open_
| protected |
Открыт ли TCP-порт.
Определено в строке 449 файла ensenso_grabber.h.
Документация для этого класса была сгенерирована из следующего файла:
- pcl/io/ensenso_grabber.h
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_ensenso_grabber.html