Page 81 - ESAM-1-4
P. 81

Engineering Science in
            Additive Manufacturing                                                TwinPrint: Dual-arm robotic bioprinting



            increased degrees of freedom and do not naturally read   seconds for a print is calculated based on the speed of the
            G-code, a parsing approach was developed to extract the   arm (v) and the total displacement (d ) of the arm, and the
                                                                                            T
            required commands for each point from the G-code.  formula is expressed as follows:
            2.2.2. Geometry code (G-code) parsing                 t P  =  d T                              (1)
            The Dobot Magician is compatible with a Repetier host 3D   v
            printing software that establishes communication between   In terms of extrusion, the flow rate from all active
            a single Dobot and the software, allowing users to load   syringe pumps provides an approximate total flow rate
            G-code files and 3D print, as is done with generic Cartesian   for the extrusion at the tip of the needle. While it is an
            3D printers. However, in this case, the aim is to integrate   approximation due to material loss during extrusion,
            two Dobot Magician arms for communication and printing,   the effects are considered negligible. The movement of
            which is beyond the scope of the Repetier Host software.   the arms is synced with the speed of extrusion, which is,
            Hence, a Python program was developed from scratch to   decidedly, the summed-up flow rate of the active pumps.
            achieve  this  goal.  Because  the  default  Dobot  application   Note that the F value of the G-code refers to the feed
            programming interface (API) protocol is not designed to   rate, or the print move, in which extrusion occurs. It is
            accept G-code files, a G-code parser was first implemented   essential that the speed setting is aligned with the rate of
            in  the  Python  program.  For  successful  translation,  the   extrusion to avoid shearing and inconsistency in the case
            parsing process included two essential steps: information   of quickened movement, and an undesirable thickness in
            extraction and instantaneous coordinate calculations. The   the case of slower movements. Hence, the compatibility of
            parser first scans the loaded G-code file of the 3D construct   both speeds for the pumps and arm needs to be optimized
            intended to be printed, line by line, looking for a specific   to ensure optimal print quality.
            pattern of interest, denoted by a letter G followed by a
            number that indicates the type of geometry change. In   2.3. Robotic arms integration
            addition, the G line provides information on the selected   For the dual-arm integration, the TwinPrint system
            positioning type (absolute or relative), XYZ coordinates,   leverages Dynamic-link libraries alongside a Python API
            and extrusion feed rate (denoted by F). For instance, G90   provided by Dobot  to communicate with the robots. The
                                                                              ®
            sets the positioning type to “Absolute” for the subsequent   two robotic arms are connected via separate computer USB
            G lines, which contain the XYZ geometric locations with   ports and take turns in printing based on the number of
            respect to the current location.                   layers specified for each arm by the user. The arms initially
              When a G-code file is loaded into the Python program,   agree on a global point in 3D space as a start point for the
            instantaneous  geometric  coordinate recalculations are   cooperative 3D printing to begin. The two robotic arms are
            done based on the selected positioning type, and the new   positioned facing each other with respect to the location
            coordinates are stored temporarily in the system. Absolute   of the plate. The arm’s maximum reachability in terms of
            positioning moves the robotic arm exactly to the XYZ   the x-axis must be taken into consideration; the farther the
            coordinates, while relative positioning indicates how   arm is placed, the less printing space it can cover. The user
            far the XYZ point is from the current location. The user   specifies and saves the set global point within the printing
            specifies and saves a starting point to which each absolute   workspace in the system, which acts as a reference point
            coordinate is added. In the case of relative positioning,   from which the 3D structure coordinates are recalculated
            the XYZ coordinates of the starting point are only added   by each arm separately. Therefore, precision when setting
            to the first geometric location in the G-code. The rest   the common global point is of utmost importance. Slight
            of the coordinates are added, one by one, to the latest   offsets from the robotic arm motors prove to be detrimental
            accumulated value.                                 to the print quality.
              Furthermore, the number of layers in a 3D structure is   For collision avoidance between the two arms, the
            found by counting how many times the Z value is altered   handing-over process is timed; only one arm moves at a
            in the G-code file while parsing. Here, the Z value stands   time to or from the printing workspace. In addition, the
            for the height parameter in the print. This information is   waiting location of each arm is at a particular distance
            useful when splitting the layers between the two arms to   away from the set global point. While the arm is waiting
            send the recalculated coordinates associated with each   for its turn, it is kept moving back and forth in a segment
            layer to the appropriate arm, and to keep track of printing   of 2 mm to avoid timeout.
            progress, in terms of numbers of layers that have been   In the case that the arms are working in tandem on the
            printed and are still left. Moreover, the printing time (t ) in   same 3D structure, they are bound to operate within the
                                                       P

            Volume 1 Issue 4 (2025)                         4                          doi: 10.36922/ESAM025410025
   76   77   78   79   80   81   82   83   84   85   86