Glad you enjoyed it! I don't have plans to make more and sell them, but the robot is safe–like I mentioned in the other comment it actually moves slower than the speed it does in the video and the servos aren't powerful enough to significantly injure someone.
I considered moving pieces via magnet underneath the board as well, but decided to go with the arm to remain more true to the original Turk. The robotics was the hardest part of this project for me since my experience is software not hardware, but I found the resources on the ServoCity website to be incredibly useful.
The error was too high so I haven't integrated it into the actual code base yet, so it hasn't been a problem in practice yet! Ha. Yes I think the best thing I can do will be to collect more data, I am hoping that will close the gap a bit more. Also, I haven't spent that much time tuning hyperparameters.
Ah yes clearance height is the same for all pieces, the servo raises the piece to the piece height + the "resting" height. Relevant code can be found here:
Can you comment on the safety aspects of the design? It seems possible that the robot arm could collide with the arm of the human player, or that an unlucky player's finger could get caught in the robot's elbow joint as it closes.
The design of the system requires the player to put their hand in the robot arm's work envelope in order to make a move, so in order to follow your advice one would have to avoid playing the game, which seems a shame.
The robot actually moves much slower than the speed in the video, so it would be hard to get caught without trying. The servos are also weak enough that they wouldn't be able to really hurt you.
Unless it's a physical limitation of the motor, "moves slowly" is still risky, because a programming error could cause the robot to move unexpectedly quickly in an unexpected direction! But "motor too weak to cause injury" is a good safety feature.
The project looks really nice in the videos, by the way — it must have taken a great deal of effort to get it working so smoothly.
Thanks! No at the moment the robot just places it's pawn the last rank. You have to watch the status page on screen to see what it promoted it to. Definitely need to come up with a better way to do that.
It's still much better than pasting HTML and/or JavaScript taken from a random website all over the computer screens. It's the most common "code" I see in the movies and TV series made in this decade in last 10 years.
I tend to agree with the article. I am a senior, studying computer science and also a tutor at the engineering building on campus. The large majority of students that come in and need help are from the CS1 and CS2 classes. It's really frustrating for me sometimes because these students typically know very little about how at program and they are asked to make decently large/complex programs. As a result they all think programming is this insanely hard field that only geniuses can understand. I tell them that learning programming is like learning a language, to someone that doesn't understand it or is learning it it looks like gibberish. However once you get it, it's just like reading. Unfortunately, most of the students don't believe me and end up not continuing CS.
In addition, at my university I feel like the majority of students who are in the upper level classes with me (CS majors past their second year) got credit for the intro courses in high school. The way I interpret this is, it is a lot more likely for students to continue study CS past the first year if they take high school CS, which is a longer slower moving intro CS course.
I think the intro courses need to be much easier. They are discouraging too many smart students!