Skip to content

MicroPython-based Mini Arm robot controller with TCP/IP and Serial communication supported

License

Notifications You must be signed in to change notification settings

Jshulgach/Mini-Arm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mini-Arm

License: MIT Python GitHub Repo stars

The Mini Arm is a miniature version of the Desktop-Arm project, a portable 6DOF 3D-printed open-source robot arm. This cool device runs on a 5V 2A DC adapter and features:

  • Runs on Raspberry Pico microcontroller with python code using CircuitPython
  • Has an IK solver to handle joint state calculation on the microcontroller itself!
  • All 3D printable components (aside from nuts & bolts)
  • Total parts cost <= $60
  • Weighs less than 1lb (0.3kg to be exact)

These install instructions were tailored using a Windows 10 OS. There are also setup instructions for Ubuntu and the Raspberry Pi too.

Where to start ?

This GitHub repository contains Installation and Quick Start instructions for the Mni Arm project. Here is a description of the repository structure:

  • miniarm_ros - Contains ROS packages for the Mini Arm
  • pico - Contains CircuitPython firmware and code for the Mini Arm using a Raspberry Pico microcontroller
  • tests - Python test scripts for the package
  • XboxClient - Teleop script to run on a PC with a connected Xbox controller

Installation

Software:

  1. It is recommended to use a virtual environment to manage dependencies. To create a new virtual environment with anaconda, use the following command:
    conda create -n miniarm python=3.10
    conda activate miniarm
  2. Download the repository using git:
    git clone https://github.com/Jshulgach/Mini-Arm.git
    cd Mini-Arm
  3. To install dependencies, use the provided requirements file:
    pip install -r requirements.txt

Hardware:

  1. Building the arm

  2. Electrical wiring


Demos


Xbox Teleop

When the arm first turns on, the LED will change to green to indicate successful connection to the network. A blue light indicates a successful connection to the server with a client. Open the xbox-client.py file and set COMM_TYPE to the same type set for Mini Arm in the settings.toml file. Plug in a controller, open a terminal in the directory containing the xbox-client.py file, then run the python file:

python xbox-client.py

AJ GUI (In Progress)

Robot control cana also be done through the Unity version of the "AJ" GUI v1 (Link coming soon), or an SSH terminal to the robot. FOR TCP/IP, quickest way using a python terminal:

ROS2 Robot Visualizer

The Mini Arm can be visualized in RViz2 using the included ROS2 packages. Refer to the build instructions for more information.

Feel free to reach out to me in case of any issues.
If you find this repo useful in any way please do star ⭐️ it so that others can reap it's benefits as well!

Acknowledgements

This project is inspired from the work done by:

License

Copyright 2022-2023 Jonathan Shulgach

This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, you can obtain one at https://mozilla.org/MPL/2.0/.

About

MicroPython-based Mini Arm robot controller with TCP/IP and Serial communication supported

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published