{"id":10533,"date":"2023-11-20T09:38:59","date_gmt":"2023-11-20T14:38:59","guid":{"rendered":"https:\/\/blogs.mathworks.com\/student-lounge\/?p=10533"},"modified":"2023-11-20T15:47:54","modified_gmt":"2023-11-20T20:47:54","slug":"an-autonomous-quadruped-manipulator-for-pick-and-place-applications","status":"publish","type":"post","link":"https:\/\/blogs.mathworks.com\/student-lounge\/2023\/11\/20\/an-autonomous-quadruped-manipulator-for-pick-and-place-applications\/","title":{"rendered":"An Autonomous Quadruped Manipulator for Pick and Place Applications"},"content":{"rendered":"<div class=\"rtcContent\">\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><\/div>\n<p><em>For today&#8217;s post Roberto Valenti, who leads the MathWorks Challenge Project program will talk about a senior design class project at University of Sheffield. Over to you, Roberto&#8230;<\/em><\/p>\n<div><\/div>\n<\/div>\n<div><\/div>\n<div class=\"rtcContent\">\n<div><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">At the University of Sheffield&#8217;s campus, a team of eight motivated students enthusiastically embraced a real-world project as part of their senior design class. Motivated by their shared interest in robotics and a desire for gaining practical experience, they tackled an ambitious challenge project that would not only push the boundaries of their technical skills but also prepare them for promising careers in the field of autonomous robotics. The project is from the <a href=\"https:\/\/github.com\/mathworks\/MATLAB-Simulink-Challenge-Project-Hub\"><span style=\"text-decoration: underline;\">MATLAB and Simulink Challenge Project Hub<\/span><\/a>, a platform that aims to bring together academia and industry to encourage innovation and bridge the gap between academic education and real-world applications.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode\" style=\"vertical-align: baseline; width: 597px; height: 286px;\" src=\"https:\/\/blogs.mathworks.com\/student-lounge\/files\/2023\/11\/23Nov20_1.png\" alt=\"team0.jpg\" width=\"597\" height=\"286\" \/><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;\"><span style=\"font-weight: bold; font-style: italic;\">Figure 1:<\/span><span style=\"font-style: italic;\"> The Team. From left to right: Serena Cicin-Sain, Olivia Organ, Will Foster, Joseph Moore, and Sherif Sawwaf. Not present in the picture: Harry Armstrong, Oluwaseun Adewola,and Josh Orme-Herbert<\/span><\/div>\n<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><\/div>\n<div><\/div>\n<div>\n<hr \/>\n<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><span style=\"font-style: italic;\">&#8220;This project has proven to be immensely valuable as it allowed us to comprehensively navigate an entire project lifecycle, engaging in all facets, including research, design, integration, and project management, all while adhering to a Systems Engineering approach. The endeavor presented significant challenges, necessitating the group to proactively demonstrate initiative through extensive research and innovative problem-solving. <\/span><span style=\"font-weight: bold; font-style: italic;\">A team member capitalized on this experience to demonstrate their skills to potential employers, securing a job in an engineering role<\/span><span style=\"font-style: italic;\">. The project, marked by its challenges, has also been enjoyable and rewarding, particularly given the positive feedback we have received. Our group takes considerable pride in our collective accomplishments, recognizing that it was our unwavering determination and seamless teamwork that made it all possible. We extend our sincere gratitude to our supervisor, Payam Soulatiantork, and Roberto Valenti from MathWorks, both of whose invaluable knowledge and guidance were indispensable to the project&#8217;s success&#8221;.<\/span><\/div>\n<div>\n<hr \/>\n<\/div>\n<div><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Take a look at the students&#8217; submission <a href=\"https:\/\/github.com\/serenanatalija\/Quadruped-with-Manipulator-and-Path-Planning\/\">GitHub repository<\/a> <a href=\"https:\/\/matlab.mathworks.com\/open\/github\/v1?repo=serenanatalija\/Quadruped-with-Manipulator-and-Path-Planning\/\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode\" style=\"vertical-align: baseline; width: 136px; height: 20px;\" src=\"https:\/\/blogs.mathworks.com\/student-lounge\/files\/2023\/11\/23Nov20_2.gif\" alt=\"open-in-matlab-online.gif\" width=\"136\" height=\"20\" \/><\/a>.<\/div>\n<h2 style=\"margin: 20px 10px 5px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;\">Introduction<\/h2>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The selected challenge project required the team to design, model, and simulate an autonomous quadruped robot equipped with a robotic manipulator to perform sophisticated pick and place tasks. To effectively accomplish this challenge the team organized itself into four sub-teams, each working on one of the four subsystems: quadruped, manipulator, navigation, and perception. Work done on each subsystem by a specific team was integrated into a single autonomous robotic system in which a high-level state machine commands each task of the robot while keeping track of the system state. During the project development phase, efforts were coordinated and supervised to ensure timely completion while prioritizing tasks and member responsibilities to meet the predefined requirements. Risk assessments were also factored in to mitigate potential challenges.<\/div>\n<h2 style=\"margin: 20px 10px 5px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;\">Quadruped modeling and simulation<\/h2>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The quadruped sub-team designed a robot replicating animal gaits, focusing on a diagonal advanced placement akin to dogs and horses. Their design featured four legs with three links and joints, ensuring coordinated movement within a one-cubic-meter volume. This design allowed efficient locomotion and balance, including a stable stationary gait. The team&#8217;s inspiration from animal locomotion principles enabled effective movement of the robot and led to successful implementation. The team began with a<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><a href=\"https:\/\/www.mathworks.com\/products\/simscape-multibody.html\"><span style=\"text-decoration: underline;\">Simscape\u2122 Multibody\u2122<\/span><\/a> model of a quadruped limited to forward motion in the horizontal plane. Their goals included: adding a shoulder joint for omnidirectional movement, designing control systems for joint actuation, and creating a walking plan with tailored gait phases for complex turning maneuvers.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The team explored different motion control strategies, including the Inverse Kinematic strategy and the Raibert strategy. The Raibert strategy uses a dynamic quadruped motion control model that splits the robot&#8217;s control into velocity, body rotation, and hopping height components, resulting in a dynamic trotting gait model. This approach was adopted due to its simplicity and functionality and implemented using a high-level <a href=\"https:\/\/www.mathworks.com\/products\/stateflow.html\"><span style=\"text-decoration: underline;\">Stateflow<\/span><span style=\"text-decoration: underline;\">\u00ae<\/span><\/a> controller that integrates various walking and turning states of the quadruped into the final system.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Once the quadruped successfully achieved turning movements while maintaining stability, the team implemented a high-level Stateflow task planner for enhanced navigation. This task planner determines the quadruped&#8217;s movement mode (stationary, walking straight, turning left, or turning right) based on the relative angle and distance to the target coordinates, enabling effective navigation and obstacle avoidance. A demonstration of the quadruped locomotion including a visual of the walking controller and the high-level task planner is shown in Figure 2.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The successful implementation of a stable walking and turning control algorithm, was a critical achievement for the quadruped project and served as a foundation for integrating the other subsystems.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode\" style=\"vertical-align: baseline; width: 682px; height: 424px;\" src=\"https:\/\/blogs.mathworks.com\/student-lounge\/files\/2023\/11\/23Nov20_3.gif\" alt=\"quadrupedLocomotion.gif\" width=\"682\" height=\"424\" \/><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;\"><span style=\"font-weight: bold; font-style: italic;\">Figure 2<\/span><span style=\"font-weight: bold; font-style: italic;\">:<\/span><span style=\"font-style: italic;\"> Quadruped walking gait demonstration. (Top) High-Level Stateflow diagram for motion mode transition and execution, (Bottom Left) Stateflow walk cycle for the Raibert strategy mode, <\/span><span style=\"font-style: italic;\">(Bottom Right) Quadruped 3D visualization. <\/span><\/div>\n<h2 style=\"margin: 20px 10px 5px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;\">Manipulation<\/h2>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The manipulator sub-team adopted a Kinova Gen3 robotic manipulator for this project. The manipulator model was scaled using CAD software to meet the project requirements and the URDF files were then loaded into <a href=\"https:\/\/www.mathworks.com\/products\/matlab.html\"><span style=\"text-decoration: underline;\">MATLAB<\/span><span style=\"text-decoration: underline;\">\u00ae<\/span><\/a> for creating a Simscape model with bodies and revolute joints. A closed-loop control system with PI control was implemented for each joint to ensure smooth and precise movement.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode\" style=\"vertical-align: baseline; width: 660px; height: 226px;\" src=\"https:\/\/blogs.mathworks.com\/student-lounge\/files\/2023\/11\/23Nov20_4.png\" alt=\"manipulatorModel.png\" width=\"660\" height=\"226\" \/><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;\"><span style=\"font-weight: bold; font-style: italic;\">Figure 3<\/span><span style=\"font-style: italic;\">: The end effector. (Left) Simscape<\/span> <span style=\"font-style: italic;\">model, (Right) full manipulator with attached the end effector.<\/span><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">To enable object interaction, an end effector with three fingers was attached to the manipulator. The end effector has two revolute joints per finger, as shown in Figure 2, allowing it to mimic human fingers and securely grasp objects. Inverse kinematics calculations were performed using a rigid body tree and forward kinematics models. A forward kinematics model was generated to determine the position and rotation of the end effector based on the joint angles. An inverse kinematics solver utilizing the Broyden-Fletcher-Goldfarb-Shanno (BFGS) Gradient Projection algorithm was implemented to find the joint angles required to reach a given transform.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">A high-level controller facilitates object picking within the defined environment. The manipulator subsystem (Figure 4) includes a state variable for communication between the quadruped and manipulator. This variable determines when the quadruped is positioned next to the object or the desired end position.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The manipulator task planner manages the order of operations and ensures that the manipulator reaches the correct position before proceeding. It coordinates the movements of the manipulator joints and monitors the states of all subsystems.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode\" style=\"vertical-align: baseline; width: 657px; height: 326px;\" src=\"https:\/\/blogs.mathworks.com\/student-lounge\/files\/2023\/11\/23Nov20_5.png\" alt=\"fullManipulatorModel.png\" width=\"657\" height=\"326\" \/><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;\"><span style=\"font-weight: bold; font-style: italic;\">Figure 4:<\/span><span style=\"font-style: italic;\"> The full manipulation subsystem model.<\/span><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">With the manipulator subsystem implemented, the manipulator is able to pick up objects within the environment. The end effector, equipped with three fingers, curls around an object to secure it in place. Contact forces between the floor, object, and manipulator were simulated for realistic interactions. A complete pick and place task of the manipulator subsystem is shown in Figure 5. The manipulator subsystem was integrated with the quadruped, allowing communication between them.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode\" style=\"vertical-align: baseline; width: 556px; height: 386px;\" src=\"https:\/\/blogs.mathworks.com\/student-lounge\/files\/2023\/11\/23Nov20_6.gif\" alt=\"Manipulator.gif\" width=\"556\" height=\"386\" \/><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;\"><span style=\"font-weight: bold; font-style: italic;\">Figure 5<\/span><span style=\"font-style: italic;\">: A ball picking demonstration.<\/span><\/div>\n<h2 style=\"margin: 20px 10px 5px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;\">Navigation<\/h2>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The navigation sub-team adopted the RRT* algorithm for path planning, enabling the quadruped to navigate through user-defined environments. The RRT* algorithm optimized paths for efficiency, combining two planned paths, namely start to pick-up and pick-up to drop-off, into one array as shown Figure 6.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode\" style=\"vertical-align: baseline; width: 660px; height: 261px;\" src=\"https:\/\/blogs.mathworks.com\/student-lounge\/files\/2023\/11\/23Nov20_7.png\" alt=\"GUIandPath.png\" width=\"660\" height=\"261\" \/><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;\"><span style=\"font-weight: bold; font-style: italic;\">Figure 6<\/span><span style=\"font-style: italic;\">: (left): Functional GUI with start, pick up and place locations, and obstacle blocks, (middle): occupancy grid path from start to object pick-up position, (right): occupancy grid path from pick-up to end place.<\/span><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The environment model was constructed in <a href=\"https:\/\/www.mathworks.com\/products\/simulink.html\">Simulink\u00ae<\/a> based on a Graphical User Interface (GUI) input. The GUI allows intuitive placement of start and end points, obstacles, and pick-up locations, forming a visual representation of the environment. Rigid transform blocks position the quadruped, ball, and podium accurately based on this environment model. Figure 7 demonstrates the user&#8217;s interaction with the GUI, illustrating the creation of an environment map and object placement, followed by automatic generation of the 3D scenario and a navigation path.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Controller optimizations included replacing PID controllers with 1-D lookup tables for manipulator joints, ensuring smoother manipulative actions, and implementing a feedback-based braking system to fix the ball securely to the manipulator&#8217;s palm. The high-level control logic was managed by the task planner implemented in Stateflow, which orchestrates tasks such as path following, ball pick-up, placement, and simulation termination.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode\" style=\"vertical-align: baseline; width: 572px; height: 323px;\" src=\"https:\/\/blogs.mathworks.com\/student-lounge\/files\/2023\/11\/23Nov20_8.gif\" alt=\"GUIInteraction.gif\" width=\"572\" height=\"323\" \/><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;\"><span style=\"font-weight: bold; font-style: italic;\">Figure 7<\/span><span style=\"font-style: italic;\">: A demonstration of a user interaction with the GUI: Creating an environment map, placing objects, and triggering automatic generation of a 3D scenario and navigation path.<\/span><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><\/div>\n<h2 style=\"margin: 20px 10px 5px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;\">Integration<\/h2>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">In the final stages of the project, the team achieved seamless integration of various subsystems to create a functioning autonomous robotic system. The Simulink model illustrating this integration is presented in Figure 8. The GUI played a pivotal role in generating intricate maps and setting waypoints. The Path Planning subsystem, coupled with a Target Selector, enables the quadruped to navigate precisely, ensuring it follows the designated path accurately.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The Path Follower Stateflow module makes real-time decisions based on inputs from the Target Selector and the Angle and Distance Finder. It orchestrates intricate movements, including turns, halts, and forward strides, ensuring the quadruped&#8217;s adherence to the predefined route.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">At the core of this integration, the Task Controller Stateflow oversees the entire process. It monitors the position index, ensuring the quadruped reaches each waypoint as planned. Additionally, it manages the initiation of complex tasks like picking up and dropping off the ball, synchronizing these actions seamlessly within the overall movement plan.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The Quadruped Movement Controller plays a crucial role in executing precise joint movements. These movements are meticulously calculated to maintain balance and stability, ensuring the quadruped&#8217;s movements are both accurate and secure.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The strategic placement of the manipulator at the quadruped&#8217;s enables a balance between stability and functionality, allowing the manipulator to perform tasks efficiently without compromising the quadruped&#8217;s stability during locomotion.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">This detailed integration process highlights the team&#8217;s technical expertise, showcasing their learnings in system integration that turns subsystem elements into a unified and operational robotic system. Figure 9 shows a simulation of the final integrated model of the full system in action.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode\" style=\"vertical-align: baseline; width: 675px; height: 465px;\" src=\"https:\/\/blogs.mathworks.com\/student-lounge\/files\/2023\/11\/23Nov20_9.png\" alt=\"fullModel.png\" width=\"675\" height=\"465\" \/><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;\"><span style=\"font-weight: bold; font-style: italic;\">Figure 8<\/span><span style=\"font-style: italic;\">: The full system Simulink model<\/span><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode\" style=\"vertical-align: baseline; width: 747px; height: 384px;\" src=\"https:\/\/blogs.mathworks.com\/student-lounge\/files\/2023\/11\/23Nov20_10.gif\" alt=\"FullTask.gif\" width=\"747\" height=\"384\" \/><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;\"><span style=\"font-weight: bold; font-style: italic;\">Figure 9<\/span><span style=\"font-style: italic;\">: The full system in action.<\/span><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><\/div>\n<h2 style=\"margin: 20px 10px 5px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;\">Conclusion<\/h2>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Working on this Challenge Problem provided the team with an opportunity to learn several real-world skills. They learned how to break down a large complex robotics problem into smaller subsystems, design and implement those subsystems, and integrate them into an overall functioning system. Throughout this approach, modeling and simulation enabled them to design their functionality in such a way that met the high-level requirements.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><\/div>\n<p><script type=\"text\/javascript\">var css = ''; var head = document.head || document.getElementsByTagName('head')[0], style = document.createElement('style'); head.appendChild(style); style.type = 'text\/css'; if (style.styleSheet){ style.styleSheet.cssText = css; } else { style.appendChild(document.createTextNode(css)); }<\/script><a href=\"https:\/\/blogs.mathworks.com\/student-lounge\/files\/2023\/11\/23Nov20.mlx\"><button class=\"btn btn-sm btn_color_blue pull-right add_margin_10\">Download Live Script<\/button><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"overview-image\"><img src=\"https:\/\/blogs.mathworks.com\/student-lounge\/files\/2023\/11\/23Nov20_10.gif\" class=\"img-responsive attachment-post-thumbnail size-post-thumbnail wp-post-image\" alt=\"\" decoding=\"async\" loading=\"lazy\" \/><\/div>\n<p>For today&#8217;s post Roberto Valenti, who leads the MathWorks Challenge Project program will talk about a senior design class project at University of Sheffield. Over to you,&#8230; <a class=\"read-more\" href=\"https:\/\/blogs.mathworks.com\/student-lounge\/2023\/11\/20\/an-autonomous-quadruped-manipulator-for-pick-and-place-applications\/\">read more >><\/a><\/p>\n","protected":false},"author":183,"featured_media":10503,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[680,14,13],"tags":[262,537,94],"_links":{"self":[{"href":"https:\/\/blogs.mathworks.com\/student-lounge\/wp-json\/wp\/v2\/posts\/10533"}],"collection":[{"href":"https:\/\/blogs.mathworks.com\/student-lounge\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.mathworks.com\/student-lounge\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/student-lounge\/wp-json\/wp\/v2\/users\/183"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/student-lounge\/wp-json\/wp\/v2\/comments?post=10533"}],"version-history":[{"count":6,"href":"https:\/\/blogs.mathworks.com\/student-lounge\/wp-json\/wp\/v2\/posts\/10533\/revisions"}],"predecessor-version":[{"id":10545,"href":"https:\/\/blogs.mathworks.com\/student-lounge\/wp-json\/wp\/v2\/posts\/10533\/revisions\/10545"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/student-lounge\/wp-json\/wp\/v2\/media\/10503"}],"wp:attachment":[{"href":"https:\/\/blogs.mathworks.com\/student-lounge\/wp-json\/wp\/v2\/media?parent=10533"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/student-lounge\/wp-json\/wp\/v2\/categories?post=10533"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/student-lounge\/wp-json\/wp\/v2\/tags?post=10533"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}