Man this arm grabbed my attention can you give me direction?
@ianmoore322
3 күн бұрын
@@suzenchristian7501 Each segment has a 3x3 matrix for rotation, a magnitude for x, y, and z. From the final segment to the first using recursion you can find the final orientation with all the servo rotation angles. You find the position of the arm with the z vector of the rotation matrix multiplied by the length then repeat that up the chain similar to finding the final rotation matrix. Inverse kinematics is more or less finding the intersection points of circles, each arm has their own radius around their transformed axis of rotation. Since the arm isn't complex by any means I ignored 'negative' values with the base rotation so the calculations were always in the same positive direction independent of the direction the rotating base was facing. It made the calculation easier because you don't know which intersection of the circle to use without setting different constraints. I could probably do it easily, especially since the base only permits 270° of rotation rather than 360°, so utilizing the negative calculations would be beneficial. I derived the servo activation that is sent to the robot via raw data from the virtual model easily. Somehow I avoided any special collision detection, although this severely limits the range of motion. The program could be better such as written in C++ so it runs on my slower laptop, supporting more motion, having collision detection, and attempting more than the first movement solution. The heuristic to find the solution runs once through the segments and stops the loop when the origins are invalid. I don't think I want to add to the program, I could see myself spending more time than I should on it. Thanks for checking it out!
Пікірлер: 3