RFC: use roslaunch files for PFC configuration


#1

This PR simplifies the fixtures system and hews closer to the standard ROS way of doing things.

  • All nodes are configured with a .launch config file http://wiki.ros.org/roslaunch/XML
  • All configuration parameters are loaded from yaml files into the parameter server

Before: fixture -> load_fixture -> db -> launch file -> load config from db
After: launch file -> read config from param server

https://github.com/OpenAgInitiative/openag_brain/pull/137

Note that while this simplifies things a great deal and removes a few footguns, it’s a backwards-incompatible change.

Please provide feedback on the PR


New launch procedure, brain and python changes
#2

@gordonb
There are trade-offs here.
I agree that this is more ROSish, and simplifies the process, but I think it makes data transparency and sharing more difficult. ROS is a good messaging infrastructure, but I could see it swapped out for another messaging system in the future (business process infrastructure? BPM engine?). How well does it scale if we move off the RaspberryPi for a shipping container or warehouse?
Rather than designing around the current infrastructure, I think we need to take a long view: data centric. If all parameters are stored in the database, they are easily moved to the cloud for sharing; there is one location with consistent format (json). As we move toward analytics, the configuration information will be needed along with the sensor and phenotype data.
We have different goals here (ROS architecture consistency - analytic architecture; simplicity - flexibility) and need to look at architecture priorities.
My vote is to have as much information in the database as possible, and not design around the current infrastructure.


#3

please see New launch procedure, brain and python changes