To get into things, I am working on connecting two sensors into the Brain, a TSL2561 digital light sensor, and a BPM180 barometer. Most of the code is up and running on the Arduino, but I have come across some issues with the ROS messaging.
There are a number of sensors that have multiple values. The barometer has pressure and temperature (and altitude), and temperature and humidity are often packaged together. There are two ways to code these sensors: 1) create a separate message for each value, and 2) create an array message that packages all values together.
I was having trouble with the latter (and little documentation for multidimensional ROS arrays) and noticed that the humidity/temperature sensor in git has two messages.
- Is this the standard? Is this needed so individual values can be charted and stored in the database?
If not the standard, I think it should be declared as such. While it requires more control code, it simplifies messaging and handling.
Is there a limit to what can/should be returned? Not limiting the messages allows for numerous permutations to be send (barometric pressure as Pascals, atmospheres, mm Hg, inches water, altitude, …; temperature as F or C (or K)). This also avoids array packages where you don’t know what you are getting.
Are there any standards for units (ie. “temperature should always be exchanged in C”)? Now is a good time to start pushing standards while things are just getting started.