Skip to content

4 DOF robotic arm configured with moveit2 motion planning stack and a chess interface to play chess.

Notifications You must be signed in to change notification settings

Babak-SSH/chessaton

Repository files navigation

CHESSATON

tests

chess playing 4dof robotic arm!

Description

This ROS package contains the motion planning stack and chess interface (which uses my chess engine Kojiro) for a semi-custom 4 DOF robotic arm. The associated simulation environment in Gazebo includes a chess-board and its pieces with the same size as their real-life counterparts, and to simulate grasping, gazebo_grasp_plugin is used. The robotic manipulator hardware is controlled using micro-ros + esp32 + pca9685.

 chessaton - 4dof robotic arm playing chess (moveit2 + micro-ros)

packages

Building

Docker

cd chessaton
docker compose build
docker compose up -d chessaton-nvidia
docker exec -it ros_humble_nvidia /bin/bash

to enable Nvidia GPU:

Linux:

add this config to daemon.json which is usually located at /etc/docker/daemon.json:

{
    "runtimes":{
        "nvidia":{
            "path":"/usr/bin/nvidia-container-runtime",
            "runtimeArgs":[
                
            ]
        }
    }
}

Windows

if docker desktop doesn't look for /etc/docker/daemon.json (in wsl), add the above config to daemon.json in the Docker Desktop Settings under Docker Engine. also, to show GUI apps you will need X server.


Manual

core dependencies:

rest of the dependencies can be found in Dockerfile

Running nodes

Chess

for more refer to chessaton_chess_manager

ros2 launch chessaton_chess_manager chess_robot.launch.py engine:=kojiro

e2e4-e7e5

e1g1 (castling)

Pick & Place

for more refer to chessaton_control

Pick and Place with predefined poses

ros2 launch chessaton_control pick_place_demo.launch.py demo_program:="pick_place_demo"

Pick and Place using a depth map to avoid collision

ros2 launch chessaton_control pick_place_camera_demo.launch.py demo_program:="pick_place_depth_demo" world:=/home/ros/workspace/src/chessaton/chessaton_control/world/simple_pick_place_obstacle

moveit2

ros2 launch chessaton_moveit_config chessaton.launch.py use_camera:=false