Today we worked on story-telling and robot-robot communication.
One of the writing prompts for the kids was to write a bedtime story that a NAO robot would tell a smaller robot action figure. The kids had a robot tell their bedtime story, and we video recorded the results.
After the robots told their bedtime stories, we saw a demonstration of a skit involving two robots talking to each other. The two robots exchanged a few sarcastic remarks during the conversation.We broke up into groups to write conversations between robots. In one group, the kids worked together to program a conversation about the Hunger Games, and in another group the topic was on adoption of a new robot. The next writing prompt will involve having the kids write a conversation between two robots that we can then code.
We spent most of the day working on posing the robot. We created a library of gestures that we will be able to use when we make new skits. It takes a lot of work to get the gestures to time up with the speech. Using a random gesture routine is certainly easier, and will work in some situations, like when giving long speeches that don’t require specific movements. But, when the movements must be deliberate, we have to take the time to get them right.
To pose the robot, we first drag a new Timeline onto the canvas. Then we set up the keyframes to lay out the movement. The default setting for the speed of the movement is 25 frames per second. We select the initial keyframe that we want to store data regarding the position of the robot (typically frame 40). We pose the robot into the position we want it to go into, and then store the joint information at that keyframe. Then we move to the next keyframe that we want to specify the robot position, pose the robot, and store the joint information. We continue this process until we have all of the movements that go along with the dialogue that the robot will deliver as it says its lines.
On the first day, we learned how to get the robots to speak their lines, and we programmed the robots to deliver a monologue. It took some time to type out what the robot was supposed to say, and the robots could not always pronounce words correctly. Sometimes we had to intentionally misspell words in order for them to be spoken correctly.
After we got the robot to say the text, we learned how to get the robots to move. We start by turning the motors on (to engage the joints). Then we have the robot stand and deliver its lines. After it is finished, we have the robot crouch and turn the motors off. This last step is important. If the motors are engaged for too long, they will get too hot and the robot will have to be shut down to cool off.
At first, we used a random gesture generator so that the robot would move its arms as it spoke. Then we started learning to pose the robot, to create specific gestures that matched what was being said.