Keywords

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

1 Introduction

There is an open debate on different strategies of educational robotics [1]. It has become a common practice to engage novice engineering students in projects focused on learning-by-doing activities of robot construction [2]. Constructivist educators point to the need to deepen learning-by-doing toward learning-by-thinking activities of selecting, organizing, and integrating knowledge [3]. Educators and researchers call to implement alternative approaches that will make robotics an attractive and meaningful subject for different learners [4].

In this paper, we propose and explore an approach in which the challenge of implementation of robot learning is used to inspire students’ thinking. Accordingly, the student is assigned to implement a robot task in which the desired robot behavior cannot be preprogrammed, but has to evolve during its autonomous operation. In such a project, the student learns how to teach the robot to learn. This brings the student closer to the frontier of robotics and AI research, as development of learning capabilities of autonomous robots is one of the challenges faced by robot intelligence technology.

Robot competitions are an effective way to promote research in this area by posing standard benchmark problems in a real-world context [5]. One example of such a competition is the FIRA HuroCup, which poses a number of challenging tasks to be performed by humanoid robots. The goal of combining different tasks in the HuroCup is to avoid exploiting narrow specialized hardware solutions and encourage development of more sophisticated AI-based solutions [6].

One of the main problems in the HuroCup is keeping the humanoid robot stable throughout the tasks. This problem becomes challenging when the robot has to lift and carry unknown weights. Weight lifting is a benchmark problem of humanoid robotics that has been studied in general and in the HuroCup context, based on an analytical approach [7]. The analytical solutions cannot take into account all factors influencing the robot stability in the real world. They also tend to be mathematically complicated and difficult for understanding for novice students.

The project performed by our students addresses this problem by taking the empirical approach based on robot learning through self-directed experiments and basic analytical analysis. The humanoid robot implements a robot learning procedure to experientially determine a right posture for lifting a given weight.

This project is the first step of our ongoing educational study aimed to develop a strategy for engaging novice engineering students in an experiential inquiry into robot learning. The questions we asked at this step were as follows:

  1. 1.

    Can the chosen Bioloid kit be used to support student experimentation in robot learning?

  2. 2.

    What skills can students learn through such experimentation?

  3. 3.

    Can a project that focuses on robot learning foster students’ awareness and understanding of learning?

The project was conducted at the Technion Center for Robotics and Digital Technology Education (http://edu-tech.technion.ac.il/). The participants were two female students, a freshman and a sophomore, majoring in mechanical engineering at MIT. They came to the Technion in the framework of the MIT international student internship program MISTI (http://misti.mit.edu/student-programs/internships).

In the following sections, we will present the project and the conclusions that we made with regard to the above questions.

2 Pedagogy of Robot Learning

The starting point in our project was the discussion of how people learn [8]. We considered the constructivist approach to education and how it can be interpreted in the context of robot learning. The following features of learning were emphasized:

  • Learners are not passive recipients of information. They construct their knowledge through activities and interaction with the environment.

  • Learning includes receiving, retaining, retrieving, and processing information.

  • Knowledge is constructed in the form of internal (mental) representations of information from the environment with inferences about its meaning.

  • Learners update the internal representations in light of new experiences.

  • Learning leads to and is expressed in changes in learner’s behavior.

  • Learning is determined by the activity, its context, and outcomes.

  • Learning is shaped through social interaction and discourse.

  • While the learner is responsible for acquisition of knowledge, the teacher’s responsibility is for creating a safe environment for learning.

One more educational concept that was discussed with the students was the concept of experiential learning. According to Kolb [9], experiential learning is the process in which knowledge is developed through four stages: concrete experience, reflective observation, abstract conceptualization, and active experimentation. The learner experiences a situation and then reflects on how he can use this experience to gain knowledge and a greater understanding of the world. This reflection motivates the learner to conceptualize a new idea or to change his previous understanding of a concept. The learner then applies these abstract concepts to the world around him.

In this project, we guided the students to apply the discussed educational concepts to the design of learning behaviors of the robot. For robots, experiential learning is necessary to adapt to unfamiliar situations and to react to changes in known situations and their environment [10]. In robot learning, machine learning is combined with robotics in an effort to impart upon robots cognitive and decision-making skills similar to those of humans. While there are many different ways to implement robot learning, our study focuses primarily on adaptive learning through experience. This involves the robot using trials to gather data to better understand how it should interact with its environment.

Specifically, we explore the task of weight lifting in which the robot is performing a series of trials to lift unknown weights. This task is especially topical for humanoid robots, as it severely undermines the stability of the robot that depends on the complex dynamics of the entire robot’s body [11].

3 Robot Development

The humanoid robots in this project were constructed using the ROBOTIS Bioloid Premium kit (http://en.robotis.com/index/product.php?cate_code=121010). From our experience [12], the kit is a suitable platform for rapid prototyping of humanoid robots. This practice opens opportunities for students, even novices, to explore advanced concepts in robotics that have previously only been available to professionals.

3.1 Construction of the Robot

Following the instructions in the kit manual, the students constructed a humanoid robot with 18 servomotors, an IR sensor, an accelerometer, and a sound sensor (Fig. 1a). The code provided by the company included some basic preprogrammed movements, such as walking and standing up. Additional motions were programmed using the RoboPlus software. To enable communication between the robot and the remote computer, the students used the ROBOTIS BT-210 Bluetooth module. They developed the necessary software for the remote computer as a Python script.

Fig. 1
figure 1

a The humanoid robot and b the virtual model of the robot

3.2 Development of the Virtual Robot

A virtual model of the robot was developed using PTC Creo Parametric CAD modeling software (http://www.ptc.com/cad/3d-cad/creo-parametric). We imported into Creo the CAD models of the Bioloid parts available on the ROBOTIS Web site and assembled the virtual robot in the same way as the physical one. The completed virtual robot’s joints were assigned the same range of motion as the physical robot. The virtual robot can thus serve as a useful instructional tool in learning to manipulate the physical robot. The Creo-based virtual model, used for the analytical analysis of robot stability, is presented in Fig. 1b.

3.3 Stability Analysis

A simplified model of the robot was used to analyze the stability of the robot holding different weights. In this model, the robot is represented by six blocks, each containing several motors and regarded as a point mass. The horizontal distances between the center of mass of each block and the edge of the robot’s foot were measured in the position shown in Fig. 1b. The moment about point A was calculated as a function of the tilt angle of the robot. This simple analytical analysis allowed us to estimate the critical angle at which the robot would fall over for any given weight.

The critical angle α can be found from the equilibrium condition about point A:

$$ M_{A} = 0 = T(L\,\sin (\alpha ) + x_{i} ) + 2m(d_{1} + d_{2} + d_{3} + d_{4} + d_{5} + 2L\,\sin (\alpha )) + P(d_{6} + L\,\sin (\alpha )) $$
(1)
$$ \alpha = \sin^{ - 1} \left( {\frac{{ - (Tx_{i} + 2m(d_{1} + d_{2} + d_{3} + d_{4} + d_{5} ) + Pd_{6} )}}{L(T + P + 4m)}} \right) $$
(2)

where m is the mass of each motor, T is the mass of robot’s torso (g), P is the mass of plate with added weight (g), L is the distance from hip rotation to CM of torso (m), and d1–d6 are distances from edge of robot’s foot to the 6 blocks (m). The calculated angle value α is used in the analytical solution.

4 The Experiment

In the experiment, the robot learns to select the best posture to lift a given weight. During this learning process, two modes of operation are applied. In the data gathering mode, the robot experiments with lifting unknown weights, while each experiment is logged in the remote computer. In the advising mode, the robot tries to lift a measured weight by setting its standing posture following an advice from the remote computer.

4.1 Data Gathering Mode

In this mode, the robot tests its ability to hold a measured weight at various postures of body tilt angle. The robot evaluates its success or failure and sends the test results to a remote computer database. In each discrete experiment, the robot is given an unknown weight, while sitting down. As the hardware does not provide means to measure the weight directly, the measurement is carried out indirectly. We found that when the motors are idle and loaded by an external torque, the angular velocity of the motor axis is roughly proportional to this torque. Based on this finding, we act in the following way. The robot first records the original angle of the two motors in its shoulder joints and then makes those motors idle for a specific time interval (half a second). It then measures the new angles of the motors and calculates the resulting angle displacements. Using the mentioned proportionality, the robot calculates the amount of weight that it holds in its hands. After that, the robot performs weight lifting trials for body tilt angles ranging from 10° to 40°, each time attempting to stand up from the sitting position. Success or failure of each trial is self-evaluated by the robot. Here, success means that the robot succeeded to stand up holding the weight, while failure means that the robot falls over. The robot recognizes falling using an abrupt change in the values in its accelerometer.

A remote computer interacts with the robot and performs data collection, processing, and analysis. Following repeated trials, data for varying angles and weights are sent via Bluetooth to the computer and populate a database. The data sent after each trial include the weight lifted, the tilt angle taken, and the status of success or failure in performing the task. The trials are plotted on a graph, which has weight on the horizontal axis and tilt angle on the vertical axis. In such graph, ‘×’ marks represent failure and dots represent success, as shown in Fig. 2. For example, the dot at 174 g and 24° represents a trial where the robot succeeded to lift a weight of 174 g at a tilt angle of 24°. On the other hand, the ‘×’ at 210 g and 10° represents a failed attempt to hold 210 g at a tilt angle of 10°.

Fig. 2
figure 2

Graph of a sample gathering data experiment

The graph is automatically updated each time the robot completes a trial. On the same axes, the script plots a function that describes the relationship between the critical angle α and the weight.

4.2 Advising Mode

In this mode, the robot just measures a weight and sends the value to the remote computer. The computer uses the empirical data of robot trials, accumulated in the database, together with the analytical solution, and sends a recommended tilt angle to the robot. The robot uses that tilt angle in a trial and determines its success or failure as described above. It sends the result of the trial to the computer, to be added to the database. Figure 2 presents sample data collected from one experiment involving 31 trials and the calculated angle weight dependency. One can see the discrepancies between the analytical and the actual successes and failures. Some of the experimental results presented in Fig. 2 appear to be duplicate measurements of roughly the same weight, for instance at an angle of 10° and a weight of 90 and 100 g. This occurs because of inaccuracies in weight measurement done by the robot.

The data gathered in Fig. 2 were used to advise the robot, and the results of 10 trials in advising mode are shown in Fig. 3.

Fig. 3
figure 3

Graph of a sample advising mode experiment

The advising algorithm had an 80 % success rate, and we can see from the graph that the advice improved as the robot provided feedback on the previous advice. For example, we see the ‘×’ at a weight of 334 g and an angle of 17°. After this failed trial, the robot was given the same weight again. It measured the weight as slightly heavier (374 g), but the robot successfully held the weight because it increased the angle to 20°, as we can see with the dot at that point. The advising algorithm was 100 % successful for weights within the range for which the robot already had gathered data (0–300 g). The only failures occurred for weights that were beyond this range (334 and 443 g).

5 Discussion and Conclusion

Back to the first of the three questions posed in Sect. 1, the study shows that the humanoid robot constructed from the ROBOTIS Bioloid Premium kit can be used for experimentation in robot learning. To implement the robot learning project described in the previous sections, the basic platform of the Bioloid kit can be enhanced by the addition of the ROBOTIS BT-210 Bluetooth module and a remote computer used for data storage, analysis, and communication. We found Python to be an effective programming tool for this remote computer. The robot adapts its posture through the experiential learning cycle. At the concrete experience step, it gains experience by gathering experimental data through trials of lifting different weights. At the reflective observation step, the robot records and communicates to the computer information about successes and failures of the trials. At the conceptualization step, it receives from the computer results of data analysis, based on the comparison between the experimental results and the analytical calculation. Lastly, at the active experimentation step, the robot takes what it has learned from its past experiences and accordingly adapts its behavior.

To summarize, laboratory experiments confirmed that the robot is capable of improving its posture to successfully perform the weight-lifting task.

Regarding the second question, our follow-up showed that the project strongly engaged both students and exposed them to different areas of modern engineering that were new for them and are traditionally introduced in advanced studies. The students learned and applied concepts in robot control, remote communication, CAD-based analysis, human–robot interaction, and others. They acquired skills of engineering experimentation in determining basic mechanical properties such as center of mass, torque, and balance. They performed analytical calculations, compared results to the actual experimental results, and discussed discrepancies. The students developed skills of computer and robot programming. They got practical experience in presenting the main ideas of the project to robotics researchers, professional engineers, and school students.

To the third question, the study gave indications of an increase in students’ awareness and understanding of learning following their participation in the project. The students implemented the discussed features of learning in the robot behavior and designed the experiment as an experiential learning cycle. The students presented their project to a group of 34 American high school pupils participating in the Technion international summer outreach program. They also developed an instructional unit on the subject.

The presented educational experiment is the first step in developing a strategy for engaging novice engineering students in an experiential inquiry into robot learning. Following its positive results, the authors plan to develop a curriculum to expose advanced high school students to robot learning and basic engineering concepts.

The robot learning experiment can be enhanced by using an Internet-of-Things platform to facilitate Web-based communication between multiple robots and a shared database. Further stability analysis can be performed with the virtual robot and CAD software.