2 research outputs found

    Reducing the Barrier to Entry of Complex Robotic Software: a MoveIt! Case Study

    Full text link
    Developing robot agnostic software frameworks involves synthesizing the disparate fields of robotic theory and software engineering while simultaneously accounting for a large variability in hardware designs and control paradigms. As the capabilities of robotic software frameworks increase, the setup difficulty and learning curve for new users also increase. If the entry barriers for configuring and using the software on robots is too high, even the most powerful of frameworks are useless. A growing need exists in robotic software engineering to aid users in getting started with, and customizing, the software framework as necessary for particular robotic applications. In this paper a case study is presented for the best practices found for lowering the barrier of entry in the MoveIt! framework, an open-source tool for mobile manipulation in ROS, that allows users to 1) quickly get basic motion planning functionality with minimal initial setup, 2) automate its configuration and optimization, and 3) easily customize its components. A graphical interface that assists the user in configuring MoveIt! is the cornerstone of our approach, coupled with the use of an existing standardized robot model for input, automatically generated robot-specific configuration files, and a plugin-based architecture for extensibility. These best practices are summarized into a set of barrier to entry design principles applicable to other robotic software. The approaches for lowering the entry barrier are evaluated by usage statistics, a user survey, and compared against our design objectives for their effectiveness to users

    Component-based Refactoring of Motion Planning Libraries

    No full text
    Most of the current state of the art motion planning software libraries are not easily interchangeable, because core concepts are represented with different data structures, application programming interfaces (API) are not compatible, or algorithms are encapsulated in modules or- ganized in mutually exclusive abstraction hierarchies. These problems limit the possibility to reuse different libraries in the same application interchangeably and to compare their quality attributes (performance, completeness, etc.). An approach to overcome these shortcomings is refactoring, a technique that aims to restructure a set of existing software libraries without affecting their external behavior in order to harmonize their architecture, data structures, and APIs. This paper presents a component-based refactoring approach that has allowed the transition from motion planning libraries, taking the object-oriented framework CoPP as basis, to a component-based system. In particular we describe a four-step application of well-known architecture refactoring patterns that redistributes the responsibilities among the classes, harmonizes the common data structures and reduces the coupling degree. The obtained system represents a composition of reusable components that are easy to customize and offer different algorithms to resolve the same problem. In this way the user could quickly compile a new motion planning application by simply choosing which algorithm to use for each functionality
    corecore