Showing posts with label lego. Show all posts
Showing posts with label lego. Show all posts

Monday, 18 April 2011

robots and artificial intelligence

It has already been point out in earlier blogs (e.g 

Developing problem-solving teaching materials based upon Microsoft Robotics Studio and Problem-solving and robots ) that robots and problem-solving are a go well together. What about advanced problem-solving techniques such as artificial intelligence, do simple lego robots go well with these as a way of developing student's skills?


In my opinion it is a yes. As a part of a set of tools I have found them very useful for teaching the principles of simple neurones.

 Example code:
import josx.platform.rcx.*;

public class annlf{
 public static void main(String[] args)
 {
  int w[][] ={//put weights here};
  int o[]={1,1};
  int s1,s2,res1,res2;
  int sensor1=0,sensor2=0;
  robot_1 tom=new robot_1();
  Sensor.S1.activate();
  Sensor.S3.activate();
  for(;;){
   sensor1=Sensor.S1.readValue();
   sensor2=Sensor.S3.readValue();
   LCD.showNumber(sensor1);
   if (sensor1<42)
    s1=1;
   else
    s1=0;
   if (sensor2<42)
    s2=1;
   else
    s2=0;
   res1=w[0][1]*s1+w[0][2]*s2+w[0][0];
   if (res1>=0)
    o[0]=1;
   else
    o[0]=0;
   res2=w[1][1]*s1+w[1][2]*s2+w[1][0];
   if (res2>=0)
    o[1]=1;
   else
    o[1]=0;
   if ((o[0]==1)&&(o[1]==1))
    tom.forward1(10);
   if ((o[0]==0)&&(o[1]==0))
    tom.backward1(20);
   if ((o[0]==1)&&(o[1]==0))
    tom.tlturn(20);
   if ((o[0]==0)&&(o[1]==1))
    tom.trturn(20);
   LCD.refresh();
  }
 }
}

The example code uses two neurones to produce a line follower. The nice thing about this though is it easy to adapted this for a single neuron or multiple neuron tasks. For more on this some examples can be found here.

The above approaches used the Mindstorms RCX robots but it can equally be done with the newer NXT robots


 


Sunday, 13 March 2011

Innovative use of Robots and Graphical Programming in Software Education

Two members of the computing division recently presented a paper "Innovative use of Robots and Graphical Programming in Software Education " at  6th China Europe International Symposium on Software Industry Oriented Education (CEISIE2010) Northwestern Polytechnical University, Xi'an China.

Abstract: Problem solving is an important skill for a computer scientist. Mindstorm based robots have been used previously, for teaching programming to computing and engineering students here we look at problem solving. These approaches focus upon the development of problem solving skills and not on learning a new programming language from the outset. Therefore, initially, any programming is kept simple with the minimum of commands, with „objects‟ unknowingly used, as these are later introduced/learnt during the programming stage of the computing module. This work suggests that using LEGO robots within the teaching of problem solving and the resulting java GUI emulation has some benefits for the students when learning to program. 


More details can be found in the following article :
Turner S and Hill G (2010) "Innovative use of Robots and Graphical Programming in Software Education" Computer Education Ser. 117 No. 9 pp 54-57 ISSN: 1672-5913