Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    4 axis palletized robot arm (robot kinematics) for 3D printing

    Scheduled Pinned Locked Moved
    MultiAxis Printing
    6
    52
    3.2k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • YuriConfessorundefined
      YuriConfessor
      last edited by

      Hello guys, I've been able to include the DH parameters directly to the gcode by creating a slicer using grasshopper. But this solution is not pratical in any form. @JoergS5 is it possible to launch a firmware with the DH enabled on the K13 so I can figure the robot directly on the config file? I'm using a cartesian kinematics and tricking the machine with the gcode. Here is a short video of it "building" a cillinder: lRobot kinda working

      JoergS5undefined 1 Reply Last reply Reply Quote 0
      • JoergS5undefined
        JoergS5 @YuriConfessor
        last edited by

        @YuriConfessor I will provide an unfinished version on Feb 24/25 for your printer type, which is missing some features like velocity/angle checks. I'll provide a Duet 2 binary for you.

        YuriConfessorundefined 1 Reply Last reply Reply Quote 1
        • YuriConfessorundefined
          YuriConfessor @JoergS5
          last edited by

          @JoergS5 Ok, thank you! I'll post here if I have any updates

          1 Reply Last reply Reply Quote 0
          • Nakcamundefined
            Nakcam
            last edited by Nakcam

            Any uppdates on this? Im trying to get inverse kinematics working on the same type of robot.

            I might be wrong but this should be a serial scara but when axis 1 moves axis 2 need to follow to keep the relative angle (axis 1 to 2) the same? the relative move should be a 1:1 = just add axis 1 moves to axis 2?

            a3304429-b54a-4974-a406-dd2a5f56f85e.jpg

            JoergS5undefined 1 Reply Last reply Reply Quote 0
            • JoergS5undefined
              JoergS5 @Nakcam
              last edited by JoergS5

              @Nakcam it's more complicated then serial Scara:

              the platform in front stays horizontal, due to the arm's nature: they make movements of a parallelogram, which means some of the arms stay parallel. The calculation is simliar to 5 bar paralleld scara, where two actuators together make a movement which is restricted by the connection at the end point. The inverse kinematics must calculate back with this restriction, with the added problem that there are multiple solutions for the inverse kinematics.

              Your image looks fine, but differs from the black robot model: the back arms of his model are fix connected to the platform at the bottom. (looking from back, the left one)

              4parallel_fixedarm_small2.jpg

              Do you have a prototype, or only the drawing? If you have a working model or prototype, please give me information about how it is built exactly. (which of the arms are connected to the actuators=steppers, which are only connected through hinge, but not driven by the stepper)

              Nakcamundefined 1 Reply Last reply Reply Quote 0
              • Nakcamundefined
                Nakcam @JoergS5
                last edited by Nakcam

                @JoergS5 Thanks for the reply. I have now found the robot 4 axis pelletized section of the duet3d documentation ( duet3d*/User_manual/Machine_configuration/robot_4_axis_palletized), this sould be a perfekt fitt.
                I have uploaded the "github*/JoergS5/RepRapFirmware_robot" firmware to the board and run the firmware update. But now im stuck with :

                M669 K13 B"axisTypes=PRRRp"
                currently only CoreXY5AC and CoreXY5BC are support

                and it wont take the D values

                === M669 K13 current config ===
                numOfAxes 5 axisTypes �������� chain ���������������������������������������� (normal �������������������� special �������������)
                axis � ori: -0.00 0.00 0.00 point: -0.00 0.00 0.00 angles min/max/home: -0.00 0.00 0.00
                axis � ori: 0.00 0.00 0.00 point: 0.00 0.00 0.00 angles min/max/home: 0.00 0.00 0.00
                axis � ori: 0.00 0.00 0.00 point: 0.00 0.00 0.00 angles min/max/home: 0.00 0.00 0.00
                axis � ori: 0.00 0.00 0.00 point: 0.00 0.00 0.00 angles min/max/home: 0.00 0.00 0.00
                axis � ori: 0.00 0.00 0.00 point: 0.00 0.00 0.00 angles min/max/home: 0.00 0.00 0.00
                Screw values:
                reference angles/positions: -0.00 0.00 0.00 0.00 0.00
                endpoint axis X: -0.00 -0.00 -0.00
                endpoint axis Y: -0.00 -0.00 -0.00
                endpoint axis Z: -0.00 -0.00 -0.00
                endpoint point: -0.00 -0.00 -0.00
                abSign: 0 (A/B angle preference: 0 take >=0, 1 take <= 0, 2 don't change calculation
                cache used: -1 maximum: 200

                Mine is the same as yours with one arm fixt to the base (mine is to the right seen from behind)
                I do have a fysikal protorype. Screenshot 2025-02-06 104248.jpg config (1).g

                Nakcamundefined 1 Reply Last reply Reply Quote 0
                • Nakcamundefined
                  Nakcam @Nakcam
                  last edited by Nakcam

                  @Nakcam This is a old picture, it does have motors and move. But not with Inverse kinematicVID20250128172507-ezgif.com-optimize.gif

                  IMG20250206105730.jpg

                  JoergS5undefined 1 Reply Last reply Reply Quote 0
                  • JoergS5undefined
                    JoergS5 @Nakcam
                    last edited by JoergS5

                    @Nakcam the kinematics is not implemented yet, but I'll try to do it with your help.

                    4parParts.png

                    Please confirm or correct me:

                    • 1 is connected with first actuator/stpper
                    • 2 is connected with the other
                    • 3 is connected to base
                    • 4 is a hinge connecting three parts: tringle low, big arm and other big arm

                    Your short video looks like the front horizontal platform tilts a bit, the front going a bit down. This may be an optical illustion. But if it's real, then some of the angles are wrong and the construction is not a parallelogram. Maybe you'll need to change the prototype a bit. But let's make the kinematics first.

                    BTW I like your prototype, because the gear is belt based, which means low or no backlash. The planetary based gears have some play when changing orientation of the rotations.

                    Nakcamundefined 1 Reply Last reply Reply Quote 0
                    • Nakcamundefined
                      Nakcam @JoergS5
                      last edited by Nakcam

                      @JoergS5 Thanks for helping out! You are correct on how the linkage work (point 1-4). The platform is tilted a bit, but the tilt does not change when moving (it does a tiny bit but that's because of sloop in the system, i did not have all the right fasteners at hand). I am working on a updated version that uses Capstan-Drive system. I would like to get this working first.
                      here's a fusion 360 link to the cad model
                      a360.**/42M19T2

                      in using 1.8degree steppers and total gearing is 51,8 (5,18:1+200:20)

                      JoergS5undefined 1 Reply Last reply Reply Quote 1
                      • JoergS5undefined
                        JoergS5 @Nakcam
                        last edited by

                        @Nakcam I can work next weekend on it, and it would be nice if you can make some tests with the prototype, verifiying code, while I develop the code. I can provide you the RRF binary for each test.

                        Nakcamundefined 1 Reply Last reply Reply Quote 0
                        • Nakcamundefined
                          Nakcam @JoergS5
                          last edited by

                          @JoergS5 Sounds great! Is there some "hack" to force the D values for now? Or is the robot firmware on github not working?

                          JoergS5undefined 1 Reply Last reply Reply Quote 0
                          • JoergS5undefined
                            JoergS5 @Nakcam
                            last edited by

                            @Nakcam the D values make only sense when the axes are calculated in the chain. This is only implemented for CoreXY. I you want to test setting D values in advance, just define your config for CoreXY.

                            Nakcamundefined 1 Reply Last reply Reply Quote 0
                            • Nakcamundefined
                              Nakcam @JoergS5
                              last edited by

                              @JoergS5 Ok. I will wait for your test bin files then. here is some dimensions of my arm robot.jpg

                              JoergS5undefined 2 Replies Last reply Reply Quote 0
                              • JoergS5undefined
                                JoergS5 @Nakcam
                                last edited by JoergS5

                                @Nakcam thank you! I don't have Fusion, so from your image I can make a prototype as well.

                                Please measure the triangle lenghts as well, from hinge to hinge each.

                                1 Reply Last reply Reply Quote 0
                                • JoergS5undefined
                                  JoergS5 @Nakcam
                                  last edited by

                                  @Nakcam here is a short explanation of the parallelograms:

                                  parall.jpg

                                  The blue and red ones are connected through the triangle. The triangle is like a curve of the arms from up to down.

                                  The opposite sides of blue, red and green parallelograms shall be parallel each. When they become "flat", i.e. small angles and opposite sides near at each other, the movements and caluclations will become inexact. So this situations should be avoided.

                                  Nakcamundefined 1 Reply Last reply Reply Quote 1
                                  • Nakcamundefined
                                    Nakcam @JoergS5
                                    last edited by

                                    @JoergS5 Screenshot 2025-02-06 145518.jpg
                                    Here is a better drawing. Is there som cad format that you prefer? I can export to most of them. would you suggest any changes to the geometry?

                                    JoergS5undefined 1 Reply Last reply Reply Quote 0
                                    • JoergS5undefined
                                      JoergS5 @Nakcam
                                      last edited by

                                      @Nakcam thanks a lot, I hope this is sufficient information for now to start. After the firmware runs, we can discuss improvements if you like. As always it will depend on what you want to do with it whether it's worth to improve precision etc.

                                      This remembers me of that I need a load lifter, maybe I'll build it this this kinematics. Similar to a IRB 760.

                                      Nakcamundefined 1 Reply Last reply Reply Quote 0
                                      • Nakcamundefined
                                        Nakcam @JoergS5
                                        last edited by

                                        @JoergS5 My plan is to use this robot to reload my resin printer, so the final version should be capable to handle about 1.5kg. it will be mounted on a linear rail. Repetability will be more important than absolut precision.
                                        I do own a cnc mill and the final version might be in aluminium or laser cut plywood. But its 3d printed for now

                                        1 Reply Last reply Reply Quote 0
                                        • Nakcamundefined
                                          Nakcam
                                          last edited by

                                          I have added a rotational axis nr1 to the base. 1794913c-3c3d-4565-a314-77819e7326c2.jpg

                                          JoergS5undefined 1 Reply Last reply Reply Quote 0
                                          • JoergS5undefined
                                            JoergS5 @Nakcam
                                            last edited by JoergS5

                                            @Nakcam sorry for the delay. I had a family problem, I'll try to proceed.

                                            I want to clearify, please tell me:

                                            parallelDetail.jpg

                                            My understanding is:

                                            • 1 is the first actuator
                                            • 2 is the second one. Together they define through the parallelogram the blue arm and the lower end position, lower hinge
                                            • 4 (the second arm in back of 1) is unclear for me: is it just to stabilize or has it a movement function?
                                            • 5, 6 and 7 define the upper endpoint in respect to the lower endpoint through parallelism

                                            Is my understanding correct?

                                            Comment in advance to the linear rail where you plan to install it on: this fits perfect into a calculation chain, but you have 4 actuators and 3 degrees of freedom (xyz, orientation always the same). This results in indefinite solutions (you can reach a point with different combinations of linear rail and the 3 actuators), i.e. for a desired position there must be installed a strategy. E.g. if the planned coodination is out of reach, move the linear rail to the middle of the new next work area. This movement should not be in a move, but between moves. I want to make something similar: some (5 or 6) robot arm installed on a linear rail at the wall.

                                            Nakcamundefined 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Unless otherwise noted, all forum content is licensed under CC-BY-SA