Go Down

Topic: Arduino and complex robots? Possible? (Read 4941 times) previous topic - next topic

dennis-reiter

Apr 01, 2014, 01:13 pm Last Edit: Apr 01, 2014, 05:23 pm by dennis-reiter Reason: 1
Hi people,
I'm new here. I'm still not quite convinced of the Arduino. I want to build a larger robot that moves outdoors and collects sensor data .
I'm want to control the robot remotely through a user interface.

1 Have you ever built or planned a large robot with many functions?
2 What are the functions of your robot?
3 Which modules or hardware did you use?
4 Who actually uses the Arduino? I read that most designers use it. Is that true? What are you doing?

I would be very grateful for answers.

Greetings
Dennis

TomGeorge

Hi, Dennis, what experience have you had with robotics, programming and electronics.
We need to know so that we can advise you where to start.

Thanks Tom......... :)
Everything runs on smoke, let the smoke out, it stops running....

dennis-reiter


Hi TomGeorge!

thx for your interest. well I'am an interface designer. I have discovered the physical computing world for me. displaying and controlling throuh a display is really exiting. I programm quiet well in Java and I have began learning C++ . The two languages are quiet similar. After studying different Arduino books I have a good basic understanding of Arduino programming and elektronics.

As mentioned my goal is to build a larger robot, which drives remotely around by a user interface and collects sensor data. I would like to know what people are building with the Arduino, I mean larger and more complex robots. What hardware are they using?




PaulS

Quote
I want to build a larger robot that moves outdoors

Wheeled, tracked, or biped?
On grass, dirt, or asphalt?
Level or sloped? Steps?

About the only real difference between a small robot for indoor use and a large robot for outdoor use that I can see is that the outdoor version probably won't encounter carpet.

Well, that and it will be heavier, need more torque, and blow through batteries faster.
The art of getting good answers lies in asking good questions.

Jantje

What do you call large? I mean : I don't think the size of the robot is a limiting factor to use arduino or not.
What is limiting is the number of pins and special function pins. But then  there are plenty of ways around that like using multiple arduino's breakput boards I2C ....

Anyway my lawn mowing robot is completely autonomous (not yet auto recharge but that is comming) is about 130 cm long and 70 cm wide.
Which is in Arduino world a "large robot"
It also has some nice features: to name some
6 motors ( 4WD + 2 grass cutting motors)
Autonomous and RC controlled driving.
Full web interface and logging
GPS
direction sensor
heat sensor on each motor
Bumper sensors
Current usage sensors

Best regards
Jantje
Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

mirith

Arduino is limited in complexity, but not in size.  The limits happen as you try to add more and more peripherals onto your robot.  Two things can happen.  1, you run out of pins to connect things too, and 2, you run out of free processing time so your timing gets more and more off, possibly causing problems.  Both are easy to work around if you plan ahead and write good code.  As for interfacing, a lot of that can be handled offsite from the robot, in your interface, and then communicated to the robot through something simple like a serial interface.  The only thing I would not recommend trying is images and video.  The Arduino just doesn't have enough memory or processing power to do anything useful with those unless it is a very small image over a very long period of time.  Images are just too much data at once.

Chagrin

A microcontroller like an Arduino is your interface to the sensors/motors/etc. On a large project you should think of it as a peripheral device which should be controlled by a microprocessor-based system like a Raspberry Pi.

Jantje


A microcontroller like an Arduino is your interface to the sensors/motors/etc. On a large project you should think of it as a peripheral device which should be controlled by a microprocessor-based system like a Raspberry Pi.


Is this a commonly accepted rule?
Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

mirith



A microcontroller like an Arduino is your interface to the sensors/motors/etc. On a large project you should think of it as a peripheral device which should be controlled by a microprocessor-based system like a Raspberry Pi.


Is this a commonly accepted rule?

Depends on the complexity.  But maybe I am not common.  The usual rule in industry is to buy what you need and minimize the number of devices as possible/practical.  Micro-controllers and Microprocessors are basically the same thing.  The first just has useful peripherals to interact with the real world in real time that the second doesn't, but usually gives up stuff like processing power or advanced math functions.  There is a different complexity to networking multiple devices together for communication.  Also, using a single device is required for real-time applications (say motor controllers).  Millisecond latency that is standard to most PC OS's (which the Raspberry pi uses) is not acceptable if you are trying to control a CNC mill.  That being said, you can get real-time processing on the Raspberry Pi, it is just more complicated.

Jantje

If I understand correctly you mean "multi robot project" when you say "large project".
In that case I agree. Well I would use a yun  but basically that is the same thing.
Jantje
Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

Chagrin

I'm not saying that you can't build a pretty complex robot on an Arduino. As an example, the Ardupilot guys have done a really impressive job jamming full autonomous control into an ATMega2560. Personally, though, my programming is very unimpressive and I could never cram so much into so little space, especially with all the time-critical tasks involved. It's from that perspective that I would recommend something like a Pi to act as the brains of the operation.

Jantje

My point of view is that adding a external processor like the pi or yun adds complexity. Most people have a realy hard time to understand the concept of  asynchronous processes and how to communicate between them.

On the other hand the mega 2560 is more than big enough for some serious autonomous robot projects where the communication with the external world is limited. (I mean don't run a heavy web site on it)
For instance: I'm currently working on a full autonomous mow robot. It is 70 cm wide about 100cm long and ways more than 20 kg.
I still need to program the functionality "go to the recharger" but all other functionality is there and even though I use way to much memory due to some bugs I only have 16% of the program space used and 89% of the memory space.
So plenty of room left.

I don't know how much space ardupilot takes but I have found someone building a clone using a 644p with only 64K of program space and 2K of memory (which is 1/4th of what the 2560 has ). Where did you get your information they had to "jamm" it in a ATMega3560?


The bugs cost me memory only and lots of it. Due to the bug I can only run on 9800 BAUD. as I send about 800 bytes and 1 byte +-= 1 ms to send at this rate I use a buffer of 800 bytes. Because there are 3 serial ports that is 3*800=2400 bytes of the 7301 bytes I'm using.
Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

Go Up