# PickingDK: A Framework for Industrial Bin-Picking Applications
## 1 Introduction  
In recent years, the increase of the industrial product demand has imposed optimization of production lines in order to maintain competitiveness. In addition, aging and work preference changes in developed countries have encouraged the development of new automation technologies. As a consequence, smart robotics systems emerge as a compelling solution for automatizing processes. Robotic systems have proved to be outstanding for repetitive tasks. In the future, due to the rise of artificial intelligence, robot systems are expected to perform more complex tasks and adapt to changing environments. Bin picking is an example of this problem. It is generally defined as a process of emptying a container with randomly distributed pieces and placing them in a specific position. In spite of its simple definition, bin picking poses a series of challenges that are non-trivial to tackle, such as the localization of pieces, the calculation of grasps, and collision-free path planning and control. These tasks imply a high level of cognition capabilities. Moreover, the difficulties of these challenges may vary depending on the type of the pieces and the environment setups. Bin-picking systems are usually composed of an optical sensor (3D or 2D), a robot, and an end-effector (magnet, vacuum, gripper, etc.). The choice of these components varies depending on the application. A typical workflow starts with the localization of the pieces, which analyzes the data acquired from the optical sensor and obtains valid object poses. Then, it is followed by the grasping pose calculation and the trajectory generation towards the grasping poses. The robot executes a collision free trajectory in order to pick the object and place it in the desired destination. This process is repeated until the bin is empty or it is impossible to pick the remaining pieces. Bin picking has been addressed by researchers at universities and in industries with different goals in mind as it combines fields of robotics and artificial intelligence. Academiatends to focus on the picking efficacy of unknown objects, typically daily-lightweight objects, as in the Amazon Robotic Challenge [1]. In the industrial context, more emphasis is placed on the cycle time, robustness, and reliability. Moreover, the model of the pieces is normally known beforehand. However, contrary to daily-lightweight objects, industrial pieces are usually big and heavy and require compliance of traceability and safety standards. On the other hand, the constant demand of customized products requires higher flexibility in an industrial bin-picking application, to lower the efforts spent on switching among different production lines or hardware. For instance, it is common to utilize specifically designed end-effectors for picking up different types of pieces in real applications. The benefits of automated industrial bin-picking systems are two-fold: first, they increase the production process speed, and secondly, human resources can be reallocated to other tasks that are less backbreaking. Developing a bin-picking system that overcomes all these challenges at once is not an easy feat. Industries tend to rely on ad-hoc solutions for well defined picking problems, which can hardly be adapted to other application scenarios. In this sense, a considerable amount of design work is necessary since not every robotic manipulator or gripper is suitable for every bin-picking problems. It takes a lot of effort to effect even a small change in a pipeline of this type. In recent years, several commercial and open-source types of software have been developed to simulate [2] and implement a solution for the previously mentioned challenges. Commonly, off-the-shelf software is easier to use and more intuitive, but it is restricted to the supported robot components and comes with a steep price tag. Open-source software tends to be agnostic to the hardware and more flexible, which provides the possibility of developing reusable applications.