Pull request #1192


[move4d] multiple fixes and features

Added by Jules Waldhart about 6 years ago. Updated about 6 years ago.

Repository URL:


pull request from branch wip to master.
libmove3d: from branch move4dwip
gui: from branch wip


ft #1167 / pr #1168
bug #1175
bug #1181
bug #1182
bug #1184
bug #1186
part of bug #1187



  • Compute stablility of robots: read Support polygon from json Entities definition, centers of mass from urdf
  • get agent FoV from Entities/Agent file
  • database also reads from a path given through API::Parameter
  • Robots with name ending by CYLINDER are considered virtual
  • collision class to check Cylinder instead of default collisions when available
  • PlannerBase and PlannerRegister + Planner Factories, registers all existing motion planners
  • Target class
  • set numeric locale to en_US in project initialization (for using '.' and not ',' as decimal separator when parsing)
  • API::Scene save/load scenario
  • API::Parameter helper methods for setting/getting
  • Set active DoFs from Joint and Robot
  • helper to set Planning Parts
  • RobotState::setCost
  • access/set multi localpath config from Robot class (e.g Robot::setMultiLpGroupToPlan)
  • robot::checkConstraints
  • Scene::setDMax
  • Path::resetCheckStatus and more
  • Path register uses first registered factory as default
  • Can now register several Path/LocalPath factories in a same cpp file (fix macro)
  • Drawable 3D arrows, 2D grids
  • logging uses output handlers to change output method (default is log4cxx)
  • colored logs
  • move4d has its own exceptions (unknown_robot)
  • array_to_str function for logging
  • self diagnostic (on request) debut
  • Python bindings:
    • LocalpathFactory
    • global_Project
    • request read/write json body/joint weights from python
    • CollisionInterface::collisionList
    • access/set multi localpath config from Robot class (e.g Robot::setMultiLpGroupToPlan)


  • include path is PREFIX/include/move4/move4d
  • builds on Ubuntu 16.04
  • do not require log4cxx when not used
  • use Qt5
  • use CMake target system: export target (backward compatible)
  • N-D Grids improved/fixed + Dijkstra
  • Graphic::Drawable2dGrid based on N-D grid
  • LocalPath allocates its internal struct on construcion
  • LocalPath throws when construction fails (invalid_argument)
  • PqpCollision class fixed (let user disabled selfcollision)
  • add some cv-qualifiers to Robot RobotState
  • removed the HRI_ prefix of robot type names
  • install python to PREFIX/lib/python3/site-packages (it was in python2.7)


  • LocalPathKDTP files where actually unused
Actions #1

Updated by Jules Waldhart about 6 years ago

  • Description updated (diff)
Actions #2

Updated by Jules Waldhart about 6 years ago

  • Description updated (diff)

added branch names for libmove3d and gui in the description.

I tested the build on docker with ubuntu xenial (16.04)
Incremental: success
From scratch: success


Also available in: Atom PDF