PRACSYS is a software package used for developing and evaluating controllers and planners in simulation.
The software utilizes core ROS infrastructure, ROS packages for planning (e.g., OMPL) and provides plugin functionality for software packages for physics-based simulation (e.g., ODE), collision checking, visualization and ray-tracking (e.g., OpenSceneGraph).
Some of the features of the software include: (a) the capability for separate sensing and planning processes not linked to the ground-truth simulator, (b) lightweight, multi-robot simulation, (c) distributed planning over multiple processes, (d) modeling of network and communication environment using ns-3, and (e) an extendable abstraction for the development of new controllers.
- The software is split into separate components that run in separate processes which communicate via ROS messages and are able to run in a distributed manner.
- The simulator defines an extendable, composable, object-oriented abstraction for controllers and physical systems. The controllers are integrated with simulated systems in a manner that allows for deterministic simulation. Example implementations of specific controllers (e.g., Velocity Obstacles for decentralized dynamic obstacle avoidance) are available in the stack, as well as the integration with the OMPL package for motion planning purposes.
- The simulator provides plugin capability for different physics engine (currently supports ODE) and different collision checkers (currently supports PQP and includes support for FCL).
- Provides the capability to directly compare the performance of different planners and controllers on the same problem (e.g., evaluate the performance of sampling-based algorithms implemented in the OMPL package against the performance of search-based methods implemented in the SBPL package).
- The planning and simulation nodes provide general planning capabilities that are not specific to arm navigation but can be used to move any system that can be simulated. Moreover, they allow for general replanning or “partial planning”, where the planner has a limited amount of time to compute a plan. The plan does not necessarily solve the complete problem, however the system can start its execution while the planning node is generating future controls.
- The software is built so as to support lightweight, multi-robot simulation, where potentially hundreds of systems are simulated simultaneously and where they execute different controllers.
- The stack also provides the capability for distributed, message-passing planning, where different processes are running a separate planning algorithm and communicate with messages in order to solve a multi-robot motion coordination problem.
- One of the nodes is devoted to simulating the behavior of a network environment through the use of ns-3, i.e., of the popular discrete event network simulator, which allows the modeling of routing protocols and physical limitations such as multi-path effects, interference and bandwidth limitations. Messages between simulated robots can be rerouted through this node so as to simulate the network environment.
- One of the nodes is devoted to simulating sensing, which is a separate process from the core simulation process. In this way, the simulator is faster and sensing is not directly linked to it.
- While the simulation and planning nodes are compatible with rviz, there is a visualization node that comes together with this stack that provides an OpenSceneGraph-based plugin, which allows for greater compatibility with OSX. The visualization node provides a wide variety of features, including taking videos and screenshots, as well as displaying additional geometries and information which might be useful for educational purposes or for the development of computer games using ROS as the underlying infrastructure.
Great software, thank you.