Bill, how about looking at: MQTT - MQ Telemetry Transport or Message Queuing Telemetry Transport as a project?
Ted
how about looking at: MQTT
I totally agree with this one, as ROS uses MQTT as a msg service, which makes it fundamentally relevant to the DB1 project if, in fact, you intend to implement ROS
ROS uses MQTT as a msg service, which makes it fundamentally relevant to the DB1 project if, in fact, you intend to implement ROS
And it may also be relevant even if ROS is not used as I think DB1 will use ethernet to communicate between some of its on board computers. It would also be very useful if DB1 had wifi and was to send telemetry data to a 'HQ' computer or even to receive some 'overseeer' commands.
Outside of robotics I use it to do computer to computer comms on my home network where a house based computer connects over both hard wired and wifi ethernet to the likes of rapsberry pi's and esp8266 /32 boards running weather stations and 'outpost' monitoring of the greenhouse and heating oil tank etc. I both collect the data sent into a database and transmit data to the remote computers to do stuff like switch on the greenhouse heater or turn on outside lighting.
Its a very useful means of passing data twix computers, it is easy to set up and use (once you know how 😋), so a write up of mqtt in the excellent DroneBot stye would be welcome I'm sure.
how about looking at: MQTT
I totally agree with this one, as ROS uses MQTT as a msg service, which makes it fundamentally relevant to the DB1 project if, in fact, you intend to implement ROS
ROS uses it's own proprietary stack to communicate among the nodes. It does have a MQTT bridge to export to MQTT, http://wiki.ros.org/mqtt_bridge
But MQTT is not a part of ROS and it does not need it for communication.
Pat Wicker (Portland, OR, USA)
ROS uses it's own proprietary stack to communicate among the nodes.
I think I seen the ROS comms described as a publish / subscribe protocol like MQTT. I don't know much at all about ROS but maybe the way its protocol is described has led to confusion?
It would also be very useful if DB1 had wifi and was to send telemetry data to a 'HQ' computer or even to receive some 'overseeer' commands.
Yea, I wondered about that. Why couldn't we use wifi modules like the 8266 or esp32 when we can instead of only i2c ?
Or is there a benefit to sticking to a single form of comms ?
MQTT is not a part of ROS and it does not need it for communication
Oops
I was under the impression that it was fundamental to the pub/sub service
@spyder That does not make it any less of an interesting topic, I see there are no shortages of YouTube videos about it.
Pat Wicker (Portland, OR, USA)
is there a benefit to sticking to a single form of comms ?
I expect that i2c coms may be quicker than MQTT, just based on gut feel.
In MQTT there are internal ways of managing the queue to be sure any message that was published is received by a subscribing client, but without setting any of this up (so publish by one - receive by another - but the publisher does not check on this) I wondered what would happen if I bombarded my main mqtt subscriber computer, that collects data into an sql database, with many messages simultaneously.
I set up 2 computers to publish 1000 data messages each just as fast as they could to the mqtt broker. The subscriber computer (which was also the broker) ran a program to receive the messages (mqtt generates a callback for each received) and put them into a queue which was read on a FIFO basis to update the database (several database tables were involved in the update).
The sending of the data on the sending computers was as quick as pressing the button to send. The receiving computer' program that placed the received data into a queue and then updated the database took a little longer, over a minute if I remember rightly (maybe even more than 2 minutes), but no data was lost in this process. So mqtt is fast and reliable, but large amounts of data all arriving at once may not be quick enough for some situations.
The left side is an image of the ROS stack. The right side is ROS2 which is not quite ready for prime time.
Pat Wicker (Portland, OR, USA)