Author Topic: Urban RoverBot from Roomba parts and an Arduino  (Read 5042 times)

0 Members and 1 Guest are viewing this topic.

Offline MakerDinoTopic starter

  • Jr. Member
  • **
  • Posts: 10
  • Helpful? 0
Urban RoverBot from Roomba parts and an Arduino
« on: January 02, 2010, 07:06:48 PM »
Hi there. I'm new to the forum and I thought sharing a video of my latest bot would be a good way to introduce myself.

Enjoy... Dino

Urban RoverBot with Death Ray Laser!
« Last Edit: January 02, 2010, 07:12:27 PM by MakerDino »

Offline SmAsH

  • Supreme Robot
  • *****
  • Posts: 3,959
  • Helpful? 75
  • SoR's Locale Electronics Nut.
Re: Urban RoverBot from Roomba parts and an Arduino
« Reply #1 on: January 02, 2010, 07:09:53 PM »
Just post the plain old link to embed the video.
Howdy

Offline MakerDinoTopic starter

  • Jr. Member
  • **
  • Posts: 10
  • Helpful? 0
Re: Urban RoverBot from Roomba parts and an Arduino
« Reply #2 on: January 02, 2010, 07:12:48 PM »
Thanks... easy peasy. :)

Offline airman00

  • Contest Winner
  • Supreme Robot
  • ****
  • Posts: 3,653
  • Helpful? 21
  • narobo.com
Re: Urban RoverBot from Roomba parts and an Arduino
« Reply #3 on: January 02, 2010, 07:33:49 PM »
Very nice job, very clean design.
Btw props for the Nikola Tesla photo!
Check out the Roboduino, Arduino-compatible board!


Link: http://curiousinventor.com/kits/roboduino

www.Narobo.com

Offline madsci1016

  • Contest Winner
  • Supreme Robot
  • ****
  • Posts: 1,450
  • Helpful? 43
Re: Urban RoverBot from Roomba parts and an Arduino
« Reply #4 on: January 02, 2010, 09:27:36 PM »
Nice! And glad to see more people using Irobot Roomba / Create parts in robots; The following is a link to my robot that uses Create parts. (gotta love those wheels, they grip to anything).

http://www.societyofrobots.com/robotforum/index.php?topic=9294.0

Edit:

Are you using the encoders on the wheels, and how much of the original roomba circuits are left? (sorry if this is answered in the video, I'm having audio troubles at the moment).

I ask because i just completed a Arduino powered motor-contoller with feedback from encoders ( http://www.billporter.info/?p=116 ) and wanted to compare notes.
« Last Edit: January 02, 2010, 09:32:58 PM by madsci1016 »

Offline SmAsH

  • Supreme Robot
  • *****
  • Posts: 3,959
  • Helpful? 75
  • SoR's Locale Electronics Nut.
Re: Urban RoverBot from Roomba parts and an Arduino
« Reply #5 on: January 02, 2010, 10:08:47 PM »
Pretty cool little bot you got there, i too am curious about the encoders from the roomba?
I also loved the suspension you got on there, its awesome!
Great job!
Howdy

Offline MakerDinoTopic starter

  • Jr. Member
  • **
  • Posts: 10
  • Helpful? 0
Re: Urban RoverBot from Roomba parts and an Arduino
« Reply #6 on: January 02, 2010, 10:58:21 PM »
Thanks for the feedback. I really liked building this one, and it's only going to get better.

I used the motor from two Roombas a friend gave me. They both had wear and tear problems but the motors worked fine.
I'm not using the wheel encoders as of yet. I've taken the wheel apart to see them and it's a simple broken IR beam setup. Very hackable. :)
I salvaged lots of cool Roomba parts....

I have four PWM outputs from the Arduino going directly to the h-bridge on the Roomba main board which is mounted in the prototype with some duct tape. The battery is plugged into the board but it doesn't need to be turned "on" to work. The power is at the transistors all the time. All I'm doing, is triggering the smaller switching transistor that turns on the power transistor that runs the motors. Since I'm doing this with a PWM signal, the motors are running at full torque no matter what speed they are being told to go. I can go forward and reverse so I can "tank steer" it.

It's surprising how easy it is to do this h-bridge hack on just about anything with a motor control on the PCB. Just look for groups of four power transistors and start probing smaller transistors on the base with 5V+ until the motor runs! :) It's a bit seat-of-the-pants but when you know how to read a circuit it doesn't take long and I've yet to damage anything.

I'll be working more with the sensors and main board from the Roombas...

Offline madsci1016

  • Contest Winner
  • Supreme Robot
  • ****
  • Posts: 1,450
  • Helpful? 43
Re: Urban RoverBot from Roomba parts and an Arduino
« Reply #7 on: January 02, 2010, 11:15:33 PM »
Since I'm doing this with a PWM signal, the motors are running at full torque no matter what speed they are being told to go. I can go forward and reverse so I can "tank steer" it

I am a little confused with this statement. The way most (all?) robots have variable speed at the motors is by using a PWM signal. Even though the signal is "full on" at certain moments in time, the average power over time is what determines the speed. So a 50% duty cycle cause the motors to spin at half speed.

Are you using the Arduino function "analogWrite()" to control the motors, or something else?

Offline MakerDinoTopic starter

  • Jr. Member
  • **
  • Posts: 10
  • Helpful? 0
Re: Urban RoverBot from Roomba parts and an Arduino
« Reply #8 on: January 03, 2010, 12:05:13 AM »
Yes I'm using analogWrite() to control the motors.
Torque in most electric motors is determined by voltage. In fact, torque usually falls off with speed in a motor!
Even if the voltage is for a short duration, it still induces the same torque during the pulse.

Offline madsci1016

  • Contest Winner
  • Supreme Robot
  • ****
  • Posts: 1,450
  • Helpful? 43
Re: Urban RoverBot from Roomba parts and an Arduino
« Reply #9 on: January 03, 2010, 12:47:11 AM »
Yes torque remains the same, but since a PWM signal lets you vary "average voltage over time", you achieve different speeds.
Quote from http://www.societyofrobots.com/schematics_h-bridgedes.shtml
Quote
Also a note that motor torque, under PWM, remains the same whether fully on or only a percentage on. However, varying voltage for speed control reduces torque. So with PWM you have maximum torque yet slower speeds!

So you can make your robot go slower using analogWrite(100) than it will with analogWrite(255), even though with a steady state analysis, it has the same torque, you can use your hand to try to stall the motor and you will see it has a lot less force with analogWrite(100) then 255.

The reason i ask about the encoders, is because my robot is similar to yours



4 Wheel drive, all fixed. But since i get feedback from my encoders, i can program the wheels to maintain certain speeds (in centimeters per second). Not only can i "tank steer" but i can also make smooth arching turns, or perfect circles of any radius.

Offline HyperNerd

  • Robot Overlord
  • ****
  • Posts: 139
  • Helpful? 5
  • N3rd1n80r
Re: Urban RoverBot from Roomba parts and an Arduino
« Reply #10 on: January 03, 2010, 05:59:12 AM »
That is a sweet suspension system you got there! ;)

Also, what modifications did you make to the motor? In the video you mentioned it but didn't go into much detail.

Love the deathray ;D

 -HyperNerd
There are 10 types of people in the world - those who understand binary, and those who don't.

Offline MakerDinoTopic starter

  • Jr. Member
  • **
  • Posts: 10
  • Helpful? 0
Re: Urban RoverBot from Roomba parts and an Arduino
« Reply #11 on: January 09, 2010, 02:24:48 PM »
I modded the motor housings actually. I trimmed away quite a bit of the fender which allows more of the tire to be exposed when encountering an obstacle.
I'm working on adding two more PING sensors on the left and right for side sensing and updating the code so it turns away from objects sensed on the side, not just in front.

Here's another video shot outdoors in rough terrain with the single sensor, and no LEDs or lasers. :)

Urban RoverBot Field Testing



Offline madsci1016

  • Contest Winner
  • Supreme Robot
  • ****
  • Posts: 1,450
  • Helpful? 43
Re: Urban RoverBot from Roomba parts and an Arduino
« Reply #12 on: January 09, 2010, 04:50:52 PM »
Nice.

Looks like it's having a few issues trying to turn in-place over some terrain. Are you giving those motors full power?

My robot also liked to flip over objects that are too tall. It was bad for me because it was snapping off the communications antenna and possible damaging the GPS antenna.

 I added a 3 axis accelerometer and some code where if it detects itself starting to crawl something too high, it would stop. You can also use the information to determine if the sonar data is false because the robot is angled down too far.

Offline MakerDinoTopic starter

  • Jr. Member
  • **
  • Posts: 10
  • Helpful? 0
Re: Urban RoverBot from Roomba parts and an Arduino
« Reply #13 on: January 09, 2010, 10:22:57 PM »
Nice.

Looks like it's having a few issues trying to turn in-place over some terrain. Are you giving those motors full power?

My robot also liked to flip over objects that are too tall. It was bad for me because it was snapping off the communications antenna and possible damaging the GPS antenna.

 I added a 3 axis accelerometer and some code where if it detects itself starting to crawl something too high, it would stop. You can also use the information to determine if the sonar data is false because the robot is angled down too far.


Yeah those square profile tires don't like to slide side ways as it tank turns.
I plan on adding  some  accelerometers soon for the same reasons you have them.


Offline madsci1016

  • Contest Winner
  • Supreme Robot
  • ****
  • Posts: 1,450
  • Helpful? 43
Re: Urban RoverBot from Roomba parts and an Arduino
« Reply #14 on: January 10, 2010, 10:44:07 PM »
Instead of full tank turns, have you tried arching turns, ie one motor at full speed, one at half?

Offline parallax

  • Full Member
  • ***
  • Posts: 94
  • Helpful? 1
Re: Urban RoverBot from Roomba parts and an Arduino
« Reply #15 on: January 14, 2010, 09:20:35 PM »
Great project!

Just have to put this out there- I crack up every time I see your dog's reaction to the robot at about 3:35  :D Pricless!

It seems like it's a pretty stable camera platform as well. Any plans on implementing some kind of image/video processing capability eventually?
"Less than a drop of blood in me remains that does not tremble;
I recognize the signals of the ancient flame"

 


Get Your Ad Here