Buran Motion Planning Framework
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 12]
 Nbmpf
 CAllDirectionsPathFinderПланировщик со смещениями во все стороны
 CBaseRobot
 CCameraКласс камеры
 CColliderБазовый класс для всех коллайдеров Базовый класс для всех коллайдеров, все функции являются чисто виртуальными Коллайдер выстраивает параметризированную сцену, состоящую из произвольного числа роботов, потом по состоянию возвращает флаг, соответствует ли это состояние коллизии моделей сцены. Состояния передаются в качестве матриц преобразований из текущей СК звена в следующую. Класс работает по следующему принципу: сначала мы задаём состояние кооллайдеру, а потом либо запускаем его рисование, либо проверку коллизий, одновременно эти два дейсвтвия выполняться не могут. При этом он оперирует только 3D объектами и их матрицами преобразований
 CCountDownLatch
 CDHRobot
 CGLSceneБазовый класс GL сцены для упрощения работы с OpenGL Базовый класс GL сцены для упрощения работы с OpenGL, почти все нужные методы уже прописаны, необходимо написать класс-потомок, у которого должны быть определены методы инициализации init(), рисования render() и изменения состояния сцены changeState()
 CGridPathFinderБазовый класс для всех планировщиков на сетке Базовый класс для всех планировщиков на сетке. Суть планирования на сетке заключается в том, что каждой вещественной координате состояния мы ставим в соответствие целочисленную координату из заданного диапазона. В данном планировщике предполагается, что каждая координата состояния разбивается на равное число точек (_gridSize)
 CJoint
 CJointParams
 CLink
 CMedianPathOptimizer
 CMonotoneTrajectoryFinder
 CNewtonPathOptimizerпрототип оптимизатора путей методом Ньютона он подразмуевает такой же поочердёный проход по всем точкам пути, кроме первой и последней. Но при этом новая точка смещается до тех пор, пока не будет найдено оптимальное положение промежуточной вершины. Он может быть полезен в случаях, когда коллизии очень разнородны, либо шаг планирования очень мал. Это связано с тем, что такие ситуации будут часто не допускать прямого усреднения координат. Такие координаты часто будут соответствовать коллизиям
 CNodeGridPathFinderБазовый класс для всех планировщиков на сетке с нодами Базовый класс для всех планировщиков на сетке с нодами, у каждой из которых указывается предок и координаты на сетке. Суть планирования на сетке заключается в том, что каждой вещественной координате состояния мы ставим в соответствие целочисленную координату из заданного диапазона. В данном планировщике предполагается, что каждая координата состояния разбивается на равное число точек (_gridSize)
 COneDirectionOrderedPathFinderУпорядоченный планировщик со смещениями вдоль одной из координат
 COneDirectionPathFinder
 COneDirectionSyncPathFinder
 CPathFinderБазовый класс для всех планировщиков
 CPathNode
 CPathNodePtr
 CPathOptimizer
 CQTGLDrawer
 CQTGLWidgetБазовый класс для QT виджетов и использованием OpenGL
 CScene
 CSolid3ObjectКласс 3D объектов Класс 3D объектов, из которых строятся роботы на сцене коллайдера. На каждое звено создаётся по одному объекту Solid3Object
 CSolidColliderКласс однопоточного коллайдера Класс однопоточного коллайдера. Класс работает по следующему принципу: сначала мы задаём состояние кооллайдеру, а потом либо запускаем его рисование, либо проверку коллизий, одновременно эти два дейсвтвия выполняться не могут. При этом он оперирует только 3D объектами и их матрицами преобразований
 CSolidSyncColliderКласс класс многопоточного коллайдера Класс класс многопоточного коллайдера. Он является надстройкой над массивом однопоточных коллайдеров заданной длины. Каждому колладйеру соответствует свой мьютекс. При обращении к методу проверки коллизий происходит поиск первого незанятого мьютекса, он блокируется, запускается проверка коллизии с помощью соответствующего коллайдера, после чего мьютекс освобождается. Если все мьютексы заняты, то после паузы в одну микросекунду поиск свободного мьютекса запускается заново, пока проверка не будет выполнена. Остальные методы просто пробрасывают обращение к первому однопоточному коллайдеру
 CStlShape
 CURDFRobotКласс робота с URDF параметрами Работает только с неиерархичными объектами или если иерархия не имеет ветвлений (классические роботы-манипуляторы)
 CBaseClientБазовый класс для всех клиентов необходимо реализовать метод mainLoop()
 CBaseServerБазовый класс для всех серверов Для реализации сервера, необходимо переопределить две чисто виртуальные функции: processCommand() и onSocketConnected()
 CContinuousPathFinder
 CContinuousPFServer
 CDHRobotScene
 CGenerator
 CMultiRobotPathFinder
 CMultiRobotPFServer
 COptimizeGenerator
 CPathFindingClient
 CPathFindingServerБазовый класс для всех серверов планирования для использования необходимо переопределить в потомке createPathFinder()
 CPathOptimisingServerСервер оптимизации пути
 CPathOptimizingClient
 Csafe_ptr
 CTemplateGLScene
 CTrajectoryFindingClient
 CTrajectoryFindingServer
 CUERDFRobotScene