Thoughts on hobby r...
 
Notifications
Clear all

Thoughts on hobby robots

10 Posts
4 Users
1 Likes
734 Views
robotBuilder
(@robotbuilder)
Member
Joined: 5 years ago
Posts: 2037
Topic starter  

@dale
@frogandtoad
@huckohio
@byron
@thrandell

Its been 2 years now and not much new has happened on the robot front.  I confess I haven't done anything much myself instead occupying my time with other things.  However I see a few on the forum still have an interest in the subject which is motivation to perhaps spend more time getting something going beyond my experiments in "simple" encoder odometry, sonar distance measuring and visual target detection and actually get it navigating the house.

One thing that I baulked at was learning or using ROS. This article confirmed what I feared after looking at some so called ROS tutorials.
https://www.servomagazine.com/magazine/article/neato-ros-robot-navigation

For cost reasons I am using the motorized encoder wheels, battery and charger from a robot vacuum cleaner. Probably I should have kept the bumper as well as I find that making a simple nice looking functional bumper was more complicated than I thought. It provides an experimental base for trying different sensors and their associated software requirements. Bill says he is still working on his robotics project although I suspect it will be well outside my price range.

I know this is an electronics forum and as such hardware enthusiasts want to build it from the ground up but that for me would be an expensive path for a purely experimental base when ultimately robotics is about programming. Programming is how you wire up the parts in a general purpose computer without using solder 🙂   Should I ever get a working prototype I can always upgrade the hardware to do some of the work done by software.

To enlarge image, right mouse click on image and choose Open link in new window.

robotAbove
robotBelow
robotCase

   
Inq reacted
Quote
byron
(@byron)
No Title
Joined: 5 years ago
Posts: 1112
 
Posted by: @robotbuilder

getting something going beyond my experiments in "simple" encoder odometry, sonar distance measuring and visual target detection and actually get it navigating the house.

That certainly has the makings of a most interesting project.  Combining odometry with some other method of checking / determining the robot position would appear to be just whats required for an indoor bot.  

I hope you will put something on your bot that lets us see what is the front, all the better to see if its going in the right direction. 😀  (and a cushion on top to put your feet up when taking a rest for inspiration).


   
ReplyQuote
THRandell
(@thrandell)
Brain Donor
Joined: 3 years ago
Posts: 223
 

@robotbuilder

I echo your thoughts about learning ROS.  It looks somewhat intimidating.  I think trying to learn that system would suck the fun out of robotics for me.

I also disagree with the author of the article when he states ‘delivery is the basis of all mobile robot applications’.   As far as I know the Roomba robot vacuum is the most  successful commercial robot to date.  And what does it ‘deliver’?  For some insight into what a successful roboticist thinks about what it takes for a robot to be commercially successful check out Joe Jones’s site, The Practical Roboticist (read the Archives). http://thepracticalroboticist.com/about-us/   It doesn’t look like he’s updated it in a few years, but it is still relevant.  You may get the ‘Not Secure’ message, but I don’t think that Joe Jones is either too cheap or too clueless to get a security certificate.  He's just moved on.

 

However I see a few on the forum still have an interest in the subject which is motivation to perhaps spend more time...

Personally, I’m goal driven (until life gets in the way).  You’ve defined your economics, you’ve built a base, and added sensors, perhaps you can give yourself a programming goal to achieve.  Give yourself a ‘go to goal’ assignment, then add PID, then add potential fields...  I’m working on a non-deterministic search technique for my own project and learning about the power of ‘Random’, and it's a kick in the pants (fun to you Australians).

Tom

To err is human.
To really foul up, use a computer.


   
ReplyQuote
robotBuilder
(@robotbuilder)
Member
Joined: 5 years ago
Posts: 2037
Topic starter  

@byron 

Hi byron, thanks for responding.

That certainly has the makings of a most interesting project. Combining odometry with some other method of checking / determining the robot position would appear to be just whats required for an indoor bot.

Actually I don't intend to use odometry with other sensors to determine the robot's position,  it was just interesting to see how accurate I could make it. It is more a case of using the encoders to monitor the motors. So for example, what is the ratio of encoder ticks to the PWM value applied to the motors. In the case of stepper motors that is not an issue. Are the motors turning or are they stalled?  Locking the robot onto the environment, not some internal states, makes more sense to me.

I hope you will put something on your bot that lets us see what is the front, all the better to see if its going in the right direction. 😀 (and a cushion on top to put your feet up when taking a rest for inspiration).

Well the laptop webcam is pointing to the front. The base doesn't look all that good. It was just a quick way to make a round robot base out of some wooden (bamboo) trays. They have slots on either side which makes picking it up easy. It is the same base I used in the sonar obstacle avoidance experiments.

robotBaseSonar

The lid on top is to protect the wiring and as a platform for the laptop which I use for capturing and processing images. It would be neat to have two webcams on a head so it could look around without moving.

robotLid

When (if) I get hold of some more powerful motorized wheels with encoders and associated motor control circuits I would make it higher with arms able to pick up cups, plates or other house hold solid items. Just a dream of course for I must confess it is motivation to make the effort rather than inspiration as to what to build or how to build it.


   
ReplyQuote
robotBuilder
(@robotbuilder)
Member
Joined: 5 years ago
Posts: 2037
Topic starter  

@thrandell 

Hi Tom, thanks for responding.

For some insight into what a successful roboticist thinks about what it takes for a robot to be commercially successful check out Joe Jones’s site, The Practical Roboticist (read the Archives).> http://thepracticalroboticist.com/about-us/

It doesn’t look like he’s updated it in a few years, but it is still relevant.
He's just moved on.

https://spectrum.ieee.org/roomba-inventor-joe-jones-on-weed-killing-robot

... perhaps you can give yourself a programming goal to achieve.

Plenty of those 🙂 Just can't get motivated. Occasionally I get motivated for a couple of days and then run out of steam. After getting the differential drive simulator to work I decided to spend more time on understanding PID. Following a line seemed simple enough but being too lazy to build a line following robot to program I played about with just the code. In this example I start the "robot" away from the line which it can "see". One uses just proportional control. Another one uses integration as well. The differentiation doesn't seem to help so I have to figure out how to "tune" the constants Kp, Ki and Kp.

pidPathFollower1
pidPathFollower2

 

Personally, I’m goal driven (until life gets in the way).

Indeed and family responsibilities takes time away from personal pursuits.  Now covid19 has arrived here and we are in lock down. Although I have had two AZ jabs I don't know how good my immune system will be in combating it when I eventually get infected. Getting infected is a given unless you live alone and can avoid others. Apparently it is mostly being spread between families you can't avoid rather than in public spaces.

 


   
ReplyQuote
THRandell
(@thrandell)
Brain Donor
Joined: 3 years ago
Posts: 223
 

@robotbuilder

That article in Spectrum mentions the behavior that I'm trying to implement.  This is an interesting paper on the topic, and there's no math! https://www.aaai.org/Papers/Symposia/Fall/1993/FS-93-03/FS93-03-008.pdf

Your simulation looks spot on.  Is it something that can be easily adapted to a programming lanuage?

Tom

To err is human.
To really foul up, use a computer.


   
ReplyQuote
frogandtoad
(@frogandtoad)
Member
Joined: 5 years ago
Posts: 1458
 
Posted by: @robotbuilder

@dale
@frogandtoad
@huckohio
@byron
@thrandell

Its been 2 years now and not much new has happened on the robot front.  I confess I haven't done anything much myself instead occupying my time with other things.  However I see a few on the forum still have an interest in the subject which is motivation to perhaps spend more time getting something going beyond my experiments in "simple" encoder odometry, sonar distance measuring and visual target detection and actually get it navigating the house.

One thing that I baulked at was learning or using ROS. This article confirmed what I feared after looking at some so called ROS tutorials.
https://www.servomagazine.com/magazine/article/neato-ros-robot-navigation

For cost reasons I am using the motorized encoder wheels, battery and charger from a robot vacuum cleaner. Probably I should have kept the bumper as well as I find that making a simple nice looking functional bumper was more complicated than I thought. It provides an experimental base for trying different sensors and their associated software requirements. Bill says he is still working on his robotics project although I suspect it will be well outside my price range.

I know this is an electronics forum and as such hardware enthusiasts want to build it from the ground up but that for me would be an expensive path for a purely experimental base when ultimately robotics is about programming. Programming is how you wire up the parts in a general purpose computer without using solder 🙂   Should I ever get a working prototype I can always upgrade the hardware to do some of the work done by software.

To enlarge image, right mouse click on image and choose Open link in new window.

robotAbove
robotBelow
robotCase

IMHO, it's fair to say that you need quite a good grounding in programming to be able to best make use of ROS, and even then, it has a decent learning curve to go with it.  At the end of the day, it's just another framework with pre-built libraries, that one can utilise to control their robot. 

Paul McWhorter also offers some pretty good tutorials on moving in a straight line and over time using an Elegoo, and he also offers some good tutorials in using an IMU, effectively touching on PID via imaginary numbers to do the job.

Still, I do not think that is enough... I say look up the LEGEND Daniel Shiffman for VECTOR MATHEMATICS 😉

Cheers.


   
ReplyQuote
robotBuilder
(@robotbuilder)
Member
Joined: 5 years ago
Posts: 2037
Topic starter  

@thrandell 

That article in Spectrum mentions the behavior that I'm trying to implement. This is an interesting paper on the topic, and there's no math!

https://www.aaai.org/Papers/Symposia/Fall/1993/FS-93-03/FS93-03-008.pdf

Mathematics is just another language like programming. The problem for most people is not understanding the concepts behind all that symbolic shorthand. You can be taught with wrote learning how to compute solutions just as a computer can be given a set of instructions without it actually understanding how it works. Many engineers use mathematics that way.

The paper you cite is on behaviours for a vacuum robot to cover most of a floor area. Is that what you are trying to achieve? You can use a simulation to test the behaviours before implementing them in an actual robot base. The image below is a simulation of a robot with bumper sensors and a simple rule that causes it to rotate on contact to point in another random direction. The obstacles are lines (of any colour except white). Now you can add more behaviours and obstacles to test those behaviours in achieving the most coverage in a certain time limit. It leaves a brown trail of the area covered. You could add code to compute the areas covered and how many times the same areas is covered.

vacuumRobot

Your simulation looks spot on. Is it something that can be easily adapted to a programming language?

It is written in a programming language. Do you mean adapted to real hardware?  It uses the same PID function you can find in online examples of how to build line following Arduino based robot using PID. The application of PID to real hardware can be a little bit more complicated. Just as a starter you have to "tune" the software with appropriate values for Kp, Ki and Kp.

 


   
ReplyQuote
robotBuilder
(@robotbuilder)
Member
Joined: 5 years ago
Posts: 2037
Topic starter  

@frogandtoad 

IMHO, it's fair to say that you need quite a good grounding in programming to be able to best make use of ROS, and even then, it has a decent learning curve to go with it.

Always my issue I guess. When I bought the Amiga computer it came with a multitasking operating system. There were two manuals, one for programming with the OS which was filled with high level software jargon that clearly assumed a professional computer programming background in the subject, and another manual explaining the hardware. I had no trouble using the hardware manual to program the computer once the OS was turned off (something you can't do on a modern computer) and writing super fast code for the graphics hardware in Assembler code which is what they had to do for game programming anyway as the supplied AmigaBasic was really slow. Hardware and machine code I understand.

Same thing with the Window's API. Strange things like passing a message without really explaining at the grass level what was actually taking place. Programs written in the easy to use Visual BASIC were slower than the old machines. Even in C++ instead of simple access to graphic hardware you had to access it via a messy DirectX protocol or something like that. Killed all the fun I used to have programming computers. Today we have fast graphic libraries that do all the behind the scenes manipulations for you and you can program as you might have done on the old machines.

I am familiar with using vectors.

 


   
ReplyQuote
frogandtoad
(@frogandtoad)
Member
Joined: 5 years ago
Posts: 1458
 

@robotbuilder 

Posted by: @robotbuilder

I am familiar with using vectors.

Yes, I know that you're also familiar with Daniel Shiffman.

I mentioned him and Vectors, because he has a tutorial video on how they are used to track a path.  PID cannot offer direction, and is basically a correction/smoothing algorithm... whereas a Vector can.

Cheers.


   
ReplyQuote