chess playing 4dof robotic arm!
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_description : robots urdfs and base configurations
- chessaton_moveit_config : chessaton moveit2 stack
- chessaton_control : a group of interfaces to control the arm and some demos of pick & place
- chessaton_chess_manager : chess-related interfaces that help the robotic arm to play chess
- micro_ros_esp : bridge between main pc and esp32 to control servos
- chessaton_interfaces : custom data types
- chessaton_chessaton_arm_ikfast_plugin : 4dof kinematic solver made with ikfast
- CAD : assemblies and design of parts
cd chessaton
docker compose build
docker compose up -d chessaton-nvidia
docker exec -it ros_humble_nvidia /bin/bash
to enable Nvidia GPU:
add this config to daemon.json which is usually located at /etc/docker/daemon.json:
{
"runtimes":{
"nvidia":{
"path":"/usr/bin/nvidia-container-runtime",
"runtimeArgs":[
]
}
}
}
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.
core dependencies:
- ros-humble
- gazebo
- moveit2
- grasp-plugin
rest of the dependencies can be found in Dockerfile
for more refer to chessaton_chess_manager
ros2 launch chessaton_chess_manager chess_robot.launch.py engine:=kojiro
e2e4-e7e5 |
e1g1 (castling) |
---|
for more refer to chessaton_control
ros2 launch chessaton_control pick_place_demo.launch.py demo_program:="pick_place_demo"
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
ros2 launch chessaton_moveit_config chessaton.launch.py use_camera:=false