I, not, Robot! (MFRBTIC, LBYMF4A, MFELEC3)
TARGET AUDIENCE: Students, Academics, Industry Professionals, Employers, and Tech Enthusiasts
EXPERIENCE: The name of the game for robotic systems is to define its position and orientation so that you are able to manipulate the robot (either mobile or fixed) in the given space for control and execution. For us, this involves calculating both forward and inverse kinematics, defining the manipulator geometry using Denavit-Hartenberg parameters, applying elementary rotation matrices for transformation calculations (i.e. change of position in one link to the next) and knowing the orientation angles from euler angle representations (which we calculated in class but its already defined as the Tait-Bryan Angles).
I have here below the provided methods to define rotation and orientation of robotics system for reference (for my future self and the reader :>)
LEARNINGS: Below is a consolidation of the teachings made in class but more of the learnings is how can we apply the calculations from paper to implementation which I did for the accompanying project utilizing DH table to define the coordinate frame of the robot (cmiiw). Further applications that I dont want to cover here is how elementary rotations are needed to solve 3D transformations and the yaw-pitch-roll interpretations for motion planning for the robot. I believe there are already software for that like MATLAB in one of its toolbox that does these type of calculations but extreme understanding of how it is achieved is necessary in order to ensure safety.
Forward Kinematics (FK)
- Maps joint space → Cartesian space.
- Inputs: Joint variables \(q_1, q_2, \ldots, q_n\).
- Outputs: End-effector pose (position + orientation) in the absolute frame.
- Uses:
- Multiplication of link transformation matrices: \({}^0T_n = {}^0T_1 \cdot {}^1T_2 \cdot \ldots \cdot {}^{n-1}T_n\)
- Direct and always solvable.
Inverse Kinematics (IK)
- Maps Cartesian space → joint space.
- Inputs: Desired end-effector pose \({}^0T_n^{\text{desired}}\).
- Outputs: Joint variables \(q_1, q_2, \ldots, q_n\).
- Challenges:
- Multiple possible solutions.
- No solution if target pose is outside the robot’s workspace.
- Nonlinear equations requiring analytical or numerical solving.
Denavit–Hartenberg (DH) Convention
- Standardizes link geometry description using 4 parameters:
- \(a_i\): Link length (x-axis displacement).
- \(\alpha_i\): Link twist (rotation about x-axis).
- \(d_i\): Link offset (z-axis displacement).
- \(theta_i\): Joint angle (rotation about z-axis).
- DH transformation matrix: \(T_i^{i-1} = \begin{bmatrix} \cos\theta_i & -\sin\theta_i\cos\alpha_i & \sin\theta_i\sin\alpha_i & a_i\cos\theta_i \\ \sin\theta_i & \cos\theta_i\cos\alpha_i & -\cos\theta_i\sin\alpha_i & a_i\sin\theta_i \\ 0 & \sin\alpha_i & \cos\alpha_i & d_i \\ 0 & 0 & 0 & 1 \end{bmatrix}\)
- Enables systematic computation of transformations for any n-link robot.
Elementary Rotation Matrices
- Rotation about X-axis: \(R_x(\theta) = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos\theta & -\sin\theta \\ 0 & \sin\theta & \cos\theta \end{bmatrix}\)
- Rotation about Y-axis: \(R_y(\theta) = \begin{bmatrix} \cos\theta & 0 & \sin\theta \\ 0 & 1 & 0 \\ -\sin\theta & 0 & \cos\theta \end{bmatrix}\)
- Rotation about Z-axis: \(R_z(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix}\)
- Combined with translation to form homogeneous transformation matrices.
Below is a copy of the solutions that I did for the assessment in this class. Thankfully I have it digitized :))
Industrial Robotics
Of course fwiw, in practice, we don’t deal with the calculations manually but we pick the suitable robotic arm or system in the market based on requirements. In class, we have discussed robot control systems under working cells within the manufacturing line. This comes with the understanding of the following concepts:
End effectors- Specific tooling that enables a specific task Grippers -to grasp and manipulate objects Tools- to perform a process Working Envelope
- Maximum: Area that can be moved to robot
- Restricted: A “fence” or boundaries for the safety of the personnel/infrasttructure
- Operating Envelope: allowable area that robot arm can operate given safety constraints.
Robot Programming: Leadthrough Programming:
- Powered leadthrough: Common for point-to-point robots
- Uses teach pendant
- Manual leadthrough: Convenient for continouous path control robot
Robot Programming Languages
- Python scripts
- Simulation and Off-Line Programming
- Simulation for execution
World Coordinate System vs. Tool Coordinate System:
- Reference xyz, usually at the base and its being reference for all the joints and the end effector; Tool Coordinate focuses on the joint on the end effector
A case study that we did as a culmination for these was on a vision-guided box packing operation that needed a suitable robot arm for the task. It solved inconsistent production, scarcity of human workers and need for flexibility for different box sizes and product types.
I presented here the Kawasaki RS007L with vacuum suction that can handle a maximum payload of 7 kilograms. It can be mounted on the side of a compact cell in production line. You may see our presentation below that details also load calculations per joint.
REFLECTION:
NOTE: Taglish and reflection has been revised after OJTs
Kapag usapang robot, I always think immediately of the movie “I,robot” and how there will a mass uprising of humanoid robots. What people have a misconception of is how hard these calculations are that us humans can do just do instinctually in our head to perform basic motor functions. Kaya after learning the topics above in class, I found it very hard to see how robots can takeover kasi maski ako nahihirapan icalculate consciously the expected position of a linkage knowing only its previous joint angle. Pero who knows? there are more and more intelligent people that are pursuing this fantasy of human-like robots but for me the calculations alone is a headache.
Nonetheless, all movements can be defined by these principles, even the non-robotic ones. Even simple actuations, you need to define this properly. Sharing here how even DOST researchers are utilizing the DH table parameters to define the joint space for their compact receiver dish to dynamically move it in the direction with the most signal on deployments. Yan sabi sakin, I’m sure may software na for that pero mamaw talaga mga MS researchers to do that on their projects diba? haha
Another thing that I want to share is how SCPA, my first internship, is also transitioning to robotic palletizing in their current production line. I got excited to see it being integrated in the line. I got to even suggest a change of end-effector so that the robot can handle placing the palletized tissue products (estimate weight to be 5kg) on my final presentation. The robot was a UR20 robotic arm!
Sir Rhen, our instructor, for these classese was very specific to the calculations, kaya I think mababa grade ko sa kanya since panget sulat kamay ko kasi hirap ma-differentiate between a sine and cosine in my calculation papers! Kidding aside, I really appreciate the class of sir this time (except MFELEC3) since I can see the application and hoping really that I can apply this in the field
BONUS:


Enjoy Reading This Article?
Here are some more articles you might like to read next: