tricks for DH parameters in robotics code example
Example: write a program for forward kinematics and inverse kinematics of robot
import math
ch = input("Enter '0' for Forward Kinematics and '1' for Inverse Kinematics ")
if ch == "0":
print('''Forward Kinematics
through this program you'll be able to solve a FK problem
which means given the values of joint angle and joint parameters,the position of the end effector
can be defined it's like finding the position in a universal frame i.e called the coordinates of end-effector''')
l1 = float(input("enter the length of link 1 "))
l2 = float(input("enter the length of link 2 "))
t1 = float(input("enter the value of theta 1 in degrees "))
t2 = float(input("enter the value of theta 2 in degrees "))
x = (l1 * math.cos(math.radians(t1))) + (l2 * math.cos(math.radians(t1 + t2)))
y = (l1 * math.sin(math.radians(t1))) + (l2 * math.sin(math.radians(t1 + t2)))
print("the x coordinate is ", x)
print("the y coordinate is ", y)
### inverse kinematic begins from here
elif ch == "1":
print('''Inverse Kinematics
In this method we find the value of joint angles for a given joint parameters.
According me this is what a most robots in sci-fi movies do they take inputs
such as coordinate of final position of end-effector(or imagine the robot from movie big hero 6
if it has to move its hand it will use this method *not as simple as it sounds!) *_
''')
l1 = float(input("enter the length of link 1 "))
l2 = float(input("enter the length of link 2 "))
w = float(input('enter the x-coordinates of end-effector'))
v = float(input('enter the y-coordinates of end-effector'))
a2 = math.degrees(math.cos(((w * w) + (v * v) - (l1 * l1) - (l2 * l2)) / (2 * l1 * l2)))
a1 = math.degrees((math.atan(v / w)) - (
math.atan((l2 * math.sin(math.radians(a2))) / ((l1) + (l2 * (math.cos(math.radians(a2))))))))
print("theta 1 is ", a1)
print("theta 2 is ", a2)
else:
print("Enter a valid option")