MEAM 5200: Introduction to Robotics at UPenn is a comprehensive course designed to introduce students to the fundamental principles of robotics. This course delves into the kinematic, dynamic, and computational aspects essential for understanding and working with modern robotic systems, particularly focusing on robotic arms/manipulators like the Franka Emika Panda. Key topics covered include homogeneous transformations, manipulator forward and inverse kinematics, Jacobians, and path planning. Through this curriculum, students gain both a theoretical foundation and practical skills necessary for advancing in the field of robotics, making it a pivotal step for those looking to explore robotic systems further.
In Lab 4, we advanced our exploration of robotic path planning by implementing and analyzing two distinct algorithms for the Panda robot arm: the Artificial Potential Fields (APF) planner and the Rapidly-exploring Random Tree (RRT) planner. The lab's focus was on adapting these methodologies to negotiate static obstacles within a simulated environment effectively. Our efforts concentrated on enhancing the computational efficiency and reliability of these planners under varying test conditions. This involved a detailed study of the APF method's limitations in dense obstacle fields and the RRT's robustness in complex, high-dimensional spaces. The outcomes from these experiments are intended to guide the optimization of algorithm parameters and provide insights into their practical deployment in real-world navigation and manipulation tasks.
In Lab 3, we delved deeper into the intricacies of inverse kinematics (IK) with an emphasis on implementing secondary tasks using the 7 Degrees of Freedom (DOF) Franka Emika Panda robot. The primary focus was on optimizing joint velocities to precisely achieve desired end-effector poses while maintaining the robot's operational integrity within predefined joint limits. We employed numerical optimization techniques to compute IK solutions, which allowed for handling redundancy inherent in the robot's 7 DOF.
We explored both velocity and position-based IK solutions, integrating secondary tasks that helped maintain the robot's joints near their neutral positions to avoid extreme configurations. This was crucial in ensuring the robot's precision, as well as tasks which helped shape the robot's trajectory in a more desirable way. The main task in this lab was joint centering:trying to keep the robot as close as possible to the neutral position. This is especially visible when implementing a vertical line trajectory, making the end-effector go up and down. As we amplified the task rate vs angular and velocity rates, the robot stayed close and closer to the neutral position.
In addition, we computed the manipulability index, useful to pin out configurations approaching singularities, and ensure our robot remains within feasible solutions.
In the second lab, we explored the complexities of Jacobian matrices and their application in velocity kinematics for robotic manipulators. We learnt to derive and implement the Jacobian matrix and calculations critical for predicting and controlling the robot's end-effector velocities.
During this lab, we deepened our understanding of robotic motion constraints and kinematic redundancies (singularities) through simulations and physical experiments. The lab tasks required us to derive mathematical models and convert these into Python code, which were then executed to manipulate the robot's trajectory in real-time. Special attention was given to the conditions under which the velocity kinematics would result in no solution, a unique solution, or infinite solutions, enhancing our problem-solving toolkit.
Key challenges included ensuring that the Jacobian remained full-rank to avoid singularities and guarantee precise control over the robot's movement. Once our simulation and terminal tests with predicted calculations matching those of our code, we tested looped geometric following functions (ellipse, eight and vertical line) on the actual robot. Below is a video of our implementation. As we can see, as time goes by the errors accumulate, leading to deviation. To fix this, we will implement secondary tasks in the next lab.
In our first lab session, we learnt to analyze robot configuration and apply Denavit-Hartenberg (DH) Parameters and their application to forward kinematics in controlling complex industrial robots, specifically focusing on those with 7+ degrees of freedom (DOFs). Utilizing the Franka Emika Panda robot as our primary learning tool, we delved into the theoretical underpinnings and practical coding implementations in Python. Our journey began with the conceptualization and application of homogeneous transformation matrices, crucial for understanding the spatial orientation and positioning of robotic arms. Through iterative coding exercises and simulations, we not only honed our programming skills but also laid the groundwork for real-world experimentation. The culmination of this lab involved testing our code on the Franka Emika Panda, observing its movements, and critically analyzing outcomes to identify areas for improvement. This hands-on experience reinforced our understanding of robotic arm control and set a solid foundation for future learning, emphasizing the importance of safety considerations, such as avoiding self-collisions, to ensure both the integrity of the robot and the surrounding environment.