Report (without appendix): bachelor_thesis_appendix_omitted.pdf
The goal of my Bachelor Thesis was to program a robot to navigate through a complex environment, grasp an object of any shape and then deliver it to a goal position. The project group consisted of 6 people. I mainly worked with grasp planning, which entailed picking up and placing down an object at its final destination. Below is a video of the final result:


To locate the object, AprilTags were used. AprilTags are artificial identifiers whose pose, meaning the coordinates and rotation, are possible to calculate relative to the camera. In the image above, the AprilTags are identified in the camera feed and their pose relative to the robot can be seen. The object’s position relative to the tag is known and the tag’s position relative to the camera is also known. Hence, the object’s position relative to the camera is known as well.

For the solution to be as general as possible, Grasp Pose Detection was used to generate viable grasps to grasp the object. Grasp Pose Detection, or GPD for short, is a machine learning package that can generate viable grasps only from point cloud data. As GPD relies only on point cloud data, it can generate grasps for almost any object regardless of their shape or pose. In the image above, the blue hands are the grasps GPD is generating.
After the object’s position and how to grasp it were known, a path for the arm had to be planned and executed without colliding with anything. MoveIt!, a motion planning framework, was used to plan and execute paths. In the video below, a path calculated my MoveIt! was executed and the gripper was closed to finally grasp the object: