Custom robotic arm with reinforcement learning capabilities
This project involves the development of a custom 6-axis robotic arm with integrated reinforcement learning capabilities. The aim was to create an affordable, yet precise robotic arm that could learn manipulation tasks through trial and error, rather than explicit programming.
The project combines mechanical engineering, electronics, and machine learning to create a platform for exploring advanced robotics concepts without industrial-grade equipment costs.
The arm was designed in Fusion 360 with a focus on weight optimization and rigidity. Parts were primarily 3D printed in PETG for strength, with some aluminum components for high-stress areas. The design went through three major iterations, each improving on stability and reducing backlash in the joints.
The control system uses a Raspberry Pi 4 as the main controller, with a custom PCB for power distribution and signal management. The arm is controlled through a ROS2 framework with custom nodes for trajectory planning, inverse kinematics, and sensor integration. A custom Python API allows for high-level control and integration with the reinforcement learning pipeline.
The reinforcement learning pipeline uses Proximal Policy Optimization (PPO) with a custom reward function. The system was trained on three primary tasks: pick-and-place, object sorting, and simple assembly. Training was conducted in simulation first using PyBullet physics engine, then transferred to the physical robot with domain randomization techniques to bridge the reality gap.
After approximately 100 hours of training, the arm achieved a success rate of 85% on pick-and-place tasks with novel objects, 78% on sorting tasks, and 65% on simple assembly tasks. The most significant challenge was adapting to varying lighting conditions and object textures, which required additional data augmentation and domain randomization techniques.
This project provided valuable insights into the challenges of developing affordable robotic systems with advanced capabilities. Key learnings include:
Future work will focus on improving visual perception capabilities and implementing more complex manipulation tasks that require multi-step planning.
The project code and resources are available on GitHub:
github.com/adamcroft/robotic-arm-rlThe repository includes: