Linux + Robots = Fun?

Just curious,

Do you want to use Linux as an operating system to Develop your C code, or are talking about using it ON the 'bot controller?

While Linux (special core) IS better at machine tool control (CNC i.e., EMC) then windows because of latency etc., you’d be better off looking for or writing an RTOS, or a simplified version of an RTOS to run on the 'bot.

C is the obvious choice for more complex imbedded code. BASIC has a place, but remember where it started, and what the acronym stands for! But I’m not here to start a war, or argue about languages and OS’.

I am trying to collect white papers, drawings, code and algorithms for IK, RTOS, Subsumption, Behaviors, etc. in regard to robotics. Visit my collection at a new Yahoo group:

tech.groups.yahoo.com/group/HexapodRobotIK/

…if anyone is interested in browsing and/or contributing.

Alan KM6VV

Being new to the board, and robotics in general I really didn’t want to start a flame war about OS’s. Everyone uses what works for them, I’m just happy there are choices and I got to use what works best for me.

I will be using Linux to develop my code at least, and hopefully use it on/in the bot controller. I have been looking at RTOS for a while now. But I think for me that will be down the road a ways, at present I can just use my laptop to send serial commands to a SSC-32, get some code hammered out, then work on making it all come together.

I’ll give your site a look, and hopefully, eventually, I’ll have something to contribute.

The software we are responsible for writing and supporting is RIOS, SEQ, Lynxterm, PowerPod and a few dozen Basic Atom programs for our robots. We give all of the programs away for free with the exception of RIOS and SEQ. The author of RIOS, SEQ, Lynxterm, and PowerPod is one person. They are written with Bourland C++. I have no clue if it would be an easy conversion, or a major pain in the ass. But I have serious doubts that there would be a return on the investment of time considering we only make money on two of the programs. They aren’t really embedded systems so I am not sure if you are referring to the Basic Atoms… The Basic Atom software is written by Basic Micro not LM and I have no influence on their IDE cross platform development endevors. Can you please elaborate on the shortsightedness of our software development? What would you change?

That 90% figure is deceptive. 90% of those WIndows users are not using it for Robotics. How many use Windows just because they have to in order to run certain software? I am in that latter category. There are applications I want to use that just are not available under Linux or perhaps aren’t available in the form I prefer, as those under Linux/UNIX. I play World of Warcraft, use Alibre Design Expert, Roborealm, Microchip tools for PIC/dsPIC development, and the Atom IDEs, to name four reasons I use Windows. My ARM development will be done under Linux as will everything else I can find good solid Linux/UNIX apps for, including e-mail, web browsing, etc. I purchased World of Warcraft and Alibre Design Expert (quite expensive!). I use the tools I use because they are the best I can get for what I want to do, not because of which OS they were developed for.

You have to also look at what that socalled 90% of Windows base is actually doing with the OS. It depends on what segment of the computer users you look at. Anything can be proven by carfully selecting your user sample and massaging the statistics. You could almost prove that white is black if you select the right sample of the population. :wink: I am guessing that quite a lot of people who are using Windows at home, could just as easily (aside from gaming) use Linux/UNIX apps to do much, if not most, of what they need to do. I am talking about such things as E-Mail, Web Browsing, etc. Of course, some services are somewhat tied to Windows, but that need not stay that way.

There is another way to look at this too… There are far more of us out there than you might realize who would purchase more LM stuff if we had good tools for Linux/UNIX. For myself, the desire to work with robotics is greater than my desire to do everything under my favorite OS (Linux or UNIX). However, I would much prefer to do everything I can without Windows. Linux/UNIX is a wonderful OS, and would open up so much more possibility for LM. I would purchase more LM stuff regardless, but that is just me and I am not an OS bigot or fanatic like some of those I consider hard core are.

Look at all the major robotics development projects and see what OS they have chosen. In many, if not most cases, it is not Windows. There are very good ways to make cross platform tools, such as using the QT toolkit by Trolltech for GUI development, which is available for Windows and Linux/UNIX. The API stays the same, so you use the same calls under every OS QT is available for. There is even an embedded version of QT for portable devices. Now, you do have to have a commercial license for QT to create commercial software, but you can experiment and use it for non-commercial applications for FREE.

Developing for Linux/UNIX is no more difficult than it is for Windows. It’s a matter of which tools you choose.

I am betting that if Laurent were to decide to take a look at QT and Linux/UNIX, he would do the same awesome things he does under Windows. It’s really the programmer, the underlying language, and the tools chosen for development that makes the software.

If you have not at least tried Linux/UNIX, I would urge you to do so. Yes, it is not necessarily as easy as installing and setting up Windows, which I don’t think is trival either, depending on what hardware you have. However, this is changing and there are very good Linux distributions available that are making it even more plug and play. You can even try Linux without installing anything to your hard drive. Check out Knoppix, which is a live CD that runs real Linux right off the CD.

8-Dale

Well that’s certainly a good way to get started! And it’s somewhat simpler then having to use an embedded development system to get code into your 'bot. Some of us HAVE to do it the hard way!

Thanks! Please do!

With the proper segmentation of code, your C modules should be quite portable!

But PLEASE don’t make a little hexapod robot carry around a LAPTOP PC! ;>)

Alan KM6VV

I can easily say the same about Windows. :slight_smile: Each OS is a project to really learn it and how to use it to best advantage. For myself, I prefer to just be a Windows user and not delve into it any deeper than what I absolutely must. For others it would be the same with Linux/UNIX - just give them the platform and the applications they need and they will be quite happy. If you have not looked at Linux for a long time, you might want to take another look. :smiley: There is Knoppix, which will allow you to test drive and actually use Linux without installing anything to your hard drive.

I am also heading towards using Linux for my robots and robotics development. I have been collecting the tools I need to do that, and only recently have aquired a couple nice ARM7 based boards I will be using. ARM9 (running full Linux) development will follow after I chose the board I want to work with, and there are a few contenders for my dollars at present. I also have my development tool (Crossworks for ARM) running under Linux. I am just awaiting delivery of one critical piece of hardware to make this all come together - the programmer/debugger, which Rowley is sending me FREE. I have to purchase Crossworks, but that is fine since I really like the tools. It’s also available for Windows.

I don’t agree with this at all, but that’s alright. Not everything that is easy and/or workable is being done or has been done. If that were the case, there would not be anything left to do or to learn, including in robotics. :smiley: There would not be any need for companies like Lynxmotion that are progressive and always expanding (and growing). I never want to see that time come when there is nothing new to do or learn, and thankfully, it won’t come any time soon. :smiley:

If your saying is true, there would be no reason for people to experiment or invent new things. One of my favorite pieces of movie dialog comes from a movie called Antitrust, which is a not so subtle poke at Microsoft. :slight_smile: In one scene, Gary (founder of NURV) says to our hero, something like “Anyone in a garage could put me out of business.” It would be possible, but definitely not easy to do such a thing today. It gets more difficult each year to develop new ideas and products, mainly because it is so expensive and the tools required are extremely expensive, but that is another issue I have ideas on.

8-Dale

Yes, I have heard of those! I do not like Eclipse at all and have chosen to go with a commercial product for ARM development. I do not do this lightly, due to being on a fixed income. There will be no Eclipse IDE on my PC, under any OS.

I have chosen Rowley Associates’ Crossworks for ARM as the development environment I will be using for a good part of my standalone (ARM7) robotics development. I’ll also be using Python and perhaps other tools as I find them and they are applicable to what I want to do. Even Crossworks is based on GCC for the compiler tools.

8-Dale

This is one major reason I use Windows. :smiley: You have some of the best tools for what I want to do with robotics.

Porting applications to another OS is almost always a real project, but that also depends to a certain extent on which tools are chosen for the port.

The Atom MCUs are indeed embedded microcontrollers. Our robots that are controlled by software running on the Atom MCUs are true embedded systems. :smiley: You can use an Atom MCU in non-robotic applications also.

I do not agree with LM being short sided at all. I believe you can expand the audience for SEQ and RIOS, as well as your entire hardware line, by doing some cross platform development of your software. This need not be done overnight and would be best accomplished by first looking at the tools that are available for porting to an OS such as Linux or UNIX (which really only differ in the kernel. That really only causes difficulty if kernel services have to be used directly. The GCC compiler suite makes a lot of that easier to deal with.

Exploring cross platform development also gets you other things. You would potentially have access to people who run systems on processors Windows does not and will likely never run on. There is PowerPC, MIPS, etc. You may find a new market for your entire line of hardware through the software. :slight_smile: You would also gain access to those of us using (or soon to be using) other MCUs besides the Atoms.

None of this is guaranteed, of course. There is a saying that goes something like “Nothing risked, nothing gained.” You can dip your toes into the Linux and UNIX water gradually - no need to try making a big splash. I know it isn’t something that can happen overnight, even though I might wish it would. :smiley: The water is fine, Jim, nice and warm. Dip your toes in and check it out…

I would say the same to those at Basic Micro, who could expand their audience also with some good cross platform tools.

8-Dale

Yes, there are several. :slight_smile: One is Wine. There is also the commercial VMWARE, as well as other free emulation tools.

8-Dale

linuxguy, I’m going to go look up Crossworks right now. What do you like about it? Do you just not like Eclipse and wanted something different? Or does Crossworks really justify the price (I haven’t looked at pricing or anything for it yet) but it sounds like you gave your decision some thought.

I use VI for all the perl I’ve done. But really enjoyed Eclipse when using it for Java, its been a long time since I’ve done anything with C, other than a few examples that came with the ARM board I have. So I would be very interested to hear your impressions and reasons for going with Crossworks.

Yes, this is true at present. Much of the reason though is due to the software tools only being available for Windows. For a true cross platform line, Basic Micro would also have to port their tools along with Lynxmotion. That might be difficult to pull off, but not because it can’t be done or can’t be done fairly easily.

Yes, indeed. This is the only real bump standing between Lynxmotion and a truely cross platform product line.

This would definitely be a real factor, and it should be, for anyone desiring to start out in robotics. I started out with a Basic Atom that still runs WALTER to this day. Look how far I have come in just over 1 year. :smiley: I would not have had such an easy time or near as much fun, if I had started out with another companies products. I’m still having fun and expect this to continue for as long as I am working with robotics at any level. The Basic Atom is an excellent way to start out with embedded systems and robotics, and I continue to suggest it to new comers.

See, you already have a partially cross platform product line! :smiley: I have ported software between BASIC (several dialects) and C, so I have a pretty good understanding of what this entails. I’ve also ported software between Applsoft BASIC (as in Apple II) and Apple Pascal. THERE is a real project!

8-Dale

I love portable code. I always do my best to make it as reusable as possible.
What about an EEE PC? Thats 2LBS. Not that I would… But I bet you could =P

Anything could be fair game! About my 2nd or 3rd robot, I designed a LARGE body that had a bay for a full sized XT motherboard (new at the time).

But be kind to your 'bot, keep its load light!

I’ve got an ARM7 board w/ APA Graphics LCD display and 6 keys that I designed for “work work” that I’m considering as a 'bot board. IAR compilers are a little expensive, 'tho. Rowley CrossWorks compiler might be a solution as Dale has pointed out.

I continually compile my C modules (except uP-specific driver stuff) with the IAR compiler. It has some nice features, and it guarantees an easy (well, easier) port when and if I get around to it.

Alan KM6VV
tech.groups.yahoo.com/group/HexapodRobotIK/

Apologies to FalynxFX for the thread-jack.

Resource division is obviously a bad thing, no one’s going to argue that, but so is platform dependence, especially to one that’s guaranteed to break you within a major release or two, is currently failing the “just works” test and is used by only most of your customer base.
Linux uptake is snowballing (see Ubuntu vs Vista) and Apple is still going strong, but most of the established windows user base is going nowhere for now. So why not cover them all? Why not use Java or Python or GCC? They run everywhere, they’re open and they’re popular so they’re not going to suffer the fate of Kylix (for example).

As far as your current code base goes Kylix was Borland’s linux compiler:
en.wikipedia.org/wiki/Kylix_programming_tool
Apparently Kylix 3 supported C++, but I’ve no idea where’s it at these days, but it doesn’t look too healthy.

wine is an option for running windows executables directly on linux. Now that I’ve stuck my neck out I’ll have to see how far they get.
vmware involves running a full instance of windows, requiring a license, stacks of ram, etc, so it’s a second to last resort (that being dual booting)

With embedded systems I was referring to what is involved in moving beyond basic R/C, eg Regis.

Yes, and VMWARE is another option, albeit closed source and commercial. I had friends at a well known data processing company I worked for several years ago, and they installed Linux on their work PCs with VMWARE. Nobody hassled them much because they held the reins on source control and major servers most others had to use. :smiley:

I’m going to do some experimenting with Wine also as I continue my quest to get as much of my stuff as possible running under Linux. I’ve even located a schematic/PCB package that might be useful. I had forgotten about gEDA until it came up in a search.

I am also anxious to see if I can get uCLinux to run on the LPC-2148 Proto Board I have, but there may not be enough RAM (42K). If I can get uCLinux running on these, I am going to be in Linux Heaven. :smiley:

8-Dale

"Linux uptake is snowballing "
I’ve still got a “Tux” t-shirt in the closet from 8-10 years ago when I thought the same thing. :wink:

Here’s a run down on the state of vm’s:
en.wikipedia.org/wiki/Comparison … l_machines

We’ve passed a few milestones recently:
Asus released the Eepc, linux only, and the OLPC has been getting major headlines.
Other major OEM’s are now also getting serious about supporting linux on their machines and putting pressure back on to chjp/device manufacturers to do so as well, The AMD/ATI spec release for example. I felt this (HW support) was the biggest obstacle, good to see it breaking down.

Sorry for walking into the room 5 minutes before midnight, which bot is the WALTER?

W.A.L.T.E.R.

I am working on the new “brain” for W.A.L.T.E.R. which will be 100% Linux on a Tin Can ToolsHammer. I have the complete Hammer Kit. I am an evaluator/tester for Hammer.

I just got Hammer built with a working kernel and software, and it boots automatically now. :slight_smile: I also have a 2 GB Thumb Drive which gets automatically mounted and almost have the USB Gadget Ethernet working.

8-Dale

W.A.L.T.E.R. is quite a handsome little fellow. Have you thought of changing its platform for a tracked platform like the Johnny 5’s?

Hammer looks very powerful in a tiny package! It even has a JTAG interface… What kind of kernel are you running on it? Is it an RTOS? I’ve done some RTOS stuff on the lego Mindstorm RIS 2.0 brick before, and I’m thinking of doing it again to my LM-based bot as soon as I can get some basic walking done on it :open_mouth:

Since it’s a wheeled-base bot and can take quite a payload, you ever considered 900-MHz band RF Transceivers commercially available? These things have about 3000’ range according to their datasheet/manual (but of course suck up a lot of juice):

bb-elec.com/bb-elec/literatu … -Modem.pdf