Legacy Forum: Preserving Nearly 20 Years of Community History - A Time Capsule of Discussions, Memories, and Shared Experiences.

AI

Hitec robotics including ROBONOVA humanoid, HSR-8498HB servos, MR C-3024 Controllers and RoboBasic
64 postsPage 3 of 51, 2, 3, 4, 5
64 postsPage 3 of 51, 2, 3, 4, 5

Post by Gort » Mon May 07, 2007 5:59 pm

Post by Gort
Mon May 07, 2007 5:59 pm

A co-worker told me that LISP is used a lot for AI research.
http://en.wikipedia.org/wiki/Lisp_programming_language
It is a hard language to learn. Java has many of its good features. So I am going to stick with Java for the high end AI processing.
A co-worker told me that LISP is used a lot for AI research.
http://en.wikipedia.org/wiki/Lisp_programming_language
It is a hard language to learn. Java has many of its good features. So I am going to stick with Java for the high end AI processing.
Gort
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 555
Joined: Wed May 31, 2006 1:00 am
Location: KC, MO, USA

Post by Robo1 » Mon May 07, 2007 7:41 pm

Post by Robo1
Mon May 07, 2007 7:41 pm

I sould say lisp die out not many people use it any more, as these much better languages out there.

Bren
I sould say lisp die out not many people use it any more, as these much better languages out there.

Bren
Robo1
Savvy Roboteer
Savvy Roboteer
Posts: 501
Joined: Fri Jun 30, 2006 1:00 am
Location: UK - Bristol

Post by Humanoido » Tue May 08, 2007 5:40 am

Post by Humanoido
Tue May 08, 2007 5:40 am

Thanks for the wiki link about LISP. It points out that there are several dialects to this language, as is with most languages. Nowadays you have to explore the dialects as a lot of different languages start looking similar.

This link covers LISP and public domain AI software.
http://www.cs.berkeley.edu/~russell/prog.html

"Scheme was the first major dialect of Lisp to distinguish procedures from lambda expressions and symbols, to use a single lexical environment for all variables, and to evaluate the operator position of a procedure call in the same way as an operand position."
http://www-swiss.ai.mit.edu/projects/scheme/

humanoido
Thanks for the wiki link about LISP. It points out that there are several dialects to this language, as is with most languages. Nowadays you have to explore the dialects as a lot of different languages start looking similar.

This link covers LISP and public domain AI software.
http://www.cs.berkeley.edu/~russell/prog.html

"Scheme was the first major dialect of Lisp to distinguish procedures from lambda expressions and symbols, to use a single lexical environment for all variables, and to evaluate the operator position of a procedure call in the same way as an operand position."
http://www-swiss.ai.mit.edu/projects/scheme/

humanoido
Humanoido
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 574
Joined: Tue Dec 05, 2006 1:00 am
Location: Deep in the Heart of Asia

Post by DirtyRoboto » Thu May 10, 2007 6:00 pm

Post by DirtyRoboto
Thu May 10, 2007 6:00 pm

I am getting more and more resolved that the term "AI" is not used correctly.
I feel that it should just be "I" or Intelligence. It seems that the conceit of the smart ape causes it to measure the intelligence of other things against itself.

We have had an marvelous dream, where sentient machines live alongside us. Many people are banging rocks together to make sparks. When one makes a good spark and starts the fire we had better understand the nature of that fire. We should not be so conceited to let the fire go out or let it go out of control.

Marcus
I am getting more and more resolved that the term "AI" is not used correctly.
I feel that it should just be "I" or Intelligence. It seems that the conceit of the smart ape causes it to measure the intelligence of other things against itself.

We have had an marvelous dream, where sentient machines live alongside us. Many people are banging rocks together to make sparks. When one makes a good spark and starts the fire we had better understand the nature of that fire. We should not be so conceited to let the fire go out or let it go out of control.

Marcus
In servo's we trust!
DirtyRoboto
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 412
Joined: Tue Sep 19, 2006 1:00 am
Location: London

Post by Humanoido » Fri May 11, 2007 3:29 am

Post by Humanoido
Fri May 11, 2007 3:29 am

Marcus: I feel that it should just be "I" or Intelligence. It seems that the conceit of the smart ape causes it to measure the intelligence of other things against itself.

Well said. As I read this, there is the realization that we have already become racist against the intelligence we seek. Why would any intelligence be artificial? Is the mind of a bug artificial? Is an Amoeba artificial? Whether the intelligence is carbon or silicon based makes it no less important for one over the other.

humanoido
Marcus: I feel that it should just be "I" or Intelligence. It seems that the conceit of the smart ape causes it to measure the intelligence of other things against itself.

Well said. As I read this, there is the realization that we have already become racist against the intelligence we seek. Why would any intelligence be artificial? Is the mind of a bug artificial? Is an Amoeba artificial? Whether the intelligence is carbon or silicon based makes it no less important for one over the other.

humanoido
Humanoido
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 574
Joined: Tue Dec 05, 2006 1:00 am
Location: Deep in the Heart of Asia

Post by brindy » Fri May 11, 2007 8:18 pm

Post by brindy
Fri May 11, 2007 8:18 pm

why worry about the moral/ethical/philosophical issues until we actually get it working?

i will worry about offending a robot by saying it has artifical intelligence when one tells my i hurt its feelings. until then, robots are just toys and subject to programming, though yes, very clever programming at times.

so, back to the subject... how are we going to give our RN-Is some (artificial) intelligence? :)
why worry about the moral/ethical/philosophical issues until we actually get it working?

i will worry about offending a robot by saying it has artifical intelligence when one tells my i hurt its feelings. until then, robots are just toys and subject to programming, though yes, very clever programming at times.

so, back to the subject... how are we going to give our RN-Is some (artificial) intelligence? :)
brindy
Robot Builder
Robot Builder
Posts: 14
Joined: Mon Apr 02, 2007 4:40 pm
Location: Glasgow, UK

Post by Humanoido » Sun May 13, 2007 12:45 pm

Post by Humanoido
Sun May 13, 2007 12:45 pm

I think the main question at this time is do we want to install a comprehensive (or simple) AI program on the existing controller which works so well with motion control, or another one, maybe piggybacked? If we go with another controller to handle AI on RN, how are the signals passed between controllers? By serial?

humanoido
I think the main question at this time is do we want to install a comprehensive (or simple) AI program on the existing controller which works so well with motion control, or another one, maybe piggybacked? If we go with another controller to handle AI on RN, how are the signals passed between controllers? By serial?

humanoido
Humanoido
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 574
Joined: Tue Dec 05, 2006 1:00 am
Location: Deep in the Heart of Asia

Post by Humanoido » Sun May 13, 2007 12:54 pm

Post by Humanoido
Sun May 13, 2007 12:54 pm

This is my criteria for an intelligent being.
An intelligent humanoid would be concerned about following:

* Autonomy.
* It's own safety.
* Eating.
* Resting and sleeping.
* Communicating its needs.
* Improving itself by gaining knowledge and behaviors.
* Interacting with humans.
* Exploring the world.

humanoido
This is my criteria for an intelligent being.
An intelligent humanoid would be concerned about following:

* Autonomy.
* It's own safety.
* Eating.
* Resting and sleeping.
* Communicating its needs.
* Improving itself by gaining knowledge and behaviors.
* Interacting with humans.
* Exploring the world.

humanoido
Humanoido
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 574
Joined: Tue Dec 05, 2006 1:00 am
Location: Deep in the Heart of Asia

Post by Gort » Sun May 13, 2007 1:59 pm

Post by Gort
Sun May 13, 2007 1:59 pm

I think piggybacked is the best way to go check out these boards
http://docwiki.gumstix.org/Verdex
On the robot magazine forum website they are being used to upgrade a Bioloid Humanoid.
http://www.botmag.com/forum/showthread.php?t=480
Looks like you program them in C with a Linux OS
I think piggybacked is the best way to go check out these boards
http://docwiki.gumstix.org/Verdex
On the robot magazine forum website they are being used to upgrade a Bioloid Humanoid.
http://www.botmag.com/forum/showthread.php?t=480
Looks like you program them in C with a Linux OS
Gort
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 555
Joined: Wed May 31, 2006 1:00 am
Location: KC, MO, USA

Post by Gort » Sun May 13, 2007 2:19 pm

Post by Gort
Sun May 13, 2007 2:19 pm

You may want to check out 'introduction to AI Robotics' by Robin R. Murphy for more ideas on criteria. I just got it in the mail. The seven areas of AI on pages 34 through 36 are
1. Knowledge representation
(how does the robot represent its world, its task and itself)
2.Understanding natural language
(reading, listening,writing and speaking)
3.learning
(a robot can be programmed by watching a human or by just trying the task repeatedly itself)
4.Planning and problem solving
(the ability to plan actions needed to accomplish a goal and solve problems with those plans or when they don't work)
5.Inference
(generating an anwer when there isn't complete information.)
6.Search
(efficiently examining a knowledge representation of a problem to find the answer)
7.Vision
(is possibly the most valuable sense humans have)
You may want to check out 'introduction to AI Robotics' by Robin R. Murphy for more ideas on criteria. I just got it in the mail. The seven areas of AI on pages 34 through 36 are
1. Knowledge representation
(how does the robot represent its world, its task and itself)
2.Understanding natural language
(reading, listening,writing and speaking)
3.learning
(a robot can be programmed by watching a human or by just trying the task repeatedly itself)
4.Planning and problem solving
(the ability to plan actions needed to accomplish a goal and solve problems with those plans or when they don't work)
5.Inference
(generating an anwer when there isn't complete information.)
6.Search
(efficiently examining a knowledge representation of a problem to find the answer)
7.Vision
(is possibly the most valuable sense humans have)
Gort
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 555
Joined: Wed May 31, 2006 1:00 am
Location: KC, MO, USA

Post by Gort » Sun May 13, 2007 2:28 pm

Post by Gort
Sun May 13, 2007 2:28 pm

Page 43 the attributes of the hierarchical paradigm

Sense ------> Plan --------> Act

robot primitives ----- input -------- output

Sense ------ sensor data ----- sensed information

plan ----- information ----- directives
sensed and/or
congnitive

act ---- directives ----- actuator commands
8)
Page 43 the attributes of the hierarchical paradigm

Sense ------> Plan --------> Act

robot primitives ----- input -------- output

Sense ------ sensor data ----- sensed information

plan ----- information ----- directives
sensed and/or
congnitive

act ---- directives ----- actuator commands
8)
Gort
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 555
Joined: Wed May 31, 2006 1:00 am
Location: KC, MO, USA

Post by Nox » Mon May 14, 2007 2:54 pm

Post by Nox
Mon May 14, 2007 2:54 pm

I've had my robonova about a month and have been hmmm, meddling a little :) - I think i've borked the battery though as its all now a bit juddery when it tries to do anything, even when i *think* its fully charges (light is green).

The problem, as I see it, is the whole re-programming itself. Whatever you load to the robot has to be able to re-write part of itself, or atleast re-write the database of servo positions for a start. Thats much easier!! I was hoping to see a DATA command (i'm fluent in basic, well used to be! but not robobasic, yet) to store initial positions, but regular variables would suffice at a push. Working on this principle, you would need to teach the robot how to decide whether its change was for the better or for the worse, and for that - it would have to know what it was trying to do. You could fairly easily tell it that if it fell over, then the walk it just tried failed, and the previous settings were better, but it would obvious get a lot more complicated after that, like whether the falling over was caused by an annoyed cat or stepping onto carpet rather than a bad decision.

I think you also need storage, and realistically an onboard computer, like a gumstick - then writing some code that was capable of changing atleast its data would be easy, and prossible in robobasic, but exporting your changes out may be tougher - it would have to start from the beginning each time you switched it on then. Writing code that would allow itself to change itself is a bit of a nightmare from what i can see. You would almost need code that would run changeable sub-code. Still, will have more time to play once i've got the new (removed by spam filter) put in.

Oh Hi btw, this is my first post :)

Nox
I've had my robonova about a month and have been hmmm, meddling a little :) - I think i've borked the battery though as its all now a bit juddery when it tries to do anything, even when i *think* its fully charges (light is green).

The problem, as I see it, is the whole re-programming itself. Whatever you load to the robot has to be able to re-write part of itself, or atleast re-write the database of servo positions for a start. Thats much easier!! I was hoping to see a DATA command (i'm fluent in basic, well used to be! but not robobasic, yet) to store initial positions, but regular variables would suffice at a push. Working on this principle, you would need to teach the robot how to decide whether its change was for the better or for the worse, and for that - it would have to know what it was trying to do. You could fairly easily tell it that if it fell over, then the walk it just tried failed, and the previous settings were better, but it would obvious get a lot more complicated after that, like whether the falling over was caused by an annoyed cat or stepping onto carpet rather than a bad decision.

I think you also need storage, and realistically an onboard computer, like a gumstick - then writing some code that was capable of changing atleast its data would be easy, and prossible in robobasic, but exporting your changes out may be tougher - it would have to start from the beginning each time you switched it on then. Writing code that would allow itself to change itself is a bit of a nightmare from what i can see. You would almost need code that would run changeable sub-code. Still, will have more time to play once i've got the new (removed by spam filter) put in.

Oh Hi btw, this is my first post :)

Nox
Nox
Newbie
Newbie
Posts: 1
Joined: Thu Apr 05, 2007 1:46 pm

Post by i-Bot » Mon May 14, 2007 3:57 pm

Post by i-Bot
Mon May 14, 2007 3:57 pm

Hi and welcome Nox

The SERVO command can take a variable for a single servo position, but the MOVE and POS commands cannot.

I have a program which takes apart the .obj file generated by RoboBasic and displays it. This shows the locations of variables in the RoboNova RAM, and the location of program lines in the RoboNova EEPROM. These can then be changed with the POKE and ROMPOKE. Since it is EEPROM, then it is not lost on power down.

A bit clunky, but it might be enough.
Hi and welcome Nox

The SERVO command can take a variable for a single servo position, but the MOVE and POS commands cannot.

I have a program which takes apart the .obj file generated by RoboBasic and displays it. This shows the locations of variables in the RoboNova RAM, and the location of program lines in the RoboNova EEPROM. These can then be changed with the POKE and ROMPOKE. Since it is EEPROM, then it is not lost on power down.

A bit clunky, but it might be enough.
i-Bot
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1142
Joined: Wed May 17, 2006 1:00 am

Post by brindy » Mon May 14, 2007 9:02 pm

Post by brindy
Mon May 14, 2007 9:02 pm

Hi Nox!

It's been implied in this post before, but I think the best approach for what you are suggest would be to implement a Genetic Algorithm for which there just isn't enough memory/processing power on the RN-1 at this time.

I think piggy backing something a bit more powerful is probably the solution, leaving the current processor the RN-1 has to be in control of servos.

That said, given the limitation that i-Bot points out, even that may not be enough and we might have to think about replacing the existing processor all together, or changing the OS that it runs, i.e. allow it to run something more powerful than Robobasic, which is, as implied by the name, basic at best. :)

So has anyone attempted to replace the RN-1's processor or flash it with something more powerful than Robobasic, some how?
Hi Nox!

It's been implied in this post before, but I think the best approach for what you are suggest would be to implement a Genetic Algorithm for which there just isn't enough memory/processing power on the RN-1 at this time.

I think piggy backing something a bit more powerful is probably the solution, leaving the current processor the RN-1 has to be in control of servos.

That said, given the limitation that i-Bot points out, even that may not be enough and we might have to think about replacing the existing processor all together, or changing the OS that it runs, i.e. allow it to run something more powerful than Robobasic, which is, as implied by the name, basic at best. :)

So has anyone attempted to replace the RN-1's processor or flash it with something more powerful than Robobasic, some how?
brindy
Robot Builder
Robot Builder
Posts: 14
Joined: Mon Apr 02, 2007 4:40 pm
Location: Glasgow, UK

Post by i-Bot » Mon May 14, 2007 9:48 pm

Post by i-Bot
Mon May 14, 2007 9:48 pm

I use C on the RoboNova, with a motion library based on the existing code. this gives fair improvement in performance (3 to 4 * on non motion code), though the motion engine still takes a large part of the ATMega processing power due to spending a long time in interrupt routines. Also it is possible to add a few assembler routines, by stealing unused Robobasic instructions.

Even delegating the existing card as a motion processor also has some problems. So much time is taken by the motion processor, it is difficult to make high speed comunication even in C. That is why the current interface only works one byte at a time except during download.

Also I have an FPGA (XC3S200) performing the servo code ( one version with serial HMI, and one with PWM), with a Picoblaze processor for interface. I connect this to an external AT91RM9200 card running Linux. I have worked out I can physically cram this into the RN back ( 128M, WLAN, micro SD card) , though it may be easier to to use Microblaze on a larger Xilinx Spartan. My concern with this approach is that we will lose much of the true hands on knowledge in this forum if we make the transition from Robobasic
I use C on the RoboNova, with a motion library based on the existing code. this gives fair improvement in performance (3 to 4 * on non motion code), though the motion engine still takes a large part of the ATMega processing power due to spending a long time in interrupt routines. Also it is possible to add a few assembler routines, by stealing unused Robobasic instructions.

Even delegating the existing card as a motion processor also has some problems. So much time is taken by the motion processor, it is difficult to make high speed comunication even in C. That is why the current interface only works one byte at a time except during download.

Also I have an FPGA (XC3S200) performing the servo code ( one version with serial HMI, and one with PWM), with a Picoblaze processor for interface. I connect this to an external AT91RM9200 card running Linux. I have worked out I can physically cram this into the RN back ( 128M, WLAN, micro SD card) , though it may be easier to to use Microblaze on a larger Xilinx Spartan. My concern with this approach is that we will lose much of the true hands on knowledge in this forum if we make the transition from Robobasic
i-Bot
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1142
Joined: Wed May 17, 2006 1:00 am

PreviousNext
64 postsPage 3 of 51, 2, 3, 4, 5
64 postsPage 3 of 51, 2, 3, 4, 5