SharpRobotica.com – Sharp ideas for the software side of robotics

Sharp ideas for the software side of robotics

Entries for the ‘Architecture’ Category

InteRRaP Hybrid Architecture for Robotic & Multi-Agent Systems

Over the years, a number of well defined architectures have been proposed for a wide assortment of project domains; a few examples were described in Architectural Paradigms of Robotic Control.  As described, the architectural approaches can typically be categorized as follows: Reactive architectures which emphasize reacting to the immediate world environment without keeping an internal […]

Developing Well-Designed Packages for Robot Operating System (ROS), Part VI

Part VI: Adding a UI Layer to the Package As the last and final chapter to this series of posts (Part I, II, III, IV, V), we’ll be adding a basic UI layer to facilitate user interaction with the underlying layers of our package. Specifically, a UI will be developed to allow the user (e.g., […]

Developing Well-Designed Packages for Robot Operating System (ROS), Part V

Part V: Developing and Testing the ROS Message Endpoint [Author's note, July 28, 2010: Introduced Boost::shared_ptr to manage reference to message endpoint so as to enable postponed construction, as will be required in Part VI.] While this series (Part I, II, III, IV) has been specifically written to address writing well-designed packages for ROS, we’ve […]

Sequencing Layer with ESL (Execution Support Language)

In Architectural Paradigms of Robotic Control, I discussed a number of control architectures with a bias towards a hybrid approach, for facilitating reactive behaviors without precluding proper planning. With 3T, a common hybrid approach, the three layers include a skill layer for reactive behavior and actuator control, a sequencing (or execution) layer for sequencing behaviors […]

Developing Well-Designed Packages for Robot Operating System (ROS), Part IV

Part IV: Developing and Testing the Application Services [Author's note, July 28, 2010: Introduced Boost::shared_ptr to manage reference to message endpoint so as to enable postponed construction, as will be required in Part VI.] Ah, we’ve made it to the application services layer.  After defining the architecture, setting up the package, and implementing the core […]

Developing Well-Designed Packages for Robot Operating System (ROS), Part III

Part III:  Developing and Testing the Domain Layer [Author's note, July 28, 2010: Fixed minor bug in LaserScanReader.cpp wherein it couldn't be restarted after being stopped; had to reset _stopRequested to false.] In Part II of this series, we created the humble beginnings of the package and added folders to accommodate all of the layers […]

Developing Well-Designed Packages for Robot Operating System (ROS), Part II

Part II:  Creating the Package Skeleton In Part I of this series, we examined the overall architecture that will be put in place with the development of the ROS package.  It’s time to get our hands dirty and put the theory hypothesis to work!  Accordingly, this post in the series will focus on putting together […]

Developing Well-Designed Packages for Robot Operating System (ROS), Part I

In previous posts, I discussed general patterns of message-based systems along with basic guidance on developing components for such systems.  While these posts may have provided basic information about their respective topics, there’s a clear difference between theory and implementation.  (The former is easier to fake.)  Accordingly, it’s time to get our hands dirty and […]

Checklist for Developing Message-Based Systems

Even when developing the most basic CRUD application, we ask ourselves a number of questions – whether we realize it or not – during the initial phases of development concerning the architecture and construction of the project.  Where will the data be persisted?  What mechanism will be used to communicate with the database?  How will […]

Message-Based Systems for Maintainable, Asynchronous Development

Preface (you know it’s good if there’s a preface) In Architectural Paradigms of Robotic Control, a number of architectures were reviewed including deliberative, reactive, and hybrid architectures.  Each of these exhibit a clean separation of concerns with layering and encapsulation of defined behaviors.  When implemented, the various capabilities, such as planners and mobility controllers, are […]

© 2011-2014 Codai, Inc. All Rights Reserved