Beta

×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Needed: A LAMP Stack For Robotics

timothy posted more than 2 years ago | from the help-wanted-apply-through-the-usb-port dept.

Programming 65

waderoush writes "If you visit Menlo Park, CA-based Willow Garage, you'll meet a $400,000 humanoid robot called PR2 that has stereo vision, a pair of dextrous arms, and enough smarts to roam the building indepedently and even plug itself into the wall when it needs to recharge. But in a sense, PR2 is just a demo. The real action at Willow Garage is around ROS, the Robot Operating System, a free meta-operating system that's already being used by hundreds of roboticists around the world and may soon be handed over to an independent foundation analogous to the Apache Software Foundation. Brian Gerkey, Willow Garage's head of open source development, says 'What we need is a LAMP stack for robotics,' and hopes that ROS will jumpstart innovation in robotics in the same way Linux and other free software components provided the foundation for the Internet boom. Today's roboticists 'have to come at the problem with a very deep expertise in all aspects of robotics, from state estimation to planning to perception, which automatically limits the number of people capable of building new things,' Gerkey says. 'But by providing a basic toolset analogous to the LAMP stack, we can get to a point where all you need to know is how to write code and what you want your robot to do.'"

cancel ×

65 comments

Sorry! There are no comments related to the filter you selected.

Frisky Pornstar (0, Offtopic)

Anonymous Coward | more than 2 years ago | (#39508489)

We hereby stack a bunch of frisky pornstar lezbos next to the living room LAMP.

MODERATORS!!!! H-E-L-P!!!i!!!l!!!!i!!!!i!!!ll!!!! (-1)

Anonymous Coward | more than 2 years ago | (#39509045)

mod parent up or DIE

Cylons, terminators... It all means one thing. (3, Funny)

gestalt_n_pepper (991155) | more than 2 years ago | (#39508613)

DON'T skimp on the LAMP stack testing.

Re:Cylons, terminators... It all means one thing. (0, Troll)

Anonymous Coward | more than 2 years ago | (#39508747)

That's GLAMP stack (GNU/Linux, Apache, MySQL, PHP) , you fucking FASCIST.

Re:Cylons, terminators... It all means one thing. (1)

Shifty0x88 (1732980) | more than 2 years ago | (#39510007)

Seriously another Linux vs. GNU/Linux argument?

Re:Cylons, terminators... It all means one thing. (1)

biodata (1981610) | more than 2 years ago | (#39510469)

P is Perl. PHP and Python were later alternatives.

Re:Cylons, terminators... It all means one thing. (1)

Eponymous Hero (2090636) | more than 2 years ago | (#39511565)

and because of that, he's still correct.

Re:Cylons, terminators... It all means one thing. (2)

justforgetme (1814588) | more than 2 years ago | (#39511841)

I propose they base it on a LARD stack!

Linux
Apache
Riak [wikipedia.org]
Dart [wikipedia.org]

So that it will be web scale [youtube.com] !

Re:Cylons, terminators... It all means one thing. (1)

Anonymous Coward | more than 2 years ago | (#39511281)

That's GLAMP stack (GNU/Linux, Apache, MySQL, PHP) , you fucking FASCIST.

GNU isn't the only set of tools you can run between the kernel and AMP.

Re:Cylons, terminators... It all means one thing. (2)

LordLimecat (1103839) | more than 2 years ago | (#39512615)

GLAdOS, MySQL, and PHP?
Sounds like a dangerous combination, to me.

Re:Cylons, terminators... It all means one thing. (3, Insightful)

iamgnat (1015755) | more than 2 years ago | (#39509007)

All I can think of is, do we really want the typical PHP "programmer" types writing code for robots? Really? It's bad enough what a SQL injection attack can do now, imagine what can happen when it effects something with arms to beat people over the head with (though if it could be directed at the programmer...).

Re:Cylons, terminators... It all means one thing. (1)

DemonGenius (2247652) | more than 2 years ago | (#39510471)

All I can think of is, do we really want the typical PHP "programmer" types writing code for robots?

You seem to think because you see "PHP" that people barely capable of writing anything in the language will be writing code for something that requires rigorous quality control. Truth is, these "programmer" types as you put it are more likely to stick to what they know best and leave the technical stuff to people who know that best. Also, who's to say that these "programmer" types won't try to pretend like they know C, or Java, or SQL? A language is just a language, and anyone can learn any language, but it's how the language is used and the person using it that determines its usefulness to whatever it is applied to. Many innovations in software development and engineering come from shifting different pieces around to see where they fit best. I think it is a very worthwhile endeavor to see if a LAMP stack has any place in robotics.

It's bad enough what a SQL injection attack can do now, imagine what can happen when it effects something with arms to beat people over the head with (though if it could be directed at the programmer...).

I think in this case, it's the company that hires the "programmer" type who's responsible for any dangerous mishaps rather than the "programmer" him/herself. That probably would be enough motivation for that company to hire only the best developers to write code for their robots. Also, in the case of open source robotics using a LAMP stack, it's assumed to be "use at your own risk" anyway like any open source software, plus the user would be liable for any damages resulting from poor coding of their robot. That's probably enough motivation for a "programmer" not to code for a robot.

Re:Cylons, terminators... It all means one thing. (2)

iamgnat (1015755) | more than 2 years ago | (#39511697)

You seem to think because you see "PHP" that people barely capable of writing anything in the language will be writing code for something that requires rigorous quality control. Truth is, these "programmer" types as you put it are more likely to stick to what they know best and leave the technical stuff to people who know that best. Also, who's to say that these "programmer" types won't try to pretend like they know C, or Java, or SQL? A language is just a language, and anyone can learn any language, but it's how the language is used and the person using it that determines its usefulness to whatever it is applied to.

The evidence is overwhelming that the average PHP programmer has no business writing code that sees the light of day. At one point something that would process credit cards would require "rigorous quality control", but now many such applications see a minimum of testing (because many companies view QA as more of a cost sink than Dev). It's not a fault of PHP itself, I think it is more a side effect of things like LAMP have drastically reduced the barriers of entry. My issue with these types of programmers is that they pick up a book or two and jump into it with no background understanding and then start following the advise/examples of people that did the same thing which perpetuates the bad things that allow things like SQL injection attacks and cross-site scripting attacks. You are correct, and I share the opinion, that languages are just languages and if you can learn one you can learn another. The difference with the more traditional languages, however, is that they don't have quite the immediate result of something like LAMP and don't have as many "build your e-commerce site in an hour" type tutorials (e.g. you don't see an abundance of sites/people trying to convince you that you can become a C programmer in hours/days with no experience). All languages have similar issues and the fault is on the programmer not knowing how to deal with them. My issue (and what I think you aren't understanding) is that this type of programmer doesn't understand what they don't know so they won't stop and ask themselves if they should leave it to someone else. PHP just seems to attract more than it's fair share of idiots (or maybe it just seems that way since PHP tends to be more public facing so the results of bad code are more obvious).

I think in this case, it's the company that hires the "programmer" type who's responsible for any dangerous mishaps rather than the "programmer" him/herself. That probably would be enough motivation for that company to hire only the best developers to write code for their robots.

Firstly, you obviously apparently needed me to add a /sarcasm tag. Secondly, history has again shown that companies are generally are in a race to the bottom for development costs. Bad/Inexperienced programmers (and it's not just PHP by any stretch) cost less than the rockstar programmer with decades of experience that really knows what they are doing. From a simple economics perspective a company will usually hire 2 $50k "Web programmers" than one $100k programmer because (until the damage has been done) it's hard to quantify the additional costs of extra time it takes to complete the project, time spent fixing "basic" defects, and the damage of security problems. And yes I am fully aware that salary has no bearing on quality, it's an example. I do, however, know that experienced programmers that can command high salaries can't compete Web/PHP space because they are competing with cheap labor and quality is not a factor (or a minimal one at best). Yes it is the companies fault for hiring inadequate talent, but that is little consolation to those with the talent that get passed over or the guy that had his arm ripped off because of a simple mistake that wasn't tested/validated very well.

Also, in the case of open source robotics using a LAMP stack, it's assumed to be "use at your own risk" anyway like any open source software, plus the user would be liable for any damages resulting from poor coding of their robot. That's probably enough motivation for a "programmer" not to code for a robot.

Basically all the technology of the Web (and most of the Internet) is "at your own risk" and that's not stopping individuals from using it or companies from basing their business models on it. Anytime someone thinks there is money to be made, they will get into it and the easier it is to get into it the more people will try it.

I'm all for making it easier for those with the knowledge to do their work, but lowering the barrier of entry is rarely a good idea (want to make it easier to become a Doctor? Lawyer? F1 driver?). Certainly there are people that can take advantage of the lower barriers and become good at it, but an increasing majority (based on ever lower barriers) will do little more than make life more difficult for the good ones.

And I say all this being an experienced C, PL/1, Perl, Tcl, PHP, Python, Objective-C, Java, Javascript, and 'many more' programmer that spent 2 years of my career fixing the code of average PHP programmers before it could be released and expose our production servers. I also like to dabble in embedded systems and microcontroller programming. I, however, don't kid myself and think that I can go out and get a robotics job because I can connect microcontrollers to servos and make them work (and no I don't use Arduino either). I also know how to get jobs that recognize the need of and pay for my experience so I don't have to fight the cheap labor issues.

Re:Cylons, terminators... It all means one thing. (0)

Anonymous Coward | more than 2 years ago | (#39511873)

And I say all this being an experienced C, PL/1, Perl, Tcl, PHP, Python, Objective-C, Java, Javascript, and 'many more' programmer that spent 2 years of my career fixing the code of average PHP programmers before it could be released and expose our production servers. I also like to dabble in embedded systems and microcontroller programming. I, however, don't kid myself and think that I can go out and get a robotics job because I can connect microcontrollers to servos and make them work (and no I don't use Arduino either). I also know how to get jobs that recognize the need of and pay for my experience so I don't have to fight the cheap labor issues.

Brag much? You might want to tone down the arrogance a bit.

Re:Cylons, terminators... It all means one thing. (1)

Spiked_Three (626260) | more than 2 years ago | (#39513069)

why should he, he is totally correct. Don't mistake truth for arrogance.

Re:Cylons, terminators... It all means one thing. (1)

justforgetme (1814588) | more than 2 years ago | (#39512063)

I respect your spin, truth is, though, that companies and especially HR can get it badly wrong (as in "holy crap the toaster is shooting at me").

IMHO robotics does need a good standardized stack, a good friend works in robotics research and what I can gather is that not having agreed upon base layers of software is killing their productivity. Still since robotics does (and always should) employ good minds I'd vote for a language that can model high complexities. Maybe something in the realms of C or, even better, something functional. Imperative languages will still do though.

Re:Cylons, terminators... It all means one thing. (1)

bill_mcgonigle (4333) | more than 2 years ago | (#39519253)

It's bad enough what a SQL injection attack can do now, imagine what can happen when it effects something with arms to beat people over the head with

Like my grandpa used to say, "Son, you can't take out a SQL injection attack with buckshot, but them robots go down hard."

Re:Cylons, terminators... It all means one thing. (1)

physburn (1095481) | more than 2 years ago | (#39513313)

I've been wanting to build testing code on /etc/cough all day.

Follow-on question... (2)

Shoten (260439) | more than 2 years ago | (#39508695)

How standardized is robotic hardware? With the LAMP stack, you're creating an environment with integrated components for OS, database, web services and application services so that you can build what you need from end-to-end. But it seems to me that with robotics, you have one more step to go: the kinetic/physical representation of things. Are there standards for the description of spatial relationships, feedback from sensors and movement directives? I'm not challenging the idea; I think it's great. But I'm curious about this one aspect of it, since I know very little about the robotics world and think that many of the people who will comment on this are in the same boat. (Thus, some clarity on this may improve the quality of comments...somewhat.)

Re:Follow-on question... (2)

houstonbofh (602064) | more than 2 years ago | (#39508779)

How standardised is computer hardware? Linux runs on Intel, Aarm, alpha, PPC, RISC, Spark, IBM (as in AIX mainframe) processors, and more. The point is that a standard would develop a framework lowering the barrier to entry. As more people some in, both the hardware and the software will improve, lowering the barrier further. This is a good thing.

Re:Follow-on question... (2)

mhajicek (1582795) | more than 2 years ago | (#39508895)

There are industry standards for CNC machines, which are a form of robot that's been in use for decades. Probably not particularly applicable though.

Re:Follow-on question... (1)

MacGyver2210 (1053110) | more than 2 years ago | (#39509271)

You can use various methods to TX/RX raw serial data between linux programs and the uController hardware. Whether that's an entire Arduino board or a MAX232 serial converter soldered to a USB cable, it sends the same data. Hell, drive your robotics servos with the parallel port. There are a hundred different ways to rig it up.

Plus with the introduction of things like the RaspberryPI and other micro system-on-a-chip computers it's increasingly easy to create a LAMP stack for circuit-sized applications.

Re:Follow-on question... (2)

Lije Baley (88936) | more than 2 years ago | (#39509367)

Yeah, how about a robust, resilient, and cheap USB i/o box, please.

Re:Follow-on question... (1)

drewm1980 (902779) | more than 2 years ago | (#39515781)

They have those. One brand is called LabJack. The downside is that you're paying extra for what amounts to an arduino that you can't (as?) easily re-program and/or embed into a gadget.

Re:Follow-on question... (1)

Lije Baley (88936) | more than 2 years ago | (#39518223)

Thanks, I hadn't seen that one before.

Re:Follow-on question... (1)

chuckinator (2409512) | more than 2 years ago | (#39509421)

Joint Architecture for Unmanned Systems (JAUS) It originates in the DARPA research ecosystem, so it's got a lot of alphabet soup going on. I'm not sure if this is what the commercial sector will eventually converge upon as a standard, but what they do converge on will resemble that to some degree atleast.

Re:Follow-on question... (2)

MightyYar (622222) | more than 2 years ago | (#39511203)

How standardized is robotic hardware?

It depends on what you mean by "standardized". Sure, there's nothing directly analogous to a PC with "Intel Inside", but there certainly are a limited number of choices for any robot designer when it comes to any aspect of the design.

Start with communications... you will quickly settle on a few choices - if millisecond latency is not an issue, you'll probably talk via ethernet or some serial bus, of which the choices are limited. If you need less latency, you'll chose a more traditional bus, of which the options are even more limited.

Host/main CPUs are more or less restricted to the same ones that already run Linux.

Servo control is a problem that can be solved in a generic way. Stepper control is the same.

There are limited options when it comes to sensors, and most sensors of the same type will behave in ways that are similar. For instance, a home sensor is just going to read on or off, no matter what technology it uses. A pressure sensor will return some voltage level that linearly corresponds to pressure. An encoder will return some position. Etc.

Sure, there are examples of things that won't be a good fit to the canned solutions, but it sure would be nice to be able to concentrate on those and let the framework handle the generic stuff. We write our own software for our entire machine (industrial robot) and right now the only libraries we can fall back on are vision libraries, which are already an excellent example of something that can be generically implemented. We buy ours for various reasons, but there are decent free libraries as well.

Re:Follow-on question... (0)

Anonymous Coward | more than 2 years ago | (#39513047)

Don't standardize the hardware, standardize the software. I've been using ROS for several months (bought a turtlebot). You can use any hardware you want if you can write the interface to ROS. I think ROS already provides just about all we need. It took me a couple of weeks to get it all down, but now I can write C++ code to control the robot. Others have already written all the localization and mapping (the hard stuff). I anticipate a turtlebot that can go to the fridge and get a beer. All I've got to do is write some glue. It. Is. Freaking. Awesome.

Re:Follow-on question... (0)

Anonymous Coward | more than 2 years ago | (#39515329)

Yes, he's making a BIG assumption that everyone will be running the same OS. And some people need hard RT, soft RT or low-latency OSes in the robotics field. If you can't standardize on OS, then all is moot. And sorry, Linux doesn't cut it for a power plant, UAV, or SCADA environment.

L = need of a common OS, aka drivers! (AVR comes to mind)
A = ROS (well, what Willow Garage wants)
M = ??
P = C/C++ for now.

Re:Follow-on question... (1)

drewm1980 (902779) | more than 2 years ago | (#39515843)

But it seems to me that with robotics, you have one more step to go: the kinetic/physical representation of things. Are there standards for the description of spatial relationships, feedback from sensors and movement directives?

Standardized representations of coordinate frames and tools for manipulating them is indeed one of the features provided in most robotics frameworks.

Re:Follow-on question... (0)

Anonymous Coward | more than 2 years ago | (#39530083)

ROS achieves this excellently by generic data types, messages, interfaces and abstractions. All you need is a bit of glue to map your physical hardware's existing driver's input/output into their framework and you're done (typically in either C or python). I've used a number of custom pieces of hardware with ROS, and it typically takes a few hours writing your own glue from scratch.

LAMP stack? (1, Funny)

c0lo (1497653) | more than 2 years ago | (#39508725)

For robotics? Here's your lamp stack [wikipedia.org]

Shameless plug for the best robotics IDE (4, Informative)

SomeKDEUser (1243392) | more than 2 years ago | (#39508763)

https://aseba.wikidot.com/ [wikidot.com]

Not from me, but from a good friend. Need to programme distributed behaviour in swarms of robots with an easy-to-use IDE coupled with a simulator? Need to transparently switch between reality and simulation as well as have access to pre-programmed sensors and robots? Free software ?

There you go.

It's been done. (-1)

Anonymous Coward | more than 2 years ago | (#39508843)

http://en.wikipedia.org/wiki/Three_Laws_of_Robotics

Linuxcnc + RTAI (4, Interesting)

LuxuryYacht (229372) | more than 2 years ago | (#39508851)

Much of this is already in LinuxCNC
http://www.linuxcnc.org/ [linuxcnc.org]

It's mostly used by developers to control CNC machines but it also includes support for non-Cartesian motion systems provided via custom kinematics modules. Available architectures include hexapods (Stewart platforms and similar concepts) and systems with rotary joints to provide motion such as PUMA or SCARA robots.

http://linuxcnc.org/docs/html/man/man9/kins.9.html [linuxcnc.org]
http://linuxcnc.org/docs/html/motion_kinematics.html [linuxcnc.org]

We've use it to control some pretty complex robotic systems.

Re:Linuxcnc + RTAI (1)

Spiked_Three (626260) | more than 2 years ago | (#39513183)

"Much of this is already in LinuxCNC"

Seriously? To take that statement as is, is crazy. Much of what? prepackaging? robotics? I don't understand how that could be moderated up as it says nothing.

I dont understand how CNC encompasses anything more than one small part of robotics - motion control. Using CNC in robotics would be like using a car as only a flashlight.

Using the packaging does not make sense either, as ROS has its own versioning requirements.

So what is it that LinuxCNC has? and why is it moderated up?

Re:Linuxcnc + RTAI (0)

Anonymous Coward | more than 2 years ago | (#39516553)

"Much of this is already in LinuxCNC"

Seriously? To take that statement as is, is crazy. Much of what? prepackaging? robotics? I don't understand how that could be moderated up as it says nothing.

I dont understand how CNC encompasses anything more than one small part of robotics - motion control. Using CNC in robotics would be like using a car as only a flashlight.

Using the packaging does not make sense either, as ROS has its own versioning requirements.

So what is it that LinuxCNC has? and why is it moderated up?

You can't take a gopher and expect him to catch flies any more that two birds in the hand are worth two shakes in the bush!

Re:Linuxcnc + RTAI (1)

drcesteffen (1236780) | more than 2 years ago | (#39514257)

OpenRave has an open source IKS solver http://openrave.programmingvision.com/en/main/openravepy/ikfast.html [programmingvision.com] http://openrave.programmingvision.com/en/main/_modules/openravepy/ikfast.html [programmingvision.com] which is supposed to create optimized C or C++ code for the IKS. Of course you can get the IKS solutions for most common manipulators from text books.

ROS is great, but only insofar as WG makes it (1)

Missing.Matter (1845576) | more than 2 years ago | (#39508859)

I use ROS in my research daily, and it's a great framework. However, it suffers from the a lot of the same problems other open source project face. Foremost, aside from stacks produced by Willow Garage, the documentation is incredibly spotty. For the most part, packages rely on doxygen API documentation as a substitute for true documentation, when really it tells you nothing of how to use a particular package. For the majority of stacks, there are no tutorials, examples, or even indications on how to get a particular package running correctly.

Further, like most FOSS projects, direction is very scattered. Again, aside from stacks developed at Willow Garage, a lot of code is very specialized to a specific robot platform, when it should be generalized to work on any platform. I think this is in part due to the disperate nature of the field, but also is a side effect from the lack of documentation; instead of using an undocumented stack, most groups will simply reinvent the wheel because figuring out the mystery package would take longer. I mean, only last month a generalized teleoperation stack was released. Before that, each robot seemed to have its own specialized teleoperation package coded for a particular input type.

Honestly, what I like most about ROS is the TCP/IP node framework, the trasnformation stack, the point cloud library (PCL), and the wide array of message types (plus the ability to define my own). Also the device drivers are very handy, so I can be assured most of my devices are plug and play. I think being able to leverage this framework and common robotics algorithms is incredibly powerful. However I'm not convinced of the utility in most community developed stacks, as they're still too specialized and too undocumented to be generally useful.

Re:ROS is great, but only insofar as WG makes it (1)

bstag (933525) | more than 2 years ago | (#39510669)

Some of us are exploring and documenting on the way while cussing loudly. As for being specific it generally relates to the platform they implemented ROS on. If we did the stacks in the manner of processing stacks and platform stacks as separate. It could be a boon to the usability of the community stacks. Some of the community has done this in their stacks already. WG does not push this maybe moving to its own foundation with its own future will drive this style of change. As someone who feels your same frustration daily I can only dream. Since right now publishing a repository one only needs to send a email to a list saying here I am.

why LAMP? (2, Funny)

DragonTHC (208439) | more than 2 years ago | (#39509601)

why do you need a LAMP stack, is the robot going to run around updating its blog and posting crappy instamatic photos?

Re:why LAMP? (1)

CastrTroy (595695) | more than 2 years ago | (#39511001)

I agree. I mean, you could create a standard RESTful API for controlling robots, but why would one need to specify OS/web server/scripting language/database products to implement that API? Why couldn't I use PostGres, or SQLLite or some other database on the robot? Using SQLLite would certain make more sense than having a full MySQL server running Why couldn't I Implement the scripting in Java, or C if I wanted to?

Re:why LAMP? (0)

Anonymous Coward | more than 2 years ago | (#39512683)

I can't decide whether parent and GP deserve a "+1 funny" or a "woosh" ...

Re:why LAMP? (1)

bill_mcgonigle (4333) | more than 2 years ago | (#39519259)

Everything that's successful has a standardized interface.

Let the "P" Stand For "Probability" (2)

LifesABeach (234436) | more than 2 years ago | (#39509619)

My minor experiences with robotics,(JetLine welders used for ISS), has given me more appreciation for the estimation qualities of Probability. If Udacity could offer a 12 week class on the concept of applied probability for a robotic trash can? For some of us, space management, hardware, and software can be figured out. Applied Probability is not trivial.

There is - JAUS (4, Interesting)

Animats (122034) | more than 2 years ago | (#39509727)

There is such a stack: Open JAUS. [openjaus.com] JAUS is the Joint Architecture for Unmanned Systems used by many military robotic and unmanned systems. It's somewhat dated, and has a more open-loop approach more suited to teleoperators than fully autonomous systems.

Dealing with the time constraints in robotics rules out some of the approaches used in other software. Microsoft's Robotics Studio [microsoft.com] was built on a web-like approach, and it was a flop. Game programs tend to be tied to the display refresh rate, which isn't helpful in robotics. In robotic systems, there may be several subsystems with their own cyclic rate and processing delay, and they need to talk to each other. The inputs which have processing delays, like vision systems, produce outputs which represent the situation at some time in the past. Updates to the world model based on multiple sensors must all be synchronized to the time of the observation, not the time the data became available. This matters when you're moving fast. For slow robots, not so much. Many research robots are slow and pause a lot because they don't do this. That was the norm a few years ago, but it's not any more.

Robotic systems tend to need hard real time control. That control can be quite complex, not just a simple servo loop. Inside the more advanced and agile robots, like BigDog, you tend to find QNX, not Linux. (Typical test for a hard real-time OS [tamu.edu] : hook up a square wave oscillator to an input, and a scope to an output. Put a high-priority program in the system which turns on the output when the input comes on. Watch the input to output delay on the scope. Load up the system with lower-priority tasks. If the input to output delay is ever substantially longer, (more than a few microseconds) the system is not hard real time. The "real time" variants of Linux have trouble getting down to 1ms, and 10ms of jitter is observed. In hard real time systems, 10us is more like it. Servo control in BigDog executes every 1ms, balance every 10ms.) However, as CPUs get faster, the limitations of Linux have become less of an issue.

Re:There is - JAUS (1)

elabs (2539572) | more than 2 years ago | (#39514375)

It was a flop? My company just started using the latest version (4) of Microsoft's Robotics Studio and we love it. The ability to simulate robotics scenarios before implementing them is very helpful. We haven't run into the threading issues you're mentioning. We just spawn more threads if we need to do other computation in parallel. Works great.

Re:There is - JAUS (0)

Anonymous Coward | more than 2 years ago | (#39530245)

I remember doing a bunch of work with JAUS, only to have them close up the standard by giving it to SAE.

IIRC, it also defines a little-endian network protocol. Retroactively. To them cover finding out that ABIs aren't portable over network links.

brilliant! (0)

Anonymous Coward | more than 2 years ago | (#39510123)


$link = mysql_connect();
$type = 'arms';
$query = 'SELECT limbs FROM robot WHERE type = '$type';
while (($row = mysql_fetch_result($query, $link)) !== null) {
      move($row['limbs], 'wave');
}

robotic programming for everyone! and an injection attack as a side benefit!

Re:brilliant! (1)

Eponymous Hero (2090636) | more than 2 years ago | (#39511679)

why would you query a db to make arms wave? that makes no sense. it's more like

$params = array("extremity" => "arm", "side" => "right", "style" => "greet");
$robot->wave($params)->speak("Hello.");

Current Progress (1)

Shifty0x88 (1732980) | more than 2 years ago | (#39510373)

Well here is what I see as their LAMP stack:

L: Well instead of Linux they are going to use their trusty open-source ROS for the basis of this
A: This is kind of taken care of by the next point M
M: Well they need a database with lots of functions which has previously been created: RoboEarth [popsci.com]
P: You need a way to query this information so the people at RoboEarth have created a non-device-specific code for ROS, yey!


Now, they may want more than this, or they may also want a local database and query engine, which could be SQLite and SQL, but should probably be something more robot-specific, although if you use SQLite or something compatible, lots of people would know how to work with it out-of-the-box

As I see it, it's almost done, they just need to make RoboEarth have a large database, and get the ROS part of RoboEarth to work and they should be on their way to the Ros RoboEarth ROS Plugin? or RRR because then it could be R^3

Bah! (0)

Anonymous Coward | more than 2 years ago | (#39510407)

Lighttpd would be better...

https://aseba.wikidot.com/ (0)

Anonymous Coward | more than 2 years ago | (#39510595)

https://aseba.wikidot.com/

Raspberry Pi? (1)

damburger (981828) | more than 2 years ago | (#39510729)

Would this work on the Raspberry Pi? Or some other cheap computer that an amateur could use as the starting point for his or her home robotics project?

Re:Raspberry Pi? (1)

drewm1980 (902779) | more than 2 years ago | (#39515897)

yes.

Re:Raspberry Pi? (0)

Anonymous Coward | more than 2 years ago | (#39516285)

Yes, but the problem is that the Kinect is the best way to do successful navigation. The Kinect completely saturates a USB bus. And I a mean completely, as in plug in a mouse and it will quit working. I've personally tested a number of single-board Linux systems. Most of em' just can't handle the flood. Before using a Raspberry Pi, you should see if anyone gets the kinect to work with it.

ARDUINO !!! (0)

Anonymous Coward | more than 2 years ago | (#39512783)

And ARDUINO is what again?

http://www.arduino.cc/

Good move (1)

Spiked_Three (626260) | more than 2 years ago | (#39513015)

The sooner the better.

And I say that as a true pessimist of open source. I have tried to use ROS for home robotics. Not that I am a researcher by any means, but I do have a lot of familiarization with stuff that is happening in robotics. It was, to put it simply, too difficult to get a ROS system running. There are always so many mismatches among the large number of pieces you need it is impossible to start from scratch and get anything to work. Once you have a running system you can milk it along with updates. Or if you do start from scratch and you wait long enough, eventually via updates things might start working together.
Putting in an all in one package eliminates that struggle. A hobbyist could actually work on robotic stuff rather than OS stuff. In a similar package (previously mentioned I believe) LinuxCNC had the same problem, and did not truly get useful until you could download a working ISO of everything.

Good luck (to be honest, it couldn't get much worse).

postgres (1)

static0verdrive (776495) | more than 2 years ago | (#39515823)

It should be a LAPP or LAPPPP server... (Linux, Apache, PostgreSQL, PHP/Perl/Python)!

What, a robot needs data integrity? (0)

Anonymous Coward | more than 2 years ago | (#39522903)

Certainly a robot isn't going to need data integrity or reliability in general, since any data acquired can obviously just be acquired again experientially. Why invest the SAME effort in installing PostgreSQL instead? With MySQL, you don't have to disable all the foreign key checks an so on in order to have a system that performs well on just Very Simple Queries. And the robot can cross its fingers (claws?) automatically when doing updates. It'll be fine... what can go wrong in a database running on a robot - power interruptions? Pshaw.

Re:What, a robot needs data integrity? (1)

static0verdrive (776495) | more than 2 years ago | (#39534959)

So you want robot vacuums that can make sandwiches, not Data from Star Trek? I 'spose it depends on if you're relying on a persistent connection to the internet or other external source of data versus learning and retaining.

Still misses the whole point of testing (1)

recharged95 (782975) | more than 2 years ago | (#39515887)

LAMP is a powerful tool, then again there's MS's solution, Oracle's solution, IBM's, Apple's and Google's (which uses some of LAMP). Most folks I know that use LAMP dev on the live server. Most folks I know that use the other frameworks simulate, then ad-hoc test then test on the server.

Problem is that paradigm works clearly when you can have failures on the metal, aka the server--in that world you revert to older code or reboot.

That's not the case with Robots--you test on the metal and usually can't afford crashing the server (which typically crash the metal). Proprietary still rules for the near future because of that. I'm surprise why ROS has not been tested in a rigorous real time manufacturing environment nor WG expressing any interest to evolve ROS to be a tested/solid framework.

I'm going to wait a bit.... (1)

axlr8or (889713) | more than 2 years ago | (#39517803)

The coolness factor has to meet the "super villain" level before I'll be interested.

LAMP stack for robotics already exists (1)

JumpSocial (1157627) | more than 2 years ago | (#39522889)

Can you say BeagleBone?

ROS+++ (0)

Anonymous Coward | more than 2 years ago | (#39529991)

As posters have pointed out, there are many existing "standard" robotics frameworks, each equally loved by small niches - but actually further proves the point of why we need ROS - an attempt to unify the community that is currently fragmented.
I have used a number of robotics frameworks, but ROS is by far the best - whether it be an arduino, xbox kinect, cheap webcam, or movement chasis of my own devising, all I need to focus on in a small amount of glue code (typically in python) and the results of hundreds of research projects are suddenly at my finger tips, without me needing to reinvent the wheel. It makes no preconceptions about whether you're using a university department with a $10,000 laser range finder, or a broke student with a $20 web cam - all the software still works the same. And the tools for debugging and simulation are amazing.
Avoiding reinventing the wheel is what we need most - we need people to be able to focus on reusable robotics software modules so that we can make progress incrementally and collaboratively rather than the status quo of continuously reinventing the wheel.

Check for New Comments
Slashdot Login

Need an Account?

Forgot your password?
or Connect with...

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>