2
$\begingroup$

Aim: To use multi-threading and inter-process communication(IPC) when coding an autonomous robot.

Platform: Embedded Linux (Yocto)

Constraints : Limited CPU power.

We are building an Autonomous Underwater Vehicle, to compete in the RoboSub competition. This is the first time I am doing something like this. I intent to use a middleware like ROS, MIRA, YART, MOOS etc. The purpose of using one is that I want to modularise tasks, and divide the core components into subsystems, which should be run parallel(by multi-threading). But I have limited computational power (a dual core omap SoC), and the middleware, while robust should also be very efficient.

I need to use a middleware, because I don't want the program to be run on a single thread. My CPU has two cores, and it would be great if I could do some multi-threading to improve performance of the program. The middleware will provide for me the communication layer, so I don't have to worry about data races, or other problems associated with parallel processing. Also I have no prior experience writing multi-threaded programs, and so using parallel processing libraries directly would be difficult. Hence IMO, middlewares are excellent choices.

In your experience, which is the best one suited for the task. I don't really want to use ROS, because it will be having a lot of features, and I wont be using them. I am a computer science student(under graduate freshman, actually) and don't mind getting my hands dirty with one which has not that much features. That's true if only it will take less toll on the CPU.

$\endgroup$
  • 3
    $\begingroup$ User, I'm voting to close this question and am recommending you move it to robotics chat. Your question is going to wind up being more of a back-and-forth than a direct question with a direct answer. $\endgroup$ – Chuck Jun 19 '15 at 11:40
  • $\begingroup$ @Chuck, how to move a question to chat? U mean ask in chat? $\endgroup$ – daltonfury42 Jun 19 '15 at 12:30
  • $\begingroup$ Yes, ask again in chat. $\endgroup$ – Chuck Jun 19 '15 at 12:46
  • $\begingroup$ @Chuck, I don't feel the question is ambiguous. The question is which middleware to use when performance is a serious consideration. I thought this could be answered by the SE community here, who may have experience using them. $\endgroup$ – daltonfury42 Jun 19 '15 at 12:51
  • $\begingroup$ as in the robosub competition happening in July? $\endgroup$ – holmeski Jun 19 '15 at 19:37
2
$\begingroup$

Take a look to rock-robotics.org and github.com/auv-avalon we provide a lot of basic tools already but in the end there is no real best middelware.

$\endgroup$
2
$\begingroup$

For maritime robotics, you should definitely take a look at MOOS. It is a similar middle-ware to ROS, but was originally developed at the Dept. of Ocean Engineering at MIT with Prof John Leonard. So it has a heavy maritime bent to it, but can of course be used for terrestrial (or aerial) robotics as well.

$\endgroup$

Not the answer you're looking for? Browse other questions tagged or ask your own question.