Progress on sub-$500 Linux robot -- path planning.

http://64.46.156.80/robot/ Over the weekend I did some major re-design of the software.(A frustrating and time consuming process.)

Originally, the PID system was a velocity based control, which was good for manual control, but wasn't very flexable. Aside from re-organizing the class heirarchy, I implemented a "PathPlanner" object that controls the PID algorithm targets. (Most of the code is fairly generic at this point as well, requiring only minor changes for different applications.)

Now, to alter the motion of the robot, one only needs to create a "pathplanner" object.

There are currently two planners, "manual" and "line," the manual planner provides keyboard control, the line planner provides forward, backward, rotate left, and rotate right, with distance and speed. The line planner has a controlled acceleration, but the deceleration is a bit more tricky and is a little sudden at the very end of the motion, will work out the math on that problem this week -- probably.

It isn't hard to imagine that higher level functionality can be implemented simply as a new type of planner.

Reply to
mlw
Loading thread data ...

Imagine how frustrating and time consuming it will be for someone without 20yrs experience :)

I was unable to view the .tar file, is this Linux dependent?

I have finally burnt KNOPPIX on a CD. It fires up with some window like thing. I couldn't find gcc or g++ in the files. I also burnt SimplyMEPIS. It comes up with a request for a name and password. Again it didn't seem to come with gcc or g++

I still have to find a decent beginner tutorial on using the Linux libraries and DLLs or whatever they are called.

Reply to
JGCASEY

I know lots of kids in college who are capable.

It is a tar.gz file, WinZIP, last I looked, understood them. It is largely Linux based, but it is C++.

Hmm, I'll have to look at KNOPPIX, I thought it did come with gcc, but I may be mistaken.

Take the plunge, get a cheap hard disk and slave it off your C drive.

Reply to
mlw

"mlw" wrote

If you need any help on the path planning, I can send some notes I have on quintic splines for trajectory planning. They accept vmax and amax as parameters so you guarantee smooth acceleration both at start and end of motion. The notes are meant for manipulators, but the inverse kinematics may be adapted for rover path planning with not much effort.

implemented

We also learned how to implement a planner for constant speed no matter the trajectory, but I believe it is not as appropriate for rovers as it is for laser cutting or welding robots.

Reply to
Padu

They have the advantage of not having to unlearn anything :) I am entirely self taught and don't have the advantage of a tutor to kick me over those little humps along the road to learning when the text is a little bit vague or incomplete.

Given a suitable source I have been able to learn most things that interest me. Thankfully there are some authors capable of reaching a wider audience.

Yes, I do understand your robot system is aimed at college kids not at the likes of me.

Ok. Will have to get a recent version of WinZip as the old one I have doesn't recognize it. I didn't even know it was a zipped file.

Maybe it does. I may not have figured out how to find it yet. Linux is completely new to me.

Cost is not really a problem. I guess it makes sense to just plug in another HD just for Linux.

Reply to
JGCASEY

: I still have to find a decent beginner tutorial : on using the Linux libraries and DLLs or whatever : they are called.

Mostly because we don't think of them as "The linux libraries".

What kind of tutorial are you looking for ?

Reply to
Christopher X. Candreva

It doesn't open with the latest version of Winzip (9.0 SR-1).

Mitch

Reply to
Mitch Berkson

Essentially I know how to program C using the 32 bit DOS compiler DJGPP. I simply wrote my own programs to access DOS graphic modes, access parallel ports, save/load bitmaps and so on...

Linux I understand to be more like Windows with hardware drivers, multitasking etc.

So I assume I need to be able to use the Linux command line to save/load/copy/delete files and launch programs.

Then I need to know how to write routines to load/save/display bitmaps which means file i/o and graphic output. Then how to access parallel ports, USBs, web cams etc. which means I assume knowing how to use the drivers for these things.

Not subjects for comp.robotics.misc :)

Reply to
JGCASEY

That would be awesome. I would like to see some other research, this sounds funny, but "fixed end point" deceleration is something I've never had to really worry about.

On a mobile robot, there is no such thing as "constant speed," it's all about slippage. :-)

Reply to
mlw

I just tested it with WinZip 9.0 SR-1 Running on Windows 2K.

You have to save to disk, then open it. If you run WinZIP from browser, for some reason, it gets messed up. Well, that's Windoze for you.

Reply to
mlw

You might be interested in this:

formatting link
as a robot path planning methodology.

Excerpt:

"OpenSteer is a C++ library to help construct steering behaviors for autonomous characters in games and animation. In addition to the library, OpenSteer provides an OpenGL-based application called OpenSteerDemo which displays predefined demonstrations of steering behaviors. The user can quickly prototype, visualize, annotate and debug new steering behaviors by writing a plug-in for OpenSteerDemo.

OpenSteer provides a toolkit of steering behaviors, defined in terms of an abstract mobile agent called a "vehicle." Sample code is provided, including a simple vehicle implementation and examples of combining simple steering behaviors to produce more complex behavior. OpenSteer's classes have been designed to flexibly integrate with existing game engines by either layering or inheritance."

Mitch

Reply to
Mitch Berkson

"Mitch Berkson"

I wonder how easy would it be to integrate something like this to simulink. It would be nice to prototype my control behavior in simulink and then quickly visualize it as an animation. I tried to run the demo, but it's asking for a dll that is not provided with the demo (MSVCP71.DLL).

I'll try to download the source code and compile in MS VC++

Reply to
Padu

It ran on my machine (OS X), but there's no documentation in the download. I'm too busy this week to go back to the website but it does look interesting. If it wasn't C++ this would be really cool for my project...maybe somebody will take the source and produce a pared-down version for 8-bit microcontroller...

Reply to
Mark Haase

using gcc is almost identical to djgpp for running the compilers etc

gcc docs - should be in the distribution you are using.

formatting link
The linux how to docs and linux documentation project are a good resource
formatting link
also learn how to use man in the linux console

man gcc

Doesn't have the dos graphics and you'll need to get used to unix type commands

formatting link

No harder than dos.

The parallel , usb , serial and webcams would be. Very useful skills that can help with robotics.

File io is easy , graphics are a different matter (for me).

If you are used to using delphi on windowxs, you could take a look at kylix also from borland.

Alex

Reply to
Alex Gibson

Thanks for the info Alex.

John

Reply to
JGCASEY

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.