I was wondering if I can run the magni on the cloud?

I was wondering if I could use Magni’s raspberry pi to collect sensor information and then do the processing and programming on a cloud platform?
If so, How can I do that?


There are bits of things well suited for the cloud but the Magni robot base itself is a ROS system and is intended to be a base platform for developers.

We have no specific ‘solutions’ documented and supported in code directly for use out of the box on the Magni platform at this time.

There are things like sending speech or images up to cloud servers to search for verbal commands or to recognize images of things. Google had a service a while ago that may still be present where you could submit images and it would rate them for how strongly they resembled things and send back text for the things it ‘may’ be and how likely there is a match.

As far as your overall comment, it is too wide of a question to comment on in any specific way.

There were some other cool cloud based things like having your camera be sent to the cloud and then allow the cloud app to tell your robot what to do from some remote human controller your robot. There was a clever platform a few years ago at letsrobot.tv for example but it may have changed its name.

So again, cannot help you specifically with your question myself, perhaps somebody else will chime in.

1 Like

So, what I am attempting to do is I want to make the Magni run autonomously in an outdoor environment, and I am relying on a stereo camera for object detection as well as radar. For the purpose of navigating the Magni, I am using a GPS module to collect the map of the environment (this is because it is running on a sidewalk). So I thought if it would be possible to collect sensor data from the camera, radar as well as the GPS module, and process it on a cloud platform, instead of processing it on the raspberry pi which is on the magni

Thanks again!

Hello again. I myself have no specific solution to point you towards any specific pieces of the solution as far as the stereo camera processing or the complex processing required for your project. We do not have that as we focus mostly on robot centric processing at this time. What you are discussing is quite complex.

Perhaps in posting here somebody with expertise in the cloud image processing area may chime in with some leads and pointers to assist your efforts.

A few things you would perhaps be interested in as parts of your solution I will go into below and perhaps you know these things already but if not there may be some value in some of this post.

  • For outdoors, away from wifi it is likely you would want to get a wifi hotspot based on a cell phone provider such as verizon. The major providers generally have these devices available. You would setup your magni to connect to this hotspot wifi. From the magni side of things this page would be of value for connecting to a hotspot: https://learn.ubiquityrobotics.com/connect_network

To undertake what you are looking at you must be very familiar with C development using catkin and you must be versed in many basic ROS ideas and mechanisms. Do not take on this task unless you are really wanting to learn ROS and become proficient in standard ROS robotic systems. Perhaps you already have this sort of background and if so you can then focus on the new pieces.

Robot building projects are often about where we build upon our prior knowledge or the knowledge offered by others on assorted web pages to take our next steps faster. Do not think all of it will just happen and be learned in a week. It will take a great deal longer however the result will be a wonderful learning experience to prove valuable on this and perhaps other projects you undertake.

If your needs are simple enough ROS supports formation and development of ROS nodes in python as well.

That being said now:
At a high level you will need to form the software to do all the passing of data and processing on the cloud and the part of your solution where Magni comes in is that when you do all that code you end up with some new ROS node of your own making (I normally call my main node ‘main_brain’ or something.

I must assume you know about working in ROS for this discussion so if not you can learn a great deal with this as a starting point: http://wiki.ros.org/ROS/Tutorials You don’t need it all but you do need a great deal of this info to understand what I will say next.

  • Your main node should be able to publish to the ROS topic called /cmd_vel. The magni as it sits is listening to /cmd_vel and takes that all the way to drive the wheels. That is one key thing we do is work out all the motor things and present the standard interface of the ROS /cmd_vel topic.
    I will assume enough keywords are here so web searches can find you more info on how publication of messages to /cmd_vel is supposed to work to control a ROS robot such as Magni.

  • Another key thing this main node or some other node you form must likely do is to subscribe to the standard ROS topic we supply that is called /odom This topic continually updates the position that Magni thinks it is located at in terms of keeping track of the wheels and the general mechanical dimensions of the Magni robot. Be aware that /odom gets you close but there is drift over time due to many factors so /odom is only good as something to use when you combine it with GPS and map navigation.

  • The GPS is the easiest part of your requirements as long as the GPS has NMEA serial output. What I have done for GPS is typically use a usb to serial adapter to the GPS. There are some examples of ROS nodes that do some of the work such as here: http://wiki.ros.org/nmea_navsat_driver

  • The more complex software will be in the node passing images to the cloud. Here you will have to consider the high bandwidth requirements of whatever frame rate your system will require. This could prove a bottleneck the higher the resolution of the stereo images and the higher the rate per second of frames.

I have no specific suggestions. The project sounds exciting and will most certainly be highly involved.

Let us know how you are doing as you progress.


1 Like