Skip to content

The Real-Time Robot Arm Simulator is an open-source project creating a KUKA KR 700 PA-inspired virtual robotic arm using Blender and Python/Rust. Focused on education and simple industrial tasks, it enables real-time synchronization and interaction with the physical robot, serving as a valuable learning resource.

Notifications You must be signed in to change notification settings

SiliconWit/robotics

Repository files navigation

Robotics Fundamentals with Interactive Demonstrations

Overview

This repository provides interactive demonstrations and educational tools for learning fundamental robotics concepts. Through practical implementations, we explore the mathematical foundations and programming techniques essential for understanding robotic systems. Each module is designed to illustrate key concepts such as quaternion-based rotations, forward kinematics, Jacobian matrices, and robotic arm control.

Core Concepts Demonstrated

1. Quaternion-Based Rotations

  • Implementation of quaternion mathematics for smooth 3D rotations
  • Conversion between different rotation representations (quaternions, matrices, Euler angles)
  • Avoiding gimbal lock and ensuring numerical stability in rotation operations
  • Composition of rotations using quaternion multiplication

2. Forward Kinematics

  • Computing end-effector positions from joint angles
  • Propagating rotations through kinematic chains
  • Implementing Denavit-Hartenberg transformations
  • Visualizing the workspace of robotic manipulators

3. Jacobian Matrix Calculations

  • Relating joint velocities to end-effector velocities
  • Analyzing manipulability and singularities
  • Computing condition numbers for assessing manipulator performance
  • Using the Jacobian for robot control applications

4. 3D Visualization and Simulation

  • Real-time visualization of robot arm movements
  • Path tracing for end-effector trajectories
  • Interactive joint control and animation
  • Frame capture for educational animations

Demonstrations

FreeCAD Robot Arm Simulator

A comprehensive simulation of a 3-link robotic manipulator implemented in FreeCAD and Python, featuring:

  • Quaternion-based joint rotations for smooth motion
  • Dynamic calculation of the Jacobian matrix
  • Visualization of end-effector path
  • Interactive joint control with smooth animations
  • Educational output of key robotic parameters

Simple 2R Pick and Place Simulation

A 2-link (2R) robotic arm performing pick and place operations, demonstrating:

  • Basic forward and inverse kinematics
  • Task planning for industrial scenarios
  • Trajectory generation and following
  • Error handling and joint limit management

Getting Started

Prerequisites

  • FreeCAD (latest stable version)
  • Python 3.6+
  • NumPy and SciPy
  • Matplotlib (for 2D visualizations)

Installation

  1. Clone this repository
  2. Install required Python packages:
    pip install numpy scipy matplotlib
    
  3. Open the FreeCAD Python console
  4. Navigate to and load the desired simulation file

Running the Quaternion/Jacobian Demo

  1. Open FreeCAD
  2. Go to View → Panels → Python Console
  3. Click the 'Open' button in the console
  4. Navigate to and select the Robot Arm Simulator script
  5. Click 'Execute' to run the simulation

Educational Value

This project is designed for:

  • Engineering students learning robotics fundamentals
  • Educators teaching robotic kinematics and dynamics
  • Robotics enthusiasts seeking hands-on understanding of mathematical concepts
  • Developers creating robotic simulations or control systems

The simulations provide visual intuition for abstract concepts, making quaternions, kinematic chains, and Jacobian matrices more accessible through interactive examples.

Contributing

Contributions are welcome! Consider:

  • Adding new demonstrations for different robotic concepts
  • Improving existing simulations with new features
  • Enhancing visualizations or educational aspects
  • Writing tutorials or documentation for specific concepts
  • Creating exercises or challenges based on the simulations

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Inspired by industrial robotic systems like the KUKA KR series
  • Built using open-source tools including FreeCAD, Python, and NumPy
  • Special thanks to the robotics education community for resources and inspiration

About

The Real-Time Robot Arm Simulator is an open-source project creating a KUKA KR 700 PA-inspired virtual robotic arm using Blender and Python/Rust. Focused on education and simple industrial tasks, it enables real-time synchronization and interaction with the physical robot, serving as a valuable learning resource.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published

Contributors 2

  •  
  •  

Languages