This project is comprised of two software components that together control a 3-degree of freedom (3DOF) planar robotic arm. The project allows the user to input a desired (x, y) coordinate and the type of trajectory (angular or linear) that the robotic arm should take to reach this position. The software then calculates the necessary servo motor angles to achieve this movement. For more detailed information refer to this Youtube video.
-
main.py
: This Python program allows the user to input a coordinate and trajectory type for the robotic arm. The software will then calculate the necessary servo motor angles by solving the forward and inverse kinematic equations. The calculated angles are published to an MQTT network for further processing. -
karasu_control.ino
: This Arduino program is meant to run on an ESP8266 board and controls the servomotors of the robot. The program subscribes to the MQTT topic containing the servo motor angles. It then processes these values from the published JSON file and sets the corresponding servomotor angles.
- Make sure you have Python and Arduino IDE installed on your system.
- Clone the repository using
git clone
. - Open the Python file
main.py
and Arduino filekarasu_control.ino
in their respective IDEs.
- Run
main.py
in a Python environment. Enter the desired (x, y) coordinate and trajectory type when prompted. - Make sure your ESP8266 board is connected and run
karasu_control.ino
from the Arduino IDE. You should upload the Arduino program in the ESP8266 board. - You need to setup an MQTT broker to be able to use this system.
- The calculated servo angles will be published to the MQTT network, and the ESP8266 board will subscribe to this data, moving the robotic arm as directed.
- Python 3.7 or later
- Arduino IDE
- paho-mqtt Python package
- ESP8266 board