GitHub: ORMPI 开源机器人运动规划器



最近开源了我的机器人运动规划器ORMPI,实现完整的机器人运动规划算法包括环境与机器人3D建模,运动学计算,规划器和碰撞检测算法。ORMPI的未来目标是成为前端运动规划算法和后端加速器(CPUs, GPUs, 加速器)联通的编译栈。

  ORMPI is the Open Robotic Motion Planning Implementation for efficiently developing or evaluating the motion planning algorithm for high degree-of-freedom robots. It supports the complete real-time motion planning procedure which implements robot modeling, planner, kinematics, and collision detection.

  ORMPI is designed to be an Open Robotic Motion Planning Compiler Stack for CPUs, GPUs, and specialized accelerators. It aims to close the gap between the productivity-focused motion planning frameworks, and the performance- and efficiency-focused hardware backends.


  ORMPI implements the complete real-time motion planning algorithm for high degree-of-freedom robots.

  • Representation of Environments: The octree is a spatial partitioning technique providing broad-phase processing by dividing a space into regions and testing if objects overlap the same region. We represent the environments via Octree in terms of its relative simplicity and decent accuracy.
  • Robot Modeling: Oriented Bounding Boxes Tree (OBBTree) is used to model 3D geometry and joints relationship (link chains) of a robot, which produces better bounds and better culling than AABBs or spheres.
  • Kinematics: We refer to the source code of Moveit and implement the fast and accurate forward kinematics of robot arms.
  • Planner: Rapidly-exploring Random Trees (RRT) avoids the necessity to construct a roadmap a prior via incremental sampling methods which can efficiently boost motion planning for dynamic environments. And RRT is suitable and flexible for hardware backends meeting the demand of motion planning for online robots.
  • Collision Detection: ORMPI proposed an approximate OBB-Octree node algorithm to boosts the performance of collision detection. It reduces 82.9% computation time than the original OBB-OBB Intersection.

  Meanwhile, ORMPI supports Half-precision floating-point format to boosts motion planning, which is more appropriate for specialized accelerators.



The "./src/ORMIP.cpp" is a demo code for how to construct a motion planning alogrithm.

  1. Define the motion planning environment: this demo uses ROS and Moveit to construct a pick-place task and exports the environment data to ORMPI
  2. Define the center coordinate of environment and build an Octree.
  3. Define a start config (the rotating angles of the robot arm in configuration space) and the goal config
  4. Define the planner (RRT in demo) to start motion planning
  5. Print the success count of iteration number and the average planning time

The Pick-Place task


The parameters of motion planning can be configured in the file "./config/config.h".

  • DataType Config for float or half
  • loopNum for iteration of motion planning
  • TESTMode for whether printing debug information
  • OctoTree for the max depth and environment bounds to construct the OctoTree
  • RRT for the bias, step size and max iteration of the search algorithm
  • Robot for the degree-of-freedom (DOF), transform matrix and center coordinate of one robot.

ToDo Work

  • Supporting more real-time planner
  • Supporting GPU
  • Supporting compiler for FPGA
  • Improving code packaging and riching the API

GitHub: ORMPI 开源机器人运动规划器》有5个想法

  1. Hello, I’m Reema.
    Welcome to my about page. I started writing in high school after a creative writing assignment for my English teacher. I did creative writing for almost a year before I thought about doing something else.
    I had always loved doing research papers because I’m passionate about learning. When you combine writing ability with a love of learning, research paper writing only makes sense as a job.
    I’m passionate about aiding the students of the future in their school career. When they don’t have time for their paper , I am there to help.

    Reema Bright – Writing Expert – http://www.leadershipeducationnelenhaiti.comBand

  2. My name is Kyran. And I am a professional Content writer with many years of experience in writing.

    My goal is to solve problems related to writing. And I have been doing it for many years. I have been with several groups as a volunteer and have assisted people in many ways.
    My love for writing has no end. It is like the air we breathe, something I cherish with all my being. I am a full-time writer who started at an early age.
    I’m happy that I`ve already sold several copies of my poems in different countries like USA, Russia and others too numerous to mention.
    I also work in an organization that provides assistance to many clients from different parts of the world. Students always come to me because I work no matter how difficult their projects are. I help them to save money, because I feel fulfilled when people come to me for professional help.

    Ghost Writer – Kyran Mckinney – Team