All Projects → AliShug → EvoArm

AliShug / EvoArm

Licence: other
An open-source 3D-printable robotic arm

Programming Languages

python
139335 projects - #7 most used programming language
C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to EvoArm

Plus
Otto DIY+ ("Otto DIY with steroids" + Bluetooth + APP + switch + sensors + strength +...
Stars: ✭ 100 (-12.28%)
Mutual labels:  robot, hardware, 3d-printing
purple-eye
A web-bluetooth controlled one-eyed robot
Stars: ✭ 26 (-77.19%)
Mutual labels:  robot, servo, 3d-printing
Ottodiyesp
build you own internet of robots!
Stars: ✭ 273 (+139.47%)
Mutual labels:  robot, hardware, 3d-printing
Trezor Mcu
🔒 Don't use this repo, use the new monorepo instead:
Stars: ✭ 315 (+176.32%)
Mutual labels:  arm, hardware
nsec-badge
Software from the NorthSec badge
Stars: ✭ 34 (-70.18%)
Mutual labels:  arm, hardware
hardware-attacks-state-of-the-art
Microarchitectural exploitation and other hardware attacks.
Stars: ✭ 29 (-74.56%)
Mutual labels:  arm, hardware
Upboard ros
ROS nodes for upboard usage
Stars: ✭ 22 (-80.7%)
Mutual labels:  robot, hardware
Walter
6DOF Industrial Robot, vintage style
Stars: ✭ 113 (-0.88%)
Mutual labels:  arm, robot
Avem
🚁 轻量级无人机飞控-[Drone]-[STM32]-[PID]-[BLDC]
Stars: ✭ 465 (+307.89%)
Mutual labels:  arm, hardware
Openfpgaduino
All open source file and project for OpenFPGAduino project
Stars: ✭ 137 (+20.18%)
Mutual labels:  arm, hardware
realant
RealAnt robot platform for low-cost, real-world reinforcement learning
Stars: ✭ 40 (-64.91%)
Mutual labels:  robot, dynamixel
human robot collaboration
Yet another repo for the baxter collaboration task.
Stars: ✭ 18 (-84.21%)
Mutual labels:  arm, robot
Balanduino
Git repository for the Balanduino balancing robot
Stars: ✭ 118 (+3.51%)
Mutual labels:  robot, hardware
Tomu Hardware
A tiny ARM microprocessor which fits in your USB port.
Stars: ✭ 297 (+160.53%)
Mutual labels:  arm, hardware
open manipulator simulations
ROS Simulation for OpenManipulator
Stars: ✭ 15 (-86.84%)
Mutual labels:  robot, dynamixel
Robotic Arm
Forward and Inverse Kinematics for Robotic Manipulator
Stars: ✭ 21 (-81.58%)
Mutual labels:  arm, inverse-kinematics
Bitbox
The bitbox console (example, firmwares, doc)
Stars: ✭ 78 (-31.58%)
Mutual labels:  arm, hardware
PrntrBoardV2
32-bit 3D Printer controller board using STM32F407 and replaceable TMC2660/2209 stepper drivers.
Stars: ✭ 31 (-72.81%)
Mutual labels:  arm, 3d-printing
Node Serialport
Access serial ports with JavaScript. Linux, OSX and Windows. Welcome your robotic JavaScript overlords. Better yet, program them!
Stars: ✭ 5,015 (+4299.12%)
Mutual labels:  robot, hardware
Thor
DIY 3D Printable Robotic Arm
Stars: ✭ 556 (+387.72%)
Mutual labels:  robot, 3d-printing

EvoArm is an open-source, 3D-printable, desktop-sized, 3+2DOF robot arm design which uses serially controlled Dynamixel smart servos. It is based in part on the LiteArm i2 design by "Armatec".

Licensed under CC-BY-SA 3.0

Core Action

Swing Main Arm Actuator/Forearm
Swing GIF Main GIF Actuator GIF

The arm is actuated using 3 Dynamixel smart servos, either the AX-12 or 18A, which both have identical casings and control protocols - I recommend using AX-18A motors, as the 12s are a bit underpowered.

Effector

The design presented here has a flat touchpad actuated using 2 Dynamixel XL-320 servos, providing an additional 2DOF at the arm's "wrist". The design inherently keeps the base wrist joint level with the floor.

Inverse Kinematics

The inverse kinematics application is written in Python with PyGame, and takes the form of a graphical control app which also accepts simple streamed commands from other programs via UDP. It serves the purpose of calculating the desired target servo positions for the arm, given a 3D target position and orientation for the end-effector. It also provides linear interpolation on the target position and basic bounds-checking to prevent self-interference on the motors or mechanical failure of the design (the reachable volume is visualised in green).

Start the application with python PyIK from the root directory. Unfortunately the application may not be usable on smaller screens, since the size is fixed. To enable control, press the spacebar, and watch the command window in which the app was started for additional information.

Inverse Kinematics program

The IK app is configured to connect to the arm through a properly configured Arduino Mega2560 controller, from a Windows machine. More details to come!

Hardware

The current system interfaces with the servos using an Arduino Mega2560, which provides multiple hardware UARTs in addition to the one used for PC/Arduino communications. The AX and XL series servos use different control protocols, so they are connected to the Arduino on physically separate lines, with one UART Tx/Rx pair for each set of servos. Since the servos use only a single (synchronous) data line, the Tx/Rx lines are multiplexed using a 74LS241 tri-state buffer. The multiplexing is controlled using an additional transmit enable line from the Arduino.

Breadboard diagram of hardware

Circuit diagram of serial communications

The data lines should be pulled high (to +5V) to stop them from "floating" while not in use.

Experimentally, it's possible to interface with these servos using only an Arduino Uno (or equivalent, e.g. Arduino Nano), without preventing the use of the single hardware UART for PC/Arduino communications. The ATMega328p in those boards is clocked high enough to allow basic software-based synchronous serial at 1 megabaud, using only one pin for each data line, and no additional hardware. The downside is interfering with the interrupts on the board, which can break some of the normal Arduino timing routines. If all you want to do is communicate with the servos from a PC, this doesn't matter. I'll explore this option further when I have the chance.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].