Robot Copycats (or Matching Graphs)

I knew from their graph what would happen, but didn’t say anything. I didn’t have to. When the students saw the robot go fast, then slow in segments 2 and 3, they commented “It’s opposite.” … And sure enough, they were then able to correct the issue themselves with no intervention from me.

This summer, I reprogrammed the Scribbler 2 Robot from Parallax Corporation to be a physics apparatus.  (I intend the robot project itself to be the subject of a future blog post.). In this post, I describe three similar lab-practical exercises with the robots. In all three tasks, students programmed a robot with a graphical user interface so that it’s motion matched another robot. In the first, students programmed their robot with a position vs. time graph so that it matched one programmed by me. In the last two exercises, they programmed a robot with one graph (position vs. time or velocity vs. time) and the second robot with the other.

Each lab in the sequence also carefully introduced one additional concept for students to add to their pre-existing mental structure. The first task was student’s first encounter with motion in the negative direction, so the term velocity was introduced in the post-lab discussion and distinguished from speed. The second task challenged students to use a velocity vs. time graph for the first time. The third task provided more practice with velocity vs. time graphs and also introduced the concept of area under the curve. The whole sequence took six 45-minute periods of class time. The principle of introducing new information in carefully graduated amounts is another feature that distinguishes modeling instruction from teaching methods that would instead introduce all these ideas at once.

These types of exercises where students must change representations, for example here from position to velocity graphs or vice-versa are powerful tools for revealing whether students have built a coherent model of the phenomenon.  If students work primarily or exclusively with just one representation – and most commonly in physics classes this is equations – then the work can easily become rote and mechanical. Using the robots, students are maintaining a strong connection to the motion itself while changing representations.  When their graphs didn’t match, the conversation about how to fix it was never confined to language about the graphs, as in “When this graph has a slope, this graph is horizontal.”  Even their graph-matching mistakes generated further discussion about how the graph related to the observed motion.

Lab Practicum 1: Using a Position vs. Time Graph to Match a Pre-programmed Robot
(introducing velocity)

I programmed each group’s first robot to go forward and back at different speeds and for different times and stop in the middle, and I broke the student’s task down into three phases. First, they had to program their second robot with the correct graph shape (so that it went forward and back, fast and slow and stopped in the same order as the first one, without necessarily matching it exactly). Second, they had to get their second robot to match the first one exactly by taking the smallest possible number of measurements. Third, they had to calculate the slope of each graph segment, with units, and show the graphs and calculations on their whitebaords. The following videos and graphs document one group’s problem-solving process. (I described the graphical user interface and the simple process the students use to program the robot in a previous post.)

  1. Graph shape test.  Notice that the two robots do the same actions in the same order, but the timing and speeds are not identical.  
  2. Quantitative test. (The initial picture is the position vs. time graph the group used to program the robot.)

Here’s the quantitative test for a second group

and a comparision of their shape-matching graph and their final quantitative graph.

The full class discussion adhered to the principle of concept first, name afterwards, as the students calculated the slope, found it to be negative, and explained that this meant the robot was going backwards. Only after contrasting this with the speed, which is always positive, was the term velocity introduced. In addition, I also had each group run their robot for the class so that the rest of the students could vote on which graph from the set below matched the observed motion. This generated several productive discussions about how to tell which graph shape matched which motion. Students were also sharpening their observation skills in a way that just doing a textbook exercise and describing the motion in words cannot do.

Task 2: Position vs. Time Graph to Velocity vs. Time Graph
(introducing the velocity vs. time graph)

When their graphs didn’t match, the conversation about how to fix it was never confined to language about the graphs, as in “When this graph has a slope, this graph is horizontal.” Even their graph-matching mistakes generated further discussion about how the graph related to the observed motion.

I instructed students to program one of their robots with a complicated 4-segment motion using a position vs. time graph. Their task was to program their second robot using a velocity vs. time graph so that its motion would exactly match the first. Once again, I suggested matching the graph shape first, although most groups calculated the slopes of their position vs. time graph first and used that information to help construct the velocity vs. time graph. Here are graphs and video documenting one group’s problem-solving process.

  1. This graph shows the position vs. time graph the group created for their first robot.
  2. The thumbnail of the video below is the velocity vs. time graph the students used to program the robot. The video compares the resulting motion of the two robots. Notice that the first segment of the velocity vs. time graph slants upwards, making it a copy of the position vs. time graph. In fact, the entire velocity graph is a copy of the position vs. time graph with the exception of the second segment, where the students realized that the velocity must be zero if the robot is not moving. The students were surprised that copying the graph did not lead to matched movements. It is my hope that this experience will serve as an anchor helping to rid them of the graph-copying misconception, which in past years I have found to persistently linger for most of the year for many students.
  3. Here, the student’s were just testing the first segment.  Their idea was to try a downward-sloping line, since the upward-sloping one did not work. The thumbnail below shows the velocity graph, and the video shows the resulting motion. They noticed that the upward-sloping line made the robot speed up and the downward-sloping line made it slow down. This led to an examination of how graphing velocity was different than graphing position and finally to the correct graph and test.
  4. This group was able to get to the correct idea themselves by generating and testing hypotheses and discussing with each other, so I did not have to talk to them much after the successful test, as they had all been involved.  I witnessed the tests, but did not otherwise offer suggestions or guide them through the process. With other groups, one individual would make more of the intellectual leaps or do more of the work and I had to make sure that all the group members understood why the segments on the velocity graph had to be horizontal. There were also one or two groups that needed a lot more guidance from me. I’ll write more on these groups in another blog post.

This process was a typical of the stages every group had to go through before finally figuring things out, although one or two were able to discard slanted segments in favor of horizontal ones without first doing a test, and most groups did not have to test both upward and downward sloping lines before reaching the correct conclusion.

Task 3: Velocity vs. Time to Position vs. Time
(introducing area under the curve)

I would not have dared give students this varied and complex of a set of graphs as homework in previous years. They would have found it overwhelming. In this context, it was a straightforward exercise.

This time, students programmed their first robot with a complicated four-segment velocity vs. time graph, and then had to program their second robot with a position vs. time graph. Since they already had some experience with both graphs, the problem-solving process was smoother. Here’s one example.

  1. The velocity vs. time graph GUI does not allow students to send a graph to the robot if it contains a vertical segment. The students must make these segments almost, but not quite vertical. This led to some practical discussions of what this meant. In homework problems, the segments are usually drawn completely vertically, which is confusing to some students because it is physically impossible.  By introducing the velocity vs. time graph with the GUI and robot, this issue was cleared up for everyone right from the start.  Here’s the velocity vs. time graph one group sent to their first robot.
  2. At the end of this video, the students explain how they matched all but the last segment on their first try. (The thumbnail is the position vs. time graph that they sent to the robot.) 
  3. And on their second attempt, they nailed it. 
  4. The students had already worked out the calculation with units on their board. In full class discussion, we identified the result as change in position and not distance or position by looking at all four segments. To introduce area under the curve, it was only necessary to identify the area with the calculation they had already done and (hopefully) already understood.

Here’s a second example.  This group ran into another issue along the way, but pretty much resolved it themselves.

  1. Velocity graph for first robot. Notice in segments 2 and 3 that this robot will go slow, then fast.
  2. The thumbnail for the video below is the position vs. time graph this group sent to their second robot.  I knew from their graph what would happen, but didn’t say anything.  I didn’t have to.  When the students saw the robot go fast, then slow in segments 2 and 3, they commented  “It’s opposite.”   
  3. And sure enough, they were then able to correct the issue themselves with no intervention from me. 

To conclude the full class discussion, I had the students draw the shape of all of their velocity vs. time graphs from the previous two practicums on the main board. Each group then went up to the front of the room and picked a student from the class to describe the motion that went with each of their graphs. Most of the students selected could explain the motion, although in one case a student was caught who could not explain the motion due to a fixation on the vertical rather than the horizontal segments on the graph. He was willing to actually go to the front of the room so he could point to different parts of the graph as he tried to explain it. The class was able to help him out. I’m not sure he understood completely by the end, but he had made progress. I suspect in this case that the student had been too passive during the group work (or else his lab partner had been too active and come up with all the answers without letting him participate).  I was going to intervene with this group by discussing the issues, but one of the students was absent the next day for a sporting event, and that led to a more natural reshuffling of groups, which will hopefully resolve the issue.  I plan to keep watching both students now.

“If it’s above the line it’s going forwards. If it’s below the line it’s going backwards. If it’s on the axis, then it’s at rest.” Nice!

In another section, a student was more open about not understanding the graphs, so the class helped her through in a more cooperative manner, resulting at one point in the terse explanation, “If it’s above the line it’s going forwards. If it’s below the line it’s going backwards. If it’s on the axis, then it’s at rest.” Nice!

Here is the set of graphs from one class. I would not have dared give students this varied and complex of a set of graphs as homework in previous years. They would have found it overwhelming. In this context, it was a straightforward exercise.


Last March, the idea to use programmable robots in my physics class was just a glimmer of an idea, and I was not at all sure that I could pull it off.

Last March, the idea to use programmable robots in my physics class was just a glimmer of an idea, and I was not at all sure that I could pull it off.  It took a great deal of work, and I have to say I’m pleased with the results so far. All of the class activity to date have been labs or lab practicums with the robots. The students haven’t encountered a single programming bug that I can recall.  This alone is amazing for such a complex programming project, and unprecedented in my experience.

Since the robots are able to perform even the most complex motions that students previously encountered in written work, all of these exercises can now be translated into the lab. I did not expect the robots to be working so well that I would choose to use them entirely, but each step of the way it was obvious how they could be put to use.

One goal was to enable students to work more independently, generating and testing their own hypotheses, and checking their understanding themselves in the lab, rather than have me grade or check exercises. The robots have definitely enabled this to happen. I plan to turn them loose even more now that they are comfortable working with them. Using my graphical user interfaces, the robots can only perform step-function constant acceleration motions. This sets limits on the motions the students can investigate. Within these boundaries, they are safe to explore independently and test their own ideas. The robots are thus the first step in creating a physics microcosm.

In past years, students worked problems similar to these lab practical tasks on whiteboards in class or for homework, but by programming and observing the robots students forged a stronger connection between an observed motion and its graphical representation. In addition, the breakdown of the task into graph shape and quantitative parts was something I was trying for the first time this year. In past years, I had observed students, especially those with a weaker mathematical background, coping with this or similar tasks by mechanically performing microscopic second-by-second calculations. They would construct the graph point by point, but never elevate their understanding to see a graph as a whole and understand the motion. The standards by which student’s would be graded on the upcoming quiz mirrored the instructions for the task. One standard is qualitative and involves matching motion and graph shape. The second standard is quantitative and involves finding the slopes and areas.

17 thoughts on “Robot Copycats (or Matching Graphs)

  1. John Burk

    I’m astounded by the precision you’re getting from these robots and the graphs they are producing. But I feel like I’ve read that there is some value to students trying to match these motion graphs by walking them themselves. I would be very interested in seeing some sort of comparison on learning outcomes for students who do graph matching with robots vs just walking the graphs.

    I also really like that the program doesn’t allow for instantaneous velocity changes. It seems like that gets you into talking about the validity of the model right away.

  2. aphysicsmicrocosm Post author

    Hi John,
    I completely agree about the value of graph matching with the motion detectors and students actually doing the walking. No reason you can’t do a little of both types of exercise, and I think you should.

    I also agree that these initial results with the robots are promising enough that they deserve a larger, more organized study where we’ll learn things like what their limitations and also areas where they are useful.

    In fact, the robots are capable of an acceleration so fast that it would appear as a perfectly vertical line within the pixel resolution of a computer screen. I purposely limited the acceleration allowed by the GUI so that it would appear slightly slanted. I’ve also found that students are often confused by those vertical segments in textbook or worksheet problems, and I’m sure this feature brought those misconceptions out into the open for discussion.

    Discussing the (almost) vertical segments with my students became the seed of the idea to change my introduction to constant acceleration motion, which I’ll describe later.

  3. Thomas Hefner

    I wish you would have posted this a few days ago. This gives me even more thoughts and ideas on my grant I am applying for to purchase 2 robots. Alas, I submitted the grant before I read this post.

    Having students match an x-t to a v-t graph is a wonderful idea. I am sure it is very apparent if the graphs don’t tell the same story when the robots begin moving.

  4. Peter Sullivan


    Very interesting stuff. I’m wondering how one goes about buying/getting the “programing” interface you’ve talked about – using graphs to program the robots. i don’t really know programming, but these robots look like an awesome addition for my classroom. Are the details downloads linked or written up to somewhere? Thank again for the cool idea.

    1. aphysicsmicrocosm Post author

      Hi Peter,
      When you order a robot from parallax, get the S2 robot with USB cable and adapter.,ProductName .

      Item code 28336

      This will come with the USB cable and a serial-to-USB adapter so you can connect a computer to the robot.

      The software took me more than two months of more than full time work to develop and test. That includes learning enough about robotics to figure out that this is the one that had the necessary hardware, sensors, electronics, microprocessor, etc, learning two new programming languages, rewriting the motor driver that came with the robot to make it precise enough for this purpose and writing the GUI’s for the students to interact with the robot. So far – cross my fingers – my students have not encountered any bugs in operating the software, and the software and robot have been precise and reliable.

      There are a few teachers who’ve contacted me about writing grants to get robots, and I’ve told them I would sell a site license for my software for $30. I know that’s inexpensive, but right now, I’ve got working programs that run on recent versions of windows only, and no actually installer. You copy and paste the files into your Program Files directory and then manually place links on your desktop. I’m also a working full-time teacher and not a software company, so don’t have the time and resources for support and further development that a company would have. I will try my best to keep up with users and provide support until something better can be arranged.

      If you order a robot (I recommend two so you can do graph matching) and want the software, just let me know and we’ll work it out from there.


      1. uniformaccel

        Hi Matt,

        I was thrilled by what I’ve read on your blog and the videos you posted. It’s just the kind of experience to make motion graphs and diagrams come alive for my students. I submitted a request based on my excitement, and I just heard that I successfully received funding for a class set of Scribbler 2 Robots.

        I’m happy to pay $30 for the software you’ve developed if that offer still stands. At the moment I have only Mac OSX based computers available. Do you know if I can “cut and paste” your code into a Mac version of the compiler? They are threatening to give us only Chromebooks next year. Do you have any idea if I can program the robots using Chrome OS and a Chromebook?

        Great work Matt!

        Thank you.


  5. Scott Hertting

    My name is Scott Hertting, I teach two levels of intro physics in Wisconsin. I have been following your posts to the modeling (and AMTA) listserv with interest. So much so that it prompted this email. The connection to the graphs is really strong. I would like to give the idea a try. When you have time, would you please send me a ‘materials list’? I’d like to know exactly what to order from the Parallax site and a few steps to get me started. Probably two robots at a minimum right?
    We have and educational foundation in my school district and I could envision writing a quick grant to get a full classroom set of equipment.

    1. aphysicsmicrocosm Post author

      Just did a little more research on this. There is a programming environment called Brad’s Spin Tool (BST) which allows programming of the propeller processor in the scribbler II from MAC OS X. Since my GUI’s first produce a spin file, and then compile and send that file along with assembly code to the scribbler II, it should be possible to open that spin file in BST and then use BST to send it to the robot. That’s an extra step for students to learn, and they’ll see the code before sending it to the robot, which could be more intimidating that just clicking on the button and having the program sent straight from the GUI. But it should work. If any of you MAC users out there want to help test this, I would be glad to work with you.


  6. aphysicsmicrocosm Post author

    Hi uniformaccel,
    Thanks for the praise about the project. Glad you like it. And congrats on the grant. Unfortunately, there is no MAC version of the software, and not likely to be any soon. The hangup is not the part of the programming that I did – the new motor driver and the graphical user interfaces for the students to create the graphs, but the set of libraries provided by parallax to interface with their propeller processor that runs the robots. For some reason, they only make a windows version of this library. So to get a MAC (or chrome) version, these libraries would have to be re-written for the different operating systems. I’m afraid that level of programming may be beyond me.

    On the forums at parallax, I read that I am not the only person with a propeller-based project who is frustrated by this, but the end-users are generally hobbyists or educators and not the people with the background to create the interface libraries.

    I’ve been communicating by e-mail with another teacher in the same situation – a MAC based school, and one workaround occurred to me. I wrote the GUI’s in python, which is designed to be portable. It runs on the MAC and I would assume it runs on chrome, although I have no experience with that. The latest version of the software (updated last month) has open and save features. It would be easy to write a version of the GUI’s that would allow students to create the graph on their own computer and save the file. You would still need a windows machine to run the GUI, open their saved file and then send the program to the robot. If you did things this way you could save a little bit by buying fewer USB/serial converters and cables, although not much. This isn’t perfect, but might work OK. What do you think?

    The alternative is to pressure parallax to write the interface libraries, try to do it ourselves, or find someone who can do it and wants to donate time. Or to completely redo the project using another processor and platform that already has an interface for MAC, chrome, etc. Each of those options is at least several weeks of full time work for me, and so not likely to happen until summer at the earliest.


    1. Elayne Grueber

      Hi Matt – I am very interested in the work that you have done with the robots. If we purchase the robots, is your programming still available to purchase also? I am also really interested to hear more about how you have involved students with the robots. Thanks, Elayne

  7. Pingback: Modeling and Robots—on a Mac! | Quantum Progress

  8. Pingback: How I got the Scribbler 2 robot with a Fluke 2 board working on Mac OS X | Fock Physics

    1. aphysicsmicrocosm Post author

      Glad you got this working! I investigated this with John Burk of Quantum Progesss this summer at physics teacher camp. We discovered that Myro was using the motor driver written by Phil Pilgrim and shipped with the S2. It could be replaced with the one that I wrote to provide more precision. Even better, though, we mapped out a tool chain whereby my graphical user interface could run on a MAC and transfer a working program straight to the robot. The robot can then run the program without needing a continuous data stream over bluetooth. Although the tool chain should work, we have yet to follow through and complete all the steps. Stay posted.

  9. Warren Collier

    I’m very interested in this and wanted to know if the software is still available and works on what version of Windows? I have Windows 7, 8.1 and Vista Business options available.

    1. aphysicsmicrocosm Post author

      Hi Warren,
      Thanks for your interest! The software is available from me for $100. There is much to report after the past year. The windows software is updated and better, I have it running on the mac, but not yet packaged as an app, and recently held a workshop for 13 teachers at NC State’s Science House. The group took a look at the full kinematics curriculum using the robots and helped improve and develop it further. TUG-K gains for myself and another teacher who used the robots and the curriculum were outstanding. Once I get settled in for the new school year, I plan to report some of this in more detail. In the meantime, if you e-mail me at with your school information, I’ll send you an invoice that you can submit to your school’s budget office for the software.

      And I currently have it running on windows 8 with no problems.

  10. shaun

    Matt, just wondering if you are still selling the site license for the software. I noticed the last post is over a year old. I’d like to buy a couple of the robots to play with, but only if the license is still available. Thanks, and I love the idea. Also, will the software work on my macbook air?
    shaun in MA

    1. aphysicsmicrocosm Post author

      Hi Shaun,
      Please contact me by e-mail with your full school address and I’ll send an invoice for the software and your school can send a check. I’ll send you the software electronically once that’s complete.
      I haven’t had time to keep up with the blog. I’m amazed at the teachers who keep up a blog regularly over many years! But the project is still alive and going very well. A 12-teacher workshop in North Carolina revised the curriculum and it underwent further revisions for our honors classes and that curriculum will be posted soon. An article appeared in The Physics Teacher last fall.



Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s