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.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
mlw wrote:

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.

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
JGCASEY wrote:

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.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
mlw wrote:

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.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
JGCASEY wrote:

It doesn't open with the latest version of Winzip (9.0 SR-1).
Mitch
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Mitch Berkson wrote:

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.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
: 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 ?
--
==========================================================
Chris Candreva -- snipped-for-privacy@westnet.com -- (914) 967-7816
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Christopher X. Candreva wrote:

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 :)

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
wrote:

using gcc is almost identical to djgpp for running the compilers etc
gcc docs - should be in the distribution you are using. http://gcc.gnu.org/onlinedocs / http://gcc.gnu.org/readings.html
The linux how to docs and linux documentation project are a good resource http://public.ldp.planetmirror.com /
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 http://www.mcsr.olemiss.edu/unixhelp/DOStoUNIX.html http://www.ugu.com/sui/ugu/show?help.beginners

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
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Alex Gibson wrote:

resource
Thanks for the info Alex.
John
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
"mlw" wrote
<snip>

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.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Padu wrote:

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. :-)
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
mlw wrote:

You might be interested in this: http://opensteer.sourceforge.net/ 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
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
"Mitch Berkson"

including
layering
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++
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

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...
--
|\/| /| |2 |<
mehaase(at)sas(dot)upenn(dot)edu
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.