Robotics development tools

Translate This Thread From English to

Threaded View
Hi Everyone,
 I am new to field of robotics and I was wondering what tools I should
consider studying for development of a robot system that can learn and
make maps from the environmental interaction with sensors(vision etc).
I know basic programming languages like c and
delphi(lazarus,freepascal).
I think c is the language of choice for most people while developing
programs embedded systems(although i like pascal a lot).
To test certain algorithms for embedded systems on PC, I think
c,sdl,opengl,glut mix is good(that will make me less dependant on
os).is that enough.

I want suggestion from people with experience about what all should i
invest my time in studying.

Currently all i know is that C is the language, but the libraries for
doing similar things vary OS to OS. I think I need to understand and
implement lot of algorithms instead of learning lot of separate
libraries.

please share your views on this


Re: Robotics development tools



It all depends on what you're doing.

I like Java for robotic control. However, currently I'm building
a Leaf robot (http://www.leafproject.org/ ) which uses a combination
of LISP, C, and C++. This robot has speech recognition, vision,
AI, and navigation/mapping.

One interesting thing is that the software runs not only on
simple differential drive robots, but also on a couple of
R2D2 and B9s (robot from Lost in Space).

I will be using this as a platform to experiment with
many things without having to worry about the low-level
stuff.

However, if you're just starting out, I would strongly
recommend building a small robot first. If you like
C you can use the MAVRIC-IIB (http://www.bdmicro.com/ )
board. If you're willing to try Java, the uVM chip
is a PIC with a Java compiler! (http://www.muvium.com/ ).

If you don't want to worry much about the mechanics, get
a base from Budget Robotics (http://www.budgetrobotics.com/ ).

It's good to learn on a small robot because when a small
robot runs over something, nothing is hurt. When a large
(PC-based) robot runs over something, there is pain. :(
--
D. Jay Newman
Author of _Linux Robotics_
http://enerd.ws/robots/

Re: Robotics development tools

Hi Mr. Newman,
 Thanks for the advice and information. I see that using a PC and its
devices would be fastest way to implement a robot with vision,sound
sensor and outputs. Also it would be the fastest way to test all
algorithms. we also need to extend the PC system to add more different
sensors and physical motion devices etc. ( so a laptop integrated with
initial design is a good idea)
I checked out the Leaf robots site and my own idea is roughly along the
same path of leaf's inspiration of a creature interacting with
environment and learning.
I think I would first start out with C. I would like to keep the
learning curve lowest in programming language because the aim is to
allow system to learn and use rather than be programmed all the time.
I would dedicate more learning time to try out algorithms.
Could you please tell me why you chose java? i am not familiar with all
the advantages it would have over C in building the robot.
Hope to be able to discuss with you further after I am more into it. I
am going to study robotics and embedded system course from this year in
uk.


Re: Robotics development tools


You're welcome. And it's just "Jay".


A Mini-ITX system will also work.


Good. We can always use another hand.


I strongly suggest starting from a known base. Doing everything on
your own can cause you to reinvent the entire wheel. Starting from
a working infra-structure can speed the development process.
--
D. Jay Newman
Author of _Linux Robotics_
http://enerd.ws/robots/

Re: Robotics development tools


If you do use a laptop, you need to keep it protected; I've known people
who's laptop hard drive was crashing due to vibrations.  They solved
this by booting off a live CD and keeping everything in memory.


C/C++ is a good language to learn; it gives you direct access to the
hardware, but it also requires you to have a deep understanding to
accomplish certain "basic" tasks.  Another language in this category is
Forth.  Java is nice because it isolates you from certain memory
allocation issues, offers easy object-orientation and threading, and has
a good standard library.  Other languages like Lisp, Scheme, and OCaml
provide higher abstractions that simplify tasks like AI but tend to
complicate direct hardware access.  Most languages offer a C binding to
allow interaction between them.  If software's your thing, be sure to
experiment with several different languages; write a simple program in
each of them; this will give you some perspective on what their
specialties are.


Have fun with your studies.  Other fields that may interest you are
control theory and mechanics.

Daniel


Re: Robotics development tools

Thats right normal harddrive of laptop may have problem due to
vibrations. Hope samsung and others release NAND Flash Harddrive which
would be great for this. Also could we use the SD memory card and card
reader for this?

I have no problem with learning and using more than 1 language for task
other than that, then while making programs you have to focus more on
language related issues like rules and more libraries thus increasing
complexity a little and divert me a little from the task of problem
solving.
C is very concise language(i dont know about forth) while other
languages try to accomodate huge number of features for several types
of problem solving. Its a kind of Trade Off to stick to C initially to
get the most benefits possible. [I think selection of one language(C)
is more because the way i think to solve problems and the type of
problems i intend to face rather than being the ideal general case of
implementing system].
This actually is a hard decision to make because i have to balance
software tool learning curve with algorithms implementation and
learning curve(need to examine and weigh from many options). And since
time keeps running out I must keep on increasing my skill level for
useful output by doing something.
Maybe the best way is adapting to requirements along the way as
techniques will keep adding on.

Mandeep


Re: Robotics development tools

"I like Java for robotic control. However, currently I'm building
a Leaf robot (http://www.leafproject.org/ ) which uses a combination
of LISP, C, and C++. This robot has speech recognition, vision,
AI, and navigation/mapping.


One interesting thing is that the software runs not only on
simple differential drive robots, but also on a couple of
R2D2 and B9s (robot from Lost in Space). "

Jay, could you expand on this?

Links?

Thanks

TMT


Re: Robotics development tools


The main link is http://www.leafproject.org/

There is an interesting video on that page. And complete
instructions for building such a robot.

There is the Yahoo group, Leaf_an_AI_robot that is the main
mailing list.
--
D. Jay Newman
Author of _Linux Robotics_
http://enerd.ws/robots/

Site Timeline