An open-source anthropomorphic robot hand system: HRI hand

Graphical abstract

into two types: the gripper type [9] and the anthropomorphic (multi-finger) type [10]. The gripper type is the simplest form of an end-effector and is most commonly used in the industrial field (Fig. 1a). It is usually a two-finger gripper or three-finger gripper, and it picks up objects with opening and closing motions [2][3][4]. However, the gripper type can conduct only simple tasks, such as picking up an object, and it has limitations in cases where a machine needs to be operated or when tasks requiring precise operation need to be performed. The anthropomorphic type mimics the human hand and has the appearance of a multi-finger configuration (Fig. 1b). To collaborate with humans, collaborative robots should be able to handle various tools in the same space as humans. Therefore, the anthropomorphic type is more capable for broader applications than the simple gripper type. However, for this anthropomorphic type, it is necessary to secure a large number of degrees of freedom (DoF), which requires a corresponding number of actuators, complex mechanisms, and control algorithms [10][11][12][13][14][15]. Several research studies are robot end-effector open-source projects. Dollar et al. [16] proposed an adaptive and compliant grasper (two-fingered gripper), which is constructed using polymer-based shape deposition manufacturing (SDM). This gripper is actuated by a single DC motor without the aid of any sensory feedback. Ma et al. [17] developed a modular 3D-printed under-actuated end-effector (four-fingered gripper). The hand is designed with a hybrid pulley/whiffletree differential mechanism and flexure joints, which are made of low-cost materials and 3D-printed parts (less than $500). Tlegenov et al. [18] proposed a robotic end-effector platform for facilitating research on robotic grasping. This gripper is actuated by a single servo motor without sensory feedback and three-fingered under-actuated mechanisms. Krausz et al. [19] developed a six DoF anthropomorphic type robot hand. The hand has one DoF for each finger, with coupled MCP and PIP joints, and two DoF for the thumb: one for flexion/extension and one for rotation.
We present the hardware and software of our open-source anthropomorphic robot hand system for experiments in a collaborative robot, which we call the HRI hand. The HRI hand is a research platform that can be built at a lower price (approximately $500, using only 3D printing) than a commercial end-effector. Moreover, it is designed as a two four-bar linkage for the under-actuated mechanism and provides pre-shaping motion similar to the human hand prior to touching an object [20]. Additionally, the robot finger is modularized and researchers can use it as an end-effector with the desired shape according to the design of the palm. Each finger is actuated by one linear motor. The thumb part has an extra motor for an abduction/ adduction. For controlling all fingers, the micro-controller unit (MCU) using NUCLEO-F303K8 and can receive control signals by Bluetooth wireless communication. A URDF, python node, and rviz package are also provided to support the Robot Operating System (ROS) [22].

Hardware description
The proposed robot hand is identical in the joint structures because it mimics a human hand ( Fig. 2a-b). The four fingers, excluding the thumb, consist of distal interphalangeal (DIP), proximal interphalangeal (PIP), and metacarpophalangeal (MCP) joints. The thumb part consists of interphalangeal (IP), metacar-pophalangeal (MCP), and carpometacarpal (CMC) joints. Representative features of the HRI hand are as follows: Each finger is modular, so they can be combined in various forms. The robot finger has an under-actuated mechanism, the MCP joint is operated with one motor, and the PIP and DIP joints operate dependently.  The wrist of the robot hand is based on ISO 9409-1-50-4-M6; therefore, it is compatible with robot arms of this specification.
The robot hand introduced in this paper is intended to be combined with a UR3 manipulator (Fig. 2c) and used for various applications. The dimensions of the HRI hand system are 84 mm Â 61 mm Â 235.5 mm, the dimensions of each finger are 13.16 mm Â 13.2 mm Â 82 mm, and the total weight is 570 g. These values are similar to the average adult male's hand and finger size. The detailed specifications are shown in Table 1.
The control architecture is as follows and outlined in Fig. 3. The MCU uses the STM32F303 (32-bit processor, 64 MHz). The switching mode power supply (SMPS) is supplied with 12 V and 2 A of power, which is connected to a linear motor that operates the robot finger. To supply power to the MCU, a step-down regulator is used to convert from 12 V to 5 V. The PWM signal is sent to the motor at Timer 1-3 of the MCU and controlled. For communication with the Bluetooth module, UART 1 is set to 115,200 bps. At this time, the firmware upload uses UART 2 to prevent collision. The Bluetooth module consists of a master and a slave; the slave module connects with the MCU, and the master module connects with a PC to enable wireless communication. The data protocol for controlling the robot finger is as shown in Table 2.
As shown in Fig. 4, a finger module consists of the four links and three joints (MCP, PIP, and DIP joints). Since the finger module is an under-actuated system based on the two four-bar linkage mechanism, the MCP and PIP joints are connected to a four-bar link (Link A). Additionally, the PIP and DIP joints are connected to a four-bar link (Link B). The PIP and DIP joints operate dependently by the motor connected with the MCP joint.

Design files
The hardware design files for the HRI hand system are summarized in Table 4 and the software components are summarized in Table 5.

Software files summary
MCU firmware of the HRI hand: the MCU firmware uses HAL driver API from STMicroelectronics and the complier using TrueSTUDIO for STM32.  Electronic schematic: using Altium Designer, ''hri_hand_schematic.SchDoc" is the electronic circuit, and ''hri_hand_v2_1. PcbDoc" is the PCB layout. ROS packages: include the URDF xacro file of the HRI hand, Rviz visualization launch files, and python node for controlling the HRI hand.

Bill of materials
The bill of materials for this project is summarized in Table 6.
A list of all of the components used in this project can be found in the BOM spreadsheet: https://osf.io/2zybw/.

HRI hand assembly
The total assembly process of the HRI hand is carried out in the order outlined in Fig. 8a-f. Several additional processing steps are required before the assembly of the HRI hand begins. First, for the components of the robot finger, 'F03_MC_AL_-Finger_01, 02' and 'F03_PI_AL_Finger_01, 02', tap processing is required as shown in Fig. 7, and it is combined with headlessbolt M2.0 Â 4 mm. 'F02_palm_botom' in Fig. 8e also needs tap processing in all holes. M3.0 Â 8 mm bolts used in Fig. 8d are recommended for use with extra low head cap screws. As shown in Fig. 8a, the robot finger is modular. It can be composed of various types of end-effectors based on the purpose of the user as well as the ease of maintenance.

Configuration of electronic schematic
The control board of the HRI hand controls six linear motors and is controlled based on data as shown in Table 2 through the Bluetooth module. The electronic schematic of this control board is as shown in Fig. 9, and the layout of the PCB board is shown in Fig. 10. All the schematics for the HRI hand system are available at the following open-source websites: OSF link: https://osf.io/wudtf/ GitHub repository: https://github.com/MrLacuqer/HRI-hand-firmware.git

Operation instructions
In this section, we discuss how to operate the hardware. At the time of writing, snapshots of the firmware, configuration files, and software have been stored in the project's repository on the Open Science Foundation's website. These snapshots are the versions of the software referred to in this article. More recent versions of this software may be found in the GitHub repositories listed in Table 3.

Operation procedure
Download the MCU firmware of the HRI hand in the repositories listed in Table 3. Connect the NUCLEO-F303K8 to the PC and firmware uploading to the NUCLEO-F303K8. If successful in uploading the firmware to the NUCLEO-F303K8, each finger of the HRI hand will complete a bending motion one by one (Fig. 11).

Robot Operating system (ROS) package procedure
The HRI hand system is interoperable with the ROS. For this, the Unified Robot Description Format (URDF) and the visualization package are configured. The URDF is the description of a robot consisting of a set of link (part) elements, and a set of joint elements connecting the links together, which is an XML format [27]. The visualization package consists of the ''robot state publisher", ''joint state publisher", and ''rviz". The robot state publisher is publishing the transformation of the robot based on URDF file, and the joint state publisher is publishing the joint position of the robot [28,29]. The rviz is a ROS graphical interface that allows the user to visualize a lot of information [30], this package, visualizing the robot state and joint state. There is also a python node that can control the HRI hand, which can be implemented through the following process. The python node executes the motor control signal, robot state, and joint state of each finger. Install 'Ubuntu 16.04' and 'ROS Kinetic' on a computer. Connect the USB-to-serial adapter to the PC and type the following command: $ cd $/catkin_ws/src && git clone https://github.com/MrLacuqer/HRI-Hand-ROS.git $ cd $/catkin_ws && catkin_make $ rospack profile && rosstack profile $ roslaunch hri_hand_control hri_hand_control.launch $ rosrun hri_hand_control hri_joint_state_pub.py

Validation and characterization
The proposed HRI hand system is developed with a five-finger structure, but each finger is modularized, so it can be developed with end-effector with various shapes depending on the shape of the palm. Therefore, the grasping force limit of the end-effector is different according to the finger module combination. The fingertip force is measured by an F/T (force/torque) sensor (HEX-70-XE-200 N, Optoforce Co., Denmark), as shown in Fig. 12a. The sensor data is transmitted through the DAQ (data acquisition) device to the PC when the finger module presses the plastic jig. The plastic jig is mounted to distribute the pressure to the F/T sensor equally. The finger module generates 8.76 N at the peak, as shown in Fig. 12b.
To verify the maximum flexion/extension speed, we developed an experimental environment, as shown in Fig. 13a. The angle of the MCP joint is measured from the magnetic encoder (EzEncoder, i2A Systems Co., South Korea), and the measured angle is differentiated according to time to calculate the angular velocity. As a result, as shown in Fig. 13b, the maximum velocity of the bending motion is 185.10°/s, and the maximum velocity of the extension motion is 179.50°/s. All experiments are performed ten times.
To verify the object grasping of the HRI hand, as shown in Fig. 14, we have determined the six grasp types following [31][32][33]. The detail size and weight of the grasp objects shown in Table 7. The precision grasp is an experiment to verify dexterity and sensitivity (Fig. 15a-b). In contrast, the power grasp is important to maintain robust grasping despite the operation of the manipulator. Therefore, as shown in Fig. 15c-f, power grasping is verified through up-down and swinging motions after the HRI hand is mounted on the manipulator. All grasping experiments were successful.
All experimental videos are available at the following links:    The robot finger is modularized; researchers can use it as an end-effector of a desired shape according to the design of the palm as shown as Fig. 16.

Conclusions
In this paper, we presented an open-source anthropomorphic robot hand system called HRI hand. Our robot hand system is developed with a focus on the end-effector role of the collaborative robot manipulator. Since the proposed robot hand imitated the human hand, the four fingers, excluding the thumb, consist of DIP, PIP, and MCP joints. The HRI hand is a research  platform that can be built at a lower price (approximately $500, using only 3D printing) than a commercial end-effector. Moreover, it is designed as a two four-bar linkage for the under-actuated mechanism and provides pre-shaping motion similar to the human hand prior to touching an object. The thumb part consists of IP, MCP, and CMC joints, and operates MCP and CMC joints with two motors. The motor is controlled based on the control signal received by the micro-controller unit (MCU) via Bluetooth communication. A URDF, python node, and rviz package is also provided to support the Robot Operating System (ROS). All hardware CAD design files and software source codes have been released and can be easily assembled and modified.
The system proposed in this paper is developed with a five-finger structure, but each finger is modularized, so it can be developed with end-effectors of various shapes depending on the shape of the palm. For example, it is possible to construct various types of end-effectors depending on the researcher's purpose, such as two-fingered grippers with two fingers or three-fingered grippers with three fingers. For those interested in implementing a variety of robot applications using the proposed system, we would strongly encourage contacting the corresponding author to discuss potential collaboration.

Declaration of Competing Interest
The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.