A project of the Robotics 2023 class of the School of Information Science and Technology (SIST) of ShanghaiTech University. Course Instructor: Prof. Sören Schwertfeger.

Yang Yaxun, Meng Xiangting

Final Report (PDF)

Abstract

The Fetch robot is equipped with a mobile base, a manipulator arm, and various sensors that enable it to successfully complete a given task. This project utilizes the Fetch Robot for the purpose of wiping whiteboards. The project is divided into two stages. The first stage concentrates on designing the arm trajectory and visualizing it using the 'Cartesian Planner' tool. The second stage aims to detect the whiteboard using a 2D Lindar and dynamically accomplish the wiping task. 

System Description

Our project is aim to use Fetch Robot accomplish the whiteboard cleaning task. And the whole fetch robot is shown as followed:

Fetch robot is equipped with move base, robot truck, robot arm , 2D Lindar and other sensors such as RGB-D camera. In this project, we only use the basic structure of Fetch robot and 2D Lindar.

Planning Scene

In order to avoid making collision with obstacle in environment, it is needed to add planning scene which specify the obstacle pose and shape. According to working environment , the floor and debris located on the back of the robot, are simply defined as Cubes, where floors are four cubes below the 0 scale of z-axis (front_ground, back_ground, right_ground and left_ground) and debris are blocked behind a 2 high wall-like cube.

The essential part is locating and presenting the white board. we can use the 2D Lidar in Fetch to detect the tape bound to the bottom of the whiteboard for localizing the whiteboard and determining the distance between the robot arm and the whiteboard. Furthermore, We want to use RANSAC algorithm to extract whiteboard tape which would be disturbed by environment wall. To deal with this, we apply a scan filter only remaining  the scan result between -3.14~0 (rad),  where whiteboard tape line is the longest line in filter scan result. We publish the detected line as line marker, so we can check whether we got the idea line through Rviz. After getting the idea whiteboard tape detection, a 2m high, real pose box-shape whiteboard is created dynamically. 


Besides, a 0.06*0.28*0.08 whiteboard sponge is defined as an attached obstacle to robot "gripper_link" and is set collision free with "l_gripper_link" and "r_gripper_link" frame. The whiteboard is special made for the wiping project, we connected the two sponges with hot melt glue, which one is a hard texture and suitable as a handle, the other one is soft with space in the middle which can withstand 2-5 cm extrusion deformation, so is suitable as contact surfaces with whiteboard. A wet rag is fixed to the sponge by two clips which makes the whiteboard easier to wipe and easier to clean by manually.
                

Cartesian Planner

Cartesian Planners plugin of MoveIt! In the context of robotic arms, Cartesian planning is the generation of motion trajectories where a goal is specified in terms of the desired location of the end effector. And in this plugin, cartesian goal is a six degree of freedom pose, which typically fully specifies the position and orientation of the end effector or tool (although it is not uncommon to only partially constrain the end effector pose). Cartesian planning often supports various types of constraints that a global joint-based planner does not. Then, with the feedback from Cartesian Planners, we can visually do motion planning for fetch robot. 

Constraints

MoveIt!interface provide 4 kinds of constraints—— joint constraint, orientation constraint, position constraint and visibility constraint. With meeting the requirements of our project, we want to enforce the end effector move though a line and keep squeezing the attached sponge into whiteboard. However, the current cartesian path interface do not suppose constraints setting, and common ompl planner constraint based on sampling in constrained state space which cannot deal with linear constrained space. The new approach presented by Kingston and et al. showcases a projection-based sampling and provide line and plane moving constraints handle approach. 

Auto Wiping

To make the robot aware of the specific area it needs to clean, we measure the height and width of the target whiteboard and hard-code this information. The robot is then able to move its arm in a predetermined trajectory, such as top to bottom or left to right, while gently pressing the sponge to clean the entire area.

In order to accomplish this, we create MoveGroupInterface objects and define target end poses for the gripper. The gripper is then moved to these poses one at a time. However, in the whiteboard wipe part, we do not have the final pose yet. To address this, we combine it with the previous plugin "Cartesian Planners" which provides pose feedback. We add the poses to the previous code and supplement some additional details. By doing so, we are able to achieve the basic functionality of the cleaning process.

Video