Society of Robots - Robot Forum

General Misc => Misc => Topic started by: vidam on September 02, 2008, 03:03:27 PM

Title: Moving on to advanced topics
Post by: vidam on September 02, 2008, 03:03:27 PM
I realized just the other day that I am spending too much time on basic stuff such as hardware wiring and hardware/software compatibility issues. I haven't progressed into really advanced Robotics and AI. I don't want to build robots from scratch as much as some people do on this forum. Am I on the wrong forum?

So for the rest of this year I want to work on the following:
Outdoor map building and path planning using LADAR, GPS, Vision

A web Chatbots such as ALICE open-source kit.

 But I have such a tendency to get lost that really prevent me from getting to the advanced stuff.

 Like I just spent 4 days wiring up sonar, motors, speed controllers, camera, batteries. FOUR days! Of course the wiring is almost perfect, but I could not even spend much time on programming at all because i had issues with some stupid driver and Windows VISTA. So now I have to install a virtual machine eating up more of my time.

Does anyone have any suggestions for me, please?


Melanie
Title: Re: Moving on to advanced topics
Post by: pomprocker on September 02, 2008, 03:07:19 PM
i go through the same crap.

i get stuck on one issue which eats all my time and its delaying the advancement of my skills in robotics.

 :-\
Title: Re: Moving on to advanced topics
Post by: airman00 on September 02, 2008, 03:18:54 PM
Set up a plan and if possible coordinate with other people on projects so that way the work is shared.

Is it a problem of not enough time  or not enough inspiration to go further?
Title: Re: Moving on to advanced topics
Post by: Rebelgium on September 02, 2008, 04:32:59 PM
Once you get yourself a decent base for your future robots, it'll be easier in the future. :)
If you buy an off the shelf ready robot base you'll be programming even quicker.
like this one:
http://www.acroname.com/technology/104/abstract.html
Title: Re: Moving on to advanced topics
Post by: MarkBrown on September 02, 2008, 06:28:08 PM
It is amusing because I go thought the same thing, though more often with software development.  My boss says that programmers are terrible about getting lost in the details and losing sight of the big picture.  We will spend days working on one small little feature that isn't doesn't progress the project at all and is just cool.  The following is advice I have been given that should work with robotics as well.

1.  List your goals.  What do you want to get done or learn, like AI or GPS.
2.  Determine whether what you are working on is getting you closer to completing one of your goals.  If what you are working on isn't getting you closer to one of your goals, like perfecting wiring, then put it to the side until you have some time to waste.  Do the minimum with something like wiring to get what is needed done and then move on.
3.  If what you are doing is not getting you closer to your goal but takes two minutes or less, then get it done.

I know these are fairly basic rules, but you would be surprised how many times I have thought about what I was doing to find out it wasn't helping me achieve my goals.

Mark Brown
Title: Re: Moving on to advanced topics
Post by: RobD on September 02, 2008, 08:37:13 PM
my first suggestion would be to dump vista lol!!  just kidding. 

Couldn't agree with Mark any more...  List your goals!!

It's a standing joke among friends and co-workers when it comes to my lists, but I do get a lot done because of them.  Plus I have to keep track of other peoples goals too  :D

I am very easily side-tracked also but I've conditioned myself to take a reality check every once in a while to determine if what I'm doing is really necessary or not (or if I'm jumping into a more complex project than I am prepared for). 

It's frustrating though when you have a million ideas running around in your head and your doing the "mundane" work.  I like to take that time, while I'm doing the boring stuff, and plan....  like how I'm going to handle what's next on my list!  :D

     

Title: Re: Moving on to advanced topics
Post by: 4by4 on September 03, 2008, 05:09:23 PM
If you are a student with no money, which seems to be most people on this site, and you want to learn the advanced stuff like AI, keep in mind you don't need a robot, at least to start with. There are an unlimited number of things to do with AI that have application to robotics, but without the robot. Image processing for example. I recommend starting with still images and some problem in object detection and recognition. There are some very sophisticated AI problems that can be experimented with just using still images. Take a camera and take 100 pictures of the road in front as you drive 10 miles through a varied landscape. Try wiritng a program to pick out the edges of the road that works on all 100 pictures. Not easy.
Title: Re: Moving on to advanced topics
Post by: JesseWelling on September 03, 2008, 06:37:31 PM
Well I hate to rain on every one's parade but, if you get a job working in the robot industry, It won't be much different unless you work on huge projects with tons of people (meaning no 'ownership' of what you do) or on well establish projects (meaning all the fun stuff is already done).

My suggestion is to learn some YAGNI (http://en.wikipedia.org/wiki/You_Ain%27t_Gonna_Need_It) skills so you can get on with fun, and if you need something go back to it. Also learn how to reuse what people have already done. I think I remember you using AVR so that would mean AVRlib and the like, even if it's just for code examples of how to do stuff.
Title: Re: Moving on to advanced topics
Post by: Webbot on September 03, 2008, 07:19:25 PM
Once you get yourself a decent base for your future robots, it'll be easier in the future. :)
If you buy an off the shelf ready robot base you'll be programming even quicker.
like this one:
http://www.acroname.com/technology/104/abstract.html


Looks good - but with a starting price tag of $1,500 then its probably beyond the means of most people on the forum.

Learning to drive - buy a Ferrari  ;D
Title: Re: Moving on to advanced topics
Post by: vidam on September 04, 2008, 10:47:23 AM
Thank you all for sharing your thoughts. Now here is my responses.

Set up a plan and if possible coordinate with other people on projects so that way the work is shared.

Is it a problem of not enough time  or not enough inspiration to go further?

It is a problem of both, not enough time and not enough inspiration to sacrifice some other hobbies. I know that some people on the forum spend every waking hour on robotics at work and at home. I can't do that. When I'm at home, the last think I want to do is spend more time programming even if it is programming a robot.

I tried working in a group, and I was unhappy with the results. Wiring was thrown together with little care and thought. Things didn't get tested properly. In the end the robot didn't work. So it was like all that work and nothing. Sure I learned a lot working in a group. I'm not saying it was a total wasted effort. However, this time, I thought I can do a better job by myself. I put more thought into designing the quick disconnect wires and the switch to turn the circuit on/off. I also made sure the sensors were put on the robot such that they won't fall off on the day of the competition. Of course that is still a possibility but less likely. Also, I wanted to make sure that hacks like a pasta box don't get added to the robot at last minute so as to separate electromagnetic sensitive devices from the motors.



i go through the same crap.

i get stuck on one issue which eats all my time and its delaying the advancement of my skills in robotics.

 :-\

Couldn't agree more.

Once you get yourself a decent base for your future robots, it'll be easier in the future. :)
If you buy an off the shelf ready robot base you'll be programming even quicker.
like this one:
http://www.acroname.com/technology/104/abstract.html


That robot doesn't work outdoors unfortunately. And the price is prohibitive. You do have a good point though. The only problem with those kits is that they might be hard to upgrade in the future. You might want to upgrade your microcontroller or your sensors and I don't know how easy/hard they make those kits to modify/reverse engineer.

It is amusing because I go thought the same thing, though more often with software development.  My boss says that programmers are terrible about getting lost in the details and losing sight of the big picture.  We will spend days working on one small little feature that isn't doesn't progress the project at all and is just cool.  The following is advice I have been given that should work with robotics as well.

1.  List your goals.  What do you want to get done or learn, like AI or GPS.
2.  Determine whether what you are working on is getting you closer to completing one of your goals.  If what you are working on isn't getting you closer to one of your goals, like perfecting wiring, then put it to the side until you have some time to waste.  Do the minimum with something like wiring to get what is needed done and then move on.
3.  If what you are doing is not getting you closer to your goal but takes two minutes or less, then get it done.

I know these are fairly basic rules, but you would be surprised how many times I have thought about what I was doing to find out it wasn't helping me achieve my goals.

Mark Brown

I will try listing my goals and determine if what I'm currently doing is going to take me too much time such that I won't reach my goal in the timeframe I want. That is something I don't do now. These are good tips!


my first suggestion would be to dump vista lol!!  just kidding. 

...

I am very easily side-tracked also but I've conditioned myself to take a reality check every once in a while to determine if what I'm doing is really necessary or not (or if I'm jumping into a more complex project than I am prepared for). 

It's frustrating though when you have a million ideas running around in your head and your doing the "mundane" work.  I like to take that time, while I'm doing the boring stuff, and plan....  like how I'm going to handle what's next on my list!  :D      

I think my problem is delving into things that I'm not entirely comfortable doing. Such as working with a new microcontroller that I don't know that well. I tend to delay things until I get up enough motivation to start working with it.

If you are a student with no money, which seems to be most people on this site, and you want to learn the advanced stuff like AI, keep in mind you don't need a robot, at least to start with. There are an unlimited number of things to do with AI that have application to robotics, but without the robot. Image processing for example. I recommend starting with still images and some problem in object detection and recognition. There are some very sophisticated AI problems that can be experimented with just using still images. Take a camera and take 100 pictures of the road in front as you drive 10 miles through a varied landscape. Try wiritng a program to pick out the edges of the road that works on all 100 pictures. Not easy.

Thanks this is another good tip as computer vision is really hard outdoors. That's why I want to get into ladar which is insensitive to light variations. Do you know of any good computer vision technique for outdoor uneven lighting conditions?

Well I hate to rain on every one's parade but, if you get a job working in the robot industry, It won't be much different unless you work on huge projects with tons of people (meaning no 'ownership' of what you do) or on well establish projects (meaning all the fun stuff is already done).

My suggestion is to learn some YAGNI (http://en.wikipedia.org/wiki/You_Ain%27t_Gonna_Need_It) skills so you can get on with fun, and if you need something go back to it. Also learn how to reuse what people have already done. I think I remember you using AVR so that would mean AVRlib and the like, even if it's just for code examples of how to do stuff.

YAGNI ! You aint gonna need it. But what if you do. Murphy's law always ends up being that you needed it. You have to account for that somehow in your design. I'm being a bit of a devil's advocate, but I liked the tips Jesse mentioned about types of projects you end up working with in the robot industry could lead you to actually doing the mundane stuff. I could definitely see that happening now that you mentioned it. And not reinventing the wheel is definitely another great suggestion. But if you do take someone else's code, you got to make sure it doesn't break and that it works like you imagined. So there is some reverse engineering there as well.

[/quote]
Once you get yourself a decent base for your future robots, it'll be easier in the future. :)
If you buy an off the shelf ready robot base you'll be programming even quicker.
like this one:
http://www.acroname.com/technology/104/abstract.html


Looks good - but with a starting price tag of $1,500 then its probably beyond the means of most people on the forum.

Learning to drive - buy a Ferrari  ;D

I think the forum is intended for people who don't have lots of money or are just starting out and want to make sure they learn the basics before jumping off the cliff into the lagoon. :-)
Title: Re: Moving on to advanced topics
Post by: 4by4 on September 04, 2008, 08:23:28 PM
I'm not sure what you mean when you say computer vision is hard outdoors. It is true that the light levels vary over orders of magnitude from day to night, but most cameras automatically adjust for light level, and if you are only working in daylight I don't think there would be a problem. There are also lots of filters that can be applied in processing that enhance the image. I think the disadvantage of ordinary 2-D imagery as compared to LADAR-generated 3-D imagery is that you have less information to work with. The third dimension provides a lot more cues for locating and recognizing objects. However, a decent LADAR like the Sick is extremely expensive. A cheaper alternative might be to look into some of the papers and texts on extracting depth information from stereo imagery. But before trying to that sophisticated, I would try to solve whatever problem you are trying to solve with ordinary 2-D still images or video.

As far as learning the principles of AI as relates to "image understanding" and mapping the environment for robots, LADAR is just another kind of sensor. Many of the principles are similar whether you are using a 1-D, 2-D, or 3-D sensor. You don't need to start with the most complex and expensive sensor.
Title: Re: Moving on to advanced topics
Post by: JesseWelling on September 05, 2008, 12:40:57 AM
Quote
But what if you do. Murphy's law always ends up being that you needed it. You have to account for that somehow in your design.

Well, to appropriately applied Murphy's law here, if you do code something you might not need, the requirements are bound to change so you need to exercise some judgment. Maybe you could create a Particle Filter to determine the likelyhood that you will need feature X on project Y...  ::)

I kid, I kid....
Title: Re: Moving on to advanced topics
Post by: brijesh on September 05, 2008, 11:21:23 AM
I wonder if there is a demand/market for a sub $200 indoor robot which would enable one to move to above mentioned advanced topics.

Probable specs would be
1) Differential drive
2) Encoder feedback
3) Microcontroller board with built in H-bridge and encoder feedback interface.
4) Software which implements the PID and does all the grunt work.
5) Software interface for common sensors. Not talking about just a library call to get ADC value. But software that is calibrated to the sensors so that it gives the output directly in centimeters or inches. Which would be a lot of help in case of most commonly used Sharp IR sensors. Basically to remove all the grunt work in calibration and to convert the sensor outputs to distances.
6) Interface to zigbee for wireless command and control.
7) Bioloid like bus interface for additional modules and expansion capability.

Out of the box it should be ready to run...in the sense.
1) Provide max velocity and acceleration.
2) Send command to move x centimeters, it should move that distance within a x% of error.

All the PID implementation, PID constant tuning, handling interrupts, PWM etc...take care of.

Guess such a robot would be ease your life if you wanted to move onto more advanced stuff.


 
Title: Re: Moving on to advanced topics
Post by: vidam on September 05, 2008, 03:53:24 PM
I wonder if there is a demand/market for a sub $200 indoor robot which would enable one to move to above mentioned advanced topics.

Probable specs would be
1) Differential drive
2) Encoder feedback
3) Microcontroller board with built in H-bridge and encoder feedback interface.
4) Software which implements the PID and does all the grunt work.
5) Software interface for common sensors. Not talking about just a library call to get ADC value. But software that is calibrated to the sensors so that it gives the output directly in centimeters or inches. Which would be a lot of help in case of most commonly used Sharp IR sensors. Basically to remove all the grunt work in calibration and to convert the sensor outputs to distances.
6) Interface to zigbee for wireless command and control.
7) Bioloid like bus interface for additional modules and expansion capability.

Out of the box it should be ready to run...in the sense.
1) Provide max velocity and acceleration.
2) Send command to move x centimeters, it should move that distance within a x% of error.

All the PID implementation, PID constant tuning, handling interrupts, PWM etc...take care of.

Guess such a robot would be ease your life if you wanted to move onto more advanced stuff.


 


There is such a market. Evolution Robotics has their robot software ERSP and a platform ER1.

http://www.evolution.com/er1/
http://www.evolution.com/products/ersp/


I don't know of any others off the top of my head, but I'm sure there are more.

Title: Re: Moving on to advanced topics
Post by: brijesh on September 05, 2008, 05:15:28 PM
The ER1 bundle price : $7,500.00.
It is an order of magnitude more than what I am talking about.
Title: Re: Moving on to advanced topics
Post by: Ro-Bot-X on September 05, 2008, 06:55:04 PM
I bought ER1 kit about 4 years ago. They were selling it for $300, without the ERSP software. I have heard that they were offering ERSP for ER1 users as beta test, but when I got my kit it wasn't available anymore. The ER1 kit is nice, but you really need to get the IR sensors kit for another $300 and the claw kit for yet another $300. It has analog ports and digital ports, so some upgrading is possible, but my kit was from a series that had a problem using those ports. You have to be a software guy to fully enjoy this kit, because a lot can be done with the SDK, to have access to the ports and write your own A.I. to control the robot. I have built my butler robot using that kit, but had a few problems with the software and other problems with the hardware I was using at the time. I wanted to move on to the next hardware version, so I have dismantled the robot and stored my kit somewhere in a box. Unfortunately the kit is weared and a few parts are broken, otherwise I would have sold it on ebay.
Title: Re: Moving on to advanced topics
Post by: RobD on September 05, 2008, 07:21:18 PM
Vidam, et al...

Would you be interested in collaborating on a LADAR project?  Perhaps designing an inventive low-cost alternative for small robot platforms? 

I have no pre-conceived ideas other than I once thought about using IR and a LLTV camera to detect distance.  It was a fleeting thought because I have a supercircuits PC-164 camera.  They are quite awesome.  I use mine to detect asteroid occultations of faint stars as well as timing lunar occultations (yeah..I'm an astronomy nerd).   

Title: Re: Moving on to advanced topics
Post by: dunk on September 06, 2008, 08:45:27 AM
at the risk of derailing this topic... (sorry Vidam)

Quote
Would you be interested in collaborating on a LADAR project?  Perhaps designing an inventive low-cost alternative for small robot platforms? 
here's my approach:
http://mrdunk.googlepages.com/sensors (http://mrdunk.googlepages.com/sensors)
it works quite well.
unfortunately i have not worked on that project for a while. it's more of a winter project...

back on topic,
we did start talking about a series of module designs a while ago.http://www.societyofrobots.com/robotforum/index.php?topic=2765.0 (http://www.societyofrobots.com/robotforum/index.php?topic=2765.0)
the idea was that anyone could just build and bolt together the modules thereby saving on development time.
unfortunately while loads of people had ideas on what they wanted someone else to design, very few people contributed any designs of their own.
this seems to be a large problem with all community projects...

Vidam, a comment on your development time woes: it gets easier.
the more you play with this stuff the quicker you get at it.


dunk.
Title: Re: Moving on to advanced topics
Post by: vidam on September 06, 2008, 02:44:22 PM
Vidam, et al...

Would you be interested in collaborating on a LADAR project?  Perhaps designing an inventive low-cost alternative for small robot platforms? 

I have no pre-conceived ideas other than I once thought about using IR and a LLTV camera to detect distance.  It was a fleeting thought because I have a supercircuits PC-164 camera.  They are quite awesome.  I use mine to detect asteroid occultations of faint stars as well as timing lunar occultations (yeah..I'm an astronomy nerd).   



Yeah you can add me (info under my profile) to your chat list offline we can discuss this low-cost LADAR idea. It sounds interesting.


at the risk of derailing this topic... (sorry Vidam)

Quote
Would you be interested in collaborating on a LADAR project?  Perhaps designing an inventive low-cost alternative for small robot platforms? 
here's my approach:
http://mrdunk.googlepages.com/sensors (http://mrdunk.googlepages.com/sensors)
it works quite well.
unfortunately i have not worked on that project for a while. it's more of a winter project...

back on topic,
we did start talking about a series of module designs a while ago.http://www.societyofrobots.com/robotforum/index.php?topic=2765.0 (http://www.societyofrobots.com/robotforum/index.php?topic=2765.0)
the idea was that anyone could just build and bolt together the modules thereby saving on development time.
unfortunately while loads of people had ideas on what they wanted someone else to design, very few people contributed any designs of their own.
this seems to be a large problem with all community projects...

Vidam, a comment on your development time woes: it gets easier.
the more you play with this stuff the quicker you get at it.


dunk.

Thanks dunk this makes me feel better. :-)

I like the idea of a community developed robot. Too bad that nobody contributed designs. That would have been an excellent idea.
Title: Re: Moving on to advanced topics
Post by: vidam on September 08, 2008, 10:25:01 AM
Just to let everyone know I gave up on the Pioneer. I'm now going to use the Blackfin Robot by Surveyor Corp. Am so excited!!!!  ;D
Title: Re: Moving on to advanced topics
Post by: vidam on September 10, 2008, 09:46:01 AM
We may have solved the problem with the Pioneer. It is a rare bird problem. Means this happens to very few people getting back to my previous comment about Murphy's law. I will post the very interesting results on Friday night. It will be very detailed and might even include results from a Logic Analyzer. Stay tuned till then to this post.  ;D
Title: Re: Moving on to advanced topics
Post by: Kohanbash on September 15, 2008, 07:36:42 PM
Hi
Having worked on several large robotic projects this is how i would divide up, as well as the order that I would build a robot (and correspondingly learn about advanced robotics):
1. elecro/mechanical & hardware
2. Controls
3. Sensing
4. Executive & Navigator
5. Behaviors

Each step can not be done correctly if the step before it is not solid. So the first step of building a robot that is sturdy and that works is critical since everything rests on that (don't underestimate that skill).
The next step is having a way that you can control things as desired (the key words are "as desired"). This will let you drive, take images, laser scans, etc. both reliably and with confidence.
After you can move things you want to be able to sense your environment (working with lasers is usually significally easier than working with cameras from scratch)
After the rover knows whats around it, it can have an executive that reads in sensor/health data and commands the robot to move. This step is also in charge of following a "mission". for example if you give it a set of GPS coordinates the executive should have the navigator control the robot to get there and then start issuing commands to get to the next GPS point.
What i would consider to be the highest level is the behaviors level. This is where most of the advanced features and AI comes in. The behaviors can look at the data (or whatever) and make decisions other than just pure navigation.  Such as if I reach an intersection look both ways before having the robot cross the street.

Once you do the above steps at a basic level you should have the understanding of the system so that you can take improve in an area. All the advanced techniques you hear about are just better ways of doing the above. For example later on instead of just reading the data you can use a kalman filter to do a better job merging the data, or instead of a wavefront navigator you can use D*, etc..)

Also things take time. A lot of times we will develop things off the robot (cameras, pan tilt controllers, weird algorithms etc..) and then integrate them once they finally work.

Hope this helps (and inspires),
sdk32285
Title: Re: Moving on to advanced topics
Post by: Admin on September 19, 2008, 08:27:17 AM
This is why I built my ERP - tired of spending all my time on low level stuff and never getting around to the high level stuff.

I recommend everyone making their own experimental robot platform, one that's designed to be upgraded as your robot skills grow ;D