Setting objectives for your next robotics workshop

by JuanPi Carbajal and Francis wyffels

When preparing a class or workshop it is important to define the objectives that will be pursued. These objectives are not to be forced on the participants (kids, teachers or general public) but rather are a guidance to what aspects of the training to highlight. The objectives also allow you to choose the right activities for your event and prepare the necessary materials. During our workshops we have built up experience and we collected a list of general situations that undoubtedly will be present during a workshop. We believe that our insights might be helpful for teachers that want to prepare their events involving computer science, robots or other physical systems.

From virtual to real

Imagination! by AshOfSpades

Children and young people usually have a good idea of what they want their robot to do. They effectively use language to express this, for example: ‘When I press this button, my robot should start…’ or ‘When the light is on, the robot should turn around’. With these words, learners refer to the robot’s behaviour. They project their ideas into the mind of their robot. However, the actual translation of virtual (ideas) to the real is not direct: ideas are often a simplification of the robot’s actual behaviour.

For example, in order to program a simple robot (without sensors) to travel a set distance, the DC motors can be set to run for a defined period. But when the learner transfers their idea of movement to real hardware as such, they will be confronted with unforeseen aspects of the hardware, which will affect the travelled distance. For example, friction with the ground, the kind of ground (floor, sand, rocks, etc), the battery charge, etc.

The virtual-to-real problematic is a core topic of work with physical systems such as robots. As such it should not be masked or hidden from learners. Also those children who have previous experience of programming, will encounter challenges. These are caused by the innumerable differences between the virtual world of ideas and the physical world of behaviour. This is what puts the spice on robotics and it is the core idea of Embodied Artificial Intelligence. When learners are exposed to the experience of such problems, they have a chance to learn a lot about robotics. There are a number of challenges that can be used to expose learners to these difficulties. Please refer to our chapter programming robots in the classroom.

The pitfall of step-by-step instructions

. deus ex machina . by sunfairyx

Guided construction (e.g. instruction booklets) must only be used when the objective is a particular building skill. By following the set assembly instructions for a wheel, gears and axle, learners gain skills, which will be useful in their own projects. You could set the transfer of particular building skills as an objective of your workshop; and let participants build upon that for larger projects.

Dwengo advocates the use of unguided construction process. We consider this to be a necessary aspect of the development of problem solving skills. It generates a form of identification of learners with their robots and leads to a feeling of accomplishment. A good example of what children can achieve through unguided construction is shown in the video of the Dwengo ArtBots camp, the international robot week and CErrobotics.

Software abstraction

Whether or not to abstract the hardware depends on the goals of the planned activity. If the virtual-to-real transfer plays a big role in the planning, some abstraction is needed in particular aspects of your robot programming library. The teacher brings the focus to the specific logic of the robot. This will expose the learners to the actual mapping between their abstract ideas and the specific hardware. They should be able to implement their ideas independent of the hardware used. A layer of abstraction may be included for the participants.

A simple example illustrating this trade-off is the following participant's statement: I want that my robot turns to the left. This behaviour can be abstracted by a function turn() with a parameter degrees. This function assumes that the participant is using mobile robots with fixed hardware (e.g. wheel size,...). If we want to expose participants to the virtual-to-real problematic, we better use a function that sets the rotational speed of the individual motors. The code below shows the implementation of this function in the Dwenguino library

  1. void DCMotor::setSpeed(int speed){
  2. if (speed > 255) speed = 255;
  3. if (speed < -255) speed = -255;
  5. if (speed >= 0) {
  6. if (currentSpeed < 0) { // if speed abruptly changes rest 1 ms
  7. digitalWrite(_motor_DIR, LOW);
  8. analogWrite(_motor_PWM, 0);
  9. delayMicroseconds(1000);
  10. }
  11. digitalWrite(_motor_DIR, LOW);
  12. analogWrite(_motor_PWM, speed);
  13. } else {
  14. if (currentSpeed > 0) { // if speed abruptly changes rest 1 ms
  15. digitalWrite(_motor_DIR, LOW);
  16. analogWrite(_motor_PWM, 0);
  17. delayMicroseconds(1000);
  18. }
  19. digitalWrite(_motor_DIR, HIGH);
  20. analogWrite(_motor_PWM, 255+speed);
  21. }
  22. currentSpeed = speed;
  23. }

I can do this!

The relevance of the learning-aspects described above depends on the learners as well as the goal of the lesson. No single aspect is intrinsically more important than others. It is for you to decide, based on what you want to achieve and your assessment of the needs and level of your group. In order to reduce the level of challenge, the teacher must simplify the virtual-to-real problematic rather than increasing the amount of guided construction.

Reinforcing the I can do this attitude is very important! That is, by the end of our activities we want that the participants realize that they can tackle open-ended, difficult problems and that it is up to them where they can go. In sociological terms this is called agency and we find it an important result of our workshops. We have noticed that to achieve this result unguided design is crucial. Consequently, if you were to remove something, you should simplify the virtual-to-real problematic, rather than increase the amount of guided construction.