Skip to content

ntu-maerc/i3-AY2122Sem1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Projects at NTU MAE Robotics Club

  • Part of an NTU MAERC initiative

Intermediate Group 3

  • Repository for Intermediate Group 3 to build code!

Automated Chess-played Robotic Arm

Project Description

In this project, an automated chess-played robotic arm was built to compete and play against humans physically so that the player can achieve the real experience even when playing it individually. We decided to go for a full simulation of a chess-played robotic arm as a proof of concept which could be potentially be further developed into the real physical chess-played robotic arm.

Here is the overview of the automated chess-played robotic arm with the chessboard

Screenshot 2021-11-15 023345

This automated chess-played robotic arm is built from scratch with the help of various open source contributors. Although we might not be able to achieve the perfect chess-played robotic arm, we hope that this could help others as well.

Below we will discuss briefly each part of the Chess-played robotic arm. Further details will be discussed inside the folder together with the issue that we encounter that could be improved further.

  1. Environment

    a. gripperone --> gripperone_description

    Our robot is called "gripperone" and in this folder, it contains the meshes and urdf/xacro file of the gripperone robotic arm. This folder also provides a launch file for both in Rviz and Gazebo.

    To launch the robot in the gazebo, open a new terminal and run the command below

    $ roslaunch grippperone_description gazebo.launch
    

    b. chess_environment

    In this folder, it contains the sdf file of the chessboard. The full environment of the robotic arm and the chessboard can be launched from here as the gripperone robotic arm has been included in the test.launch

    $ roslaunch chess_environment test.launch
    

    c. camera

    Then the camera plug-in is attached to the gazebo which will be used to detect the player's move.

    Launch a terminal and run the command below to launch the camera

     $ rosrun gazebo_ros spawn_model -file ~/catkin_ws/src/camera/camera.urdf -urdf -x 1.18 -y 0 -z 2.5 -R 3.14 -P 1.57 -Y 0 -model camera1
    
    Screenshot 2021-11-15 193049

    The command above will only launch the camera but not capture it. To able to retrieve the image of the chessboard, launch a new terminal, go to your camera directory and run the command below.

     $ python3 image_converter.py
    

    This python script contains a code where it could retrieve and save the image of the current chessboard directly to your robot_driver folder which will be processed further later on.

    Image Retrieved:

    Screenshot 2021-11-15 211220 Screenshot 2021-11-15 222503
  2. controller

    We have all the environment set up in the environment folder, this controller will be used to control the movement of the robotic arm.

    Screenshot 2021-11-15 230917

    In this controller, we provide two ways to send the commands to the robotic arm:

    1. Specify the position of each of the joints: To enable this, go to ros_controller.launch file under launch folder and make sure it loads the "controller.yaml" controller.

        <rosparam file="$(find GRIP)/config/controllers.yaml" command="load"/>
      
    2. Send a position for the end-effector:

      To enable this, go to ros_controller.launch file under launch folder and make sure it loads the "ros_controllers.yaml" controller.

       <rosparam file="$(find GRIP)/config/ros_controllers.yaml" command="load"/>
      

    In this controller launch file, it could launch the Rviz and Gazebo simultaneously. The Rviz will be beneficial during motion planning and also scripting.

    Screenshot 2021-11-15 230626

    To launch this, open new terminal and run the command below:

       $ roslaunch GRIP ros_gazebo.launch
    
  3. robot_driver

    This is the vision and brain of the "gripperone" robot, where it utilizes image processing as it vision to recognize player's move and also chess AI algorithm as it brain to calculate the next best move.

    The output of the chess AI move will then be sent to the robotic arm motor driver to move the chess in the desired position.

    Screenshot 2021-11-16 192232 Screenshot 2021-11-16 192255

    In order to run this chess AI script, launch a new terminal and run the command below

       $ rosrun robot_driver Chess_AI_ImProc_test.py
    
  4. grasp_demo.py and gripperone_moveit.py

    Both python script is used to test the movement of the "gripperone" robotic arm controller.

    To run this script, can run the command

        $ python3 grasp_demo.py
    

    or

        $ python3 gripeerone_moveit.py
    

Steps to clone the repository

  • Launch a terminal and run the command
$ git clone https://github.com/ntu-maerc/i3.git 

About

Repo for Intermediate Group 3

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •