SCARA Control Software (C/C++)

A C/C++ algorithm to control a Schunk SCARA robotic arm.

Summary

  • Developed a mathematical model of a SCARA robotic arm to formulate forward/inverse kinematic algorithms in C/C++.
  • Implemented a trajectory planner utilizing a cubic spline algorithm to optimize joint velocities and accelerations, enhancing overall motion smoothness.
  • Leveraged the system clock to implement a real-time algorithm, enabling precise timing and synchronization of the physical robot.
  • Verified algorithmic functionality through extensive simulated testing, ensuring error-free code deployment on the robotic arm.
  • Skills:

    SCARA Robot Arm

    The SCARA (Selective Compliance Articulated Robot Arm) stands out as a highly versatile robotic arm, tailored for swift operations in manufacturing and automation. Boasting 4 degrees of freedom and movement capabilities in the X, Y, and Z directions, it is categorized as an RRPR (Revolute-Revolute-Prismatic-Revolute) robot. In a collaborative project, our team spearheaded the development of a C/C++ algorithm to command a Schunk SCARA arm. This encompassed the implementation of forward kinematics, inverse kinematics, and a trajectory planner, leveraging robotics mathematics, the PowerCubeSim Robot Operating System (ROS) package, and Visual Studio.

    The Process of Developing the Algorithm

    Our journey commenced with the analysis of the SCARA robot's physical attributes. By delineating joint frames and link lengths on a schematic, we crafted a D-H table for computational purposes. This groundwork facilitated the creation of a transformation matrix concerning the robot's station frame, crucial for the forward kinematics algorithm. Subsequent calculations using robotics mathematics culminated in the formulation of the inverse kinematics and a cubic slpine trajectory planner.

    With the theoretical groundwork completed, we transitioned to the practical phase, developing our algorithm in C/C++ and testing our code using the PowerCubeSim model's simulation package. This simulation served a dual purpose: validating the precision of our code and pinpointing any discrepancies resulting from vector computations. Moreover, the simulation package played a crucial role in defining joint limits and the workspace of our SCARA arm, providing a clear understanding of its capabilities during the coding phase. The testing phase preceded the installation of the system onto the physical arm. The accompanying videos showcase the simulation process (left) and the algorithm's control over the physical robot arm (right).

    SCARA with labeled joint frames
    Control Software Simulation Demo
    Physical Presentation