6 Axis Robotic Arm
/Motivation
I’ve been experimenting with ROS (Robotic Operating System) for a while and wanted a platform that I can use to further my knowledge. The BCN3D Moveo is a widely used open-source design for a 3D printable 5DOF robotic arm, and it costs about £500 to build. It is mechanically well-designed, though it lacks a platform for feedback control. Instead, it uses G-code. popular procedural instruction set used in 3D-Printing and CNC machining. Though it works well in predefined motion scenario, doesn't work well when comes to feedback control (i.e. using data from sensors on the robotic arm to make real-time decisions regarding movement). ROS based platform with robust feedback control will allow me to use external conditional triggering, use of IMU, force sensors, vision input and much more.
Design
Open source design of the BCN3D Moveo was a fantastic base to start from. I made the following changes.
Added a rotational axis to the wrist.
Made design changes to improve printability without using support material
Complete revamp of the stepper drivers to handle much bigger stepper motors
Changed the control platform from Arduino to Raspberry Pi
Minor mechanical improvement where I thought the cross sections were weak
3D Printing & Construction
All Completed
Preliminary ROS Integration
I started by creating a URDF (Unified Robotic Description File) of the Robot Arm using Solidworks. this details the configuration of the lings, how they are joined, and the physical constraints etc required in building a functional 3D rendering for the simulation in ROS packages such as RVIZ, and Gazebo. This was then used to configure the Arm with Moveit. This added motion planning capability to the Arm in simulation. using this setup, it is possible to plan and execute trajectories using a variety of motion planning algorithms. Here is an image of the simulation in action with motion planning.
Future Work
Incorporate Slip-Rings to route wires internally
Setup automatic homing (either with microswitches or absolute position encoders)
Missed-Step/Stall detection for the motors
Further improvements to the ROS Interrogation (move out of the limitations posed by ARM processor architecture)
Design a force sensing gripper
Adding additional sensors for the robotic arm, such as IMU, RGBD sensors, and force sensors.