System Architecture

A project log for ICARUS Scout

The Scout is a tank-style robot.

david-gitzDavid Gitz 10/29/2017 at 13:140 Comments

I wanted to spend a little time talking about the system architecture for this and other projects I'm working on.  When developing this I tried to make it as scalable as possible.

The first figure here is the "back-end", this is the device tree that is common to all my projects.

As can be seen here, devices are connected to each other over either a wired LAN or a WLAN network, but these 2 network segments exist on the same subnet.  Any device that has a network interface can see any other device.

There are similar diagrams for each project that are project specific, which I am still creating. The document here details each device by function, what it does, the FAST PN's that are supported and how it should be configured.

The system is designed to be auto-configured as much as possible.  To that end, all device configuration information is stored in project specific xml files.  The main file, the DeviceFile.xml (example here) is used throughout the ICARUS software configure itself.

I hope this has been a little helpful.  There are definitely more pieces to this, such as how the different ROS nodes pass device information around, what the different comm protocols are, etc.  I think next time I will talk about the camera pan/tilt mount I made for this project.