Co-operation robot that shares a physical workspace with humans.
What if you had a robot on the whiteboard in your office or school, which can join a discussion via drawings?
So far I built the end-to-end PoC robot which can recognize what you drew, and react by drawing something, by using both the geometry and meanings of the drawings in the Tic-tac-toe game task.
| Power supply | DC12V |
|---|---|
| MCU | Raspberry Pi 2 or laptop PC |
| auxrary controller | ATmega328 (Arduino nano) |
| arm actuator | KONDO robot servo KRS-5000 series |
| pen holdeer actuator | R/C servo MG90 |
| Sensor | USB video camera |
Parallel link arm assembly, similar to Table Hockey Robot.
2 KRS-5000 servos are used.


The pen holder is attached to the vertical linear slider.
The R/C servo moves the pen up and down using the cam mechanism.
Pre-tensioned spring (rubber band) is used for stabilizing the contact force applied to the tip.
The parallel link mechanism model: the endeffector position (x,y) is determined by two joint angles.
This kinematic model parameters of the robot is calibrated based on sampled points:
Attach optical marker (a rod with color circle) to the pen holder, so that the robot can observe endeffector position using the camera.
(description picture with the similar robot that has same geometry)
collect the pairs of (joing angles, endeffector position).
The 12 parameters are decided to minimize RMS error of the end effector between marker observation and the model forward kinematics based on the servo joint angle.
for Tic-tac-toe:
The grid can be drawn either by the robot or the human player.
THEN the robot recognizes the grid by: 1. detecting lines by Hough transform 2. finding four crossing points 3. computing perspective transformation
then the robot can deal with arbitrary size/skewed shape of the grid by 3.
The targeted area for the next step, symbol recognition, is normalized for the size by this information.
(notice that the recognized symbols are rectified in the image below)
recognizes circles and crosses by: