DIY Robot Arm to Play Chinese chess game with computer vision
This is my first robot project.
I choose to DIY almost all the components of this project because I live in Hong Kong. The robot community in Hong Kong is small and it is hard to find suppliers at reasonable price. Shipping cost from US to Hong Kong is expensive, if available at all. Also, I would have much better control of the overall design if it is DIY.
The robot arm is made from windows frame material. It costs about $8. You can visit my blog to check on how to make it and I will post more later.
http://hk.myblog.yahoo.com/jw!afd6dGGRHBRkp2laqwk198fg/article?mid=374
http://hk.myblog.yahoo.com/jw!afd6dGGRHBRkp2laqwk198fg/article?mid=390
The robot arm base is more complicated, it is a rotational base and it is hard to DIY without suitable bearings or turn-table components. It is not possible to get it in Hong Kong with limited budget. Luckily I found a very old second hand flat bed scanner, http://hk.myblog.yahoo.com/jw!afd6dGGRHBRkp2laqwk198fg/article?mid=342 it costs only $1.2 to get a very powerful step motor base for the robot.
The robot arm's servos are MG995/MG945, they are well known cheap servos, powerful and unstable. So I convert them to digial servo with openservo software. I will talk about it later also.
The robot gripper is a bit complicated, so I have a simple simulation and a paper prototype before I build it:
http://hk.myblog.yahoo.com/jw!afd6dGGRHBRkp2laqwk198fg/article?mid=422
To control a robot arm, you need some mathematics to plan how to move the gripper to destination, it is called Inverse Kinematics. http://hk.myblog.yahoo.com/jw!afd6dGGRHBRkp2laqwk198fg/article?mid=405
All the PC side software is developed in Python, a very good OO script language.
The robot arm has computer vision. I use opencv, it is a very powerful open source software created by Intel originally. I use it for preprocessing of the image captured by a camera mounted on top of the chess board:
http://hk.myblog.yahoo.com/jw!afd6dGGRHBRkp2laqwk198fg/article?mid=462
The project is not yet finished. Now the arm can only recognize, move to grip and release the chess pieces. I am working on the AI engine to play the chess game by rule.
Play Chinese chess game
- Actuators / output devices: Servos, step motor
- Control method: Artificial Intelligence
- CPU: atmega88/168 8MHz
- Operating system: Linux, Windows
- Power source: 7.5 V
- Programming language: C, Python
- Sensors / input devices: camera
- Target environment: indoor