Hi all,
I propose, or call for implementations if they exist, a CAN message
type. Normally I don't send out an email for every message I make, but
this relates to decisions that can influence the whole ROS communication
paradigm, so I though I'd ping the community to see what people think.
The idea is: most computers don't have CAN (or serial, anymore) port,
and you usually have to write/adapt a driver to communicate on a CAN
network. This driver often gets incorporated into the rosnode of
whatever device is on the network, meaning that:
A) the rosnode for the device is not reusable for people with different
CAN interface
B) The code has to be re-adapted to use the same CAN interface with
another device
I know of at least 3 nodes I have personally interacted with that have
this structure.
If we have a can message type, for example:
uint64_t timestamp
uint32_t id
uint32_t datalen
uint8_t data[8]
then we solve both problems.
Now, with some interface types (say for example usb) it would not be
advisable to have a ros message representing a low level communication,
due to bandwidth and latency problems, but I don't think this is a
problem for CAN, since the maximum bandwidth is so low to begin with.
What do you think, ros community? Is there a reason this hasn't been
implemented before?
Garratt