The 6-Axis Robotic Arm is a custom-designed robotic manipulator featuring 3D-printed components, servo motors, and an advanced control system. Initially controlled via an Arduino microcontroller with potentiometer-based manual control, the project evolved to incorporate FreeRTOS for real-time task management, a touchscreen HMI connected through bluetooth for remote control and later integrated ROS (Robot Operating System) for enhanced control and automation.
- The robotic arm was originally controlled using potentiometers directly wired to an Arduino.
- Each servo motor’s movement was mapped to a corresponding potentiometer position, allowing for manual positioning.
- This phase provided a simple and direct control mechanism but lacked automation and precision.
- The system was upgraded to accept predefined motion sequences through Arduino programming.
- Basic inverse kinematics were introduced to improve movement efficiency.
- The arm could execute simple pick-and-place operations autonomously.
- The control system was migrated to a FreeRTOS-supported microcontroller, enabling multitasking.
- Separate FreeRTOS tasks were created for motor control, sensor reading, and command processing.
- This upgrade improved real-time performance, making the system more responsive.
- A GUI interface was developed using Tkinter on a Raspberry Pi touchscreen.
- The user could send motion commands and monitor the arm’s status in real time.
- The Raspberry Pi communicated with the microcontroller via Bluetooth, enabling remote control.
- The system is being integrated with ROS Noetic/ROS2 Humble, allowing for scalable and modular control.
- The robotic arm will be capable of being simulated and controlled through MoveIt!.
- Future ROS integration will include advanced motion planning, collision avoidance, and sensor feedback processing.
- 3D-Printed Structure – Designed and printed for durability and flexibility.
- 6 Degrees of Freedom (DoF) – Provides a wide range of motion and precision.
- FreeRTOS Integration – Enables multitasking and real-time control.
- Human-Machine Interface (HMI) – Developed using a Raspberry Pi and touchscreen with a Tkinter-based GUI.
- Bluetooth Remote Control – The HMI communicates with the microcontroller via Bluetooth for wireless operation.
- ROS Integration (In Progress) – Bridging the robotic arm with ROS for scalable and modular control.
- Microcontroller: Arduino Mega 2560 (Upgraded to a FreeRTOS-supported board)
- Actuators: SG90 Micro Servo Motors
- Controller Interface: Raspberry Pi with 7" Touchscreen HMI
- Communication: HC-05 Bluetooth Module (for remote control), UART/I2C/SPI (for microcontroller-ROS communication)
- Power Supply: External power source for servo motors
- Embedded System: FreeRTOS for real-time scheduling
- Control Interface: Python with Tkinter for Raspberry Pi HMI
- Robot Simulation & Control: ROS Noetic/ROS2 (planned full integration)
- ROS Packages: MoveIt Motion Planning Framework
- Firmware Development: C/C++ for microcontroller programming
- Clone the repository and install necessary dependencies:
git clone https://github.com/matek-dev/Arduino-Robot-Arm.git cd robotic-arm - Flash the FreeRTOS-based firmware to the microcontroller.
- Connect the microcontroller to the Raspberry Pi via Bluetooth for wireless communication.
- Install dependencies:
sudo apt update && sudo apt install -y python3-pip pip3 install tk - Run the HMI interface:
python3 hmi/Robot_Control_GUI.py
- Ensure the Bluetooth connection is established between the Raspberry Pi and the microcontroller.
- Install ROS Noetic:
sudo apt install ros-noetic-desktop-full
- Initialize the ROS workspace:
mkdir -p ~/catkin_ws/src cd ~/catkin_ws/ catkin_make
- Build and run the ROS node for the robotic arm.
- Full ROS Control – Implement MoveIt! for path planning and motion control.
- Computer Vision Integration – Add an object recognition system.
- Inverse Kinematics – Improve motion accuracy with real-time kinematics calculations.
- Mobile App Support – Extend remote control capabilities using a mobile application.
Contributions are welcome! Feel free to fork the repository, submit issues, or create pull requests.
This project is licensed under the MIT License.
For inquiries, reach out via LinkedIn or GitHub:
- GitHub: github.com/matek-dev
- LinkedIn: linkedin.com/in/matthew-koniecko
