Robotic kinematics
-
I've started documentation of the 6 axis robot now in https://duet3d.dozuki.com/Wiki/Configuring_RepRapFirmware_for_a_SixAxisRobot?revisionid=HEAD
If someone finds a serious error, please tell me. I will refine the description and add functionality the next weeks. -
The documentation https://duet3d.dozuki.com/Wiki/Configuring_RepRapFirmware_for_a_SixAxisRobot?revisionid=HEAD is now in a fairly stable version. If an important parameter is wrong or missing, please tell me. I'll base the firmware development on those parameters, forward kinematics is ready, inverse kinematics comes next. The development is based on RRF 3.4.
What will be missing in this release is a rail system to move the robot as a whole, calculation arm bending and collission detection. This will come in a later release.
It will probably make sense to maintain the 5-axis-robot code, because it supports a special parallelogram structure with 4 axes which provides higher precision for 3D printers.
-
@tony73 I've just finished the jacobian and inverse jacobian code today to calculate inverse kinematics with nice small matrix code. I can start implementing the kinematics file now. Then I will test the code.
-
@joergs5 it would be great if you would include a diagram of the hole arm to help explain it.
-
@t3p3tony I hesitate to publish commercial robots to avoid image license problems, but when I have a prototype again, I will post images and explanations. Until then, for Kuka KR5 are some good articles with explanation of Denavit-Hartenberg parameters.
Some authors rotate by Y without explanation, I am still struggling sometimes. I'll document examples.
-
@joergs5 sure, it does not have to be a commercial robot - maybe the cad of your implementation?
-
@t3p3tony => DH will be described, see my next post.
Implementing a visual method in DWC would be a nice possibility to show the configuration.
-
@t3p3tony I've found a youtube video with a reuse license: https://www.youtube.com/watch?v=nwj0xR21ldo and use the robot images from there. It's a nice typical 6 axis robot. I'll create a separate document to explain parameters to set for robots, based on this video.
The documentation will be in https://duet3d.dozuki.com/Wiki/Denavit-Hartenberg_parameter_for_Robots?revisionid=HEAD
The video above is a good video to understand part of the DH parameters, so it is useful to watch it. In the video, the last column's values are joint 5 minus pi/2, joint 6 is 0. I am using different methods to get the Jacobian, however.
-
The robot documentation is available at the new documentation site now at https://docs.duet3d.com/User_manual/Machine_configuration/Configuring_RepRapFirmware_for_a_Robot_printer and the explanation with examples of the Denavit-Hartenberg parameters are at https://docs.duet3d.com/User_manual/Machine_configuration/Configuring_Robot_DH_parameters
I wish to implement and push to David the firmware code for 3.5, so it's time to do it calmly and well tested.
-
@joergs5 nice documentation! How did you find using the new wiki?
Ian
-
@droftarts said in Robotic kinematics:
How did you find using the new wiki?
I am very pleased, a few little problems at the beginning like how to plublish external links, but nothing I could not solve. It is especially nice that one can choose between different coding options (pure html, wiki etc) and change between them on-the-fly (I had to test it...).
-
@joergs5 we’re generally doing pages in markdown, with occasional html tags for specific things. If you’re okay with it, I’ll go through it and check/edit it for consistency.
Ian
-
@droftarts yes that's ok, a consistend looking for all pages is a good idea. Please don't delete any information, because I deleted the old documentation.
-
@droftarts you may wish to check https://docs.duet3d.com/en/User_manual/Machine_configuration/Configuration_five_bar_parallel_scara also, the documentation I moved for the 5 bar parallel scara kinematics.
-
HI i was wondering if its possible o use these kinemaics for a 3 axis arm. base rotates 360 deg, arm 1 length is 150mm hinge to hinge with 87 degrees of movement, arm 2 150 mm hinge 95 degrees of movement. kinda like a backhoe. i have it moving on a duet 2 ethernet to where xyz is in mm but really its degrees from home. i setup as5600 encoders on an arduino for testing purposes and to prove to myself it was going where i told it to and it is so far. now i jus want o be able to send regular g gcode o it so i can draw etc with it. now i jog to the points write them down and hand write a small program.
-
@miss-rebekah the kinematics which I use is independent of number of axes, so it will be possible.
However 6 axis are necessary to define all dimentsions (3 for xyz and 3 for orientation of the endpoint in xyz directions), so your 3 actuators will not be able to define all possibilities. But for 3D printing, where the endpoint is always vertical, 3 may be sufficient.
I am currently reprogramming the code and will publish next month. If you wish to test the code and be prepared, please read the two documentation pages so you can define your robot. (If you read the article, you'll see that the defintion of setup is independent of the number of arms. This was intentionally).
I'll provide you with Duet 2 binareies, so it's just a simple upload.
-
@miss-rebekah said in Robotic kinematics:
backhoe
Your backhoe will probably have non vertical endpoints. To solve this, my construction from 2020 Oct 12, https://forum.duet3d.com/topic/17421/robotic-kinematics/112 may be a solution, 5 axis robot, removing 2 axes: one by using the parallel arms which make sure the arm 4 is always vertical, and fix the last arm to 0 degrees always, which means there is no actuator needed. Remaining 3 actuators.
-
-
awesome sauce!! yay!!
yes ill test it. i glanced over that article and i had a few unknowns i understand the right hand rule and coordinate systems ill read it again and get that part figured out. the business end of my robot is parallel/perpendicular(depending on what attachment) with the base via a 4 bar lever at all times. drawing, printing, and pick and place are all i want to do. i have a solid works model of it also.
once i get my robot defined ill reply here and see where your at.
one question
if i have different tools on the end i.e suction cup, claw, pen, or hot end is there a tool offset that an be applied? i only have the suction cup attachment made i may be able to set the program point on all of them in he same location but if i cant.....??
Thank you
-
yes this is what my robot does i didn't realize the last hinged point driven from a 4 bar lever counted as an axis. from that is where i attach tools.
-
@miss-rebekah said in Robotic kinematics:
is there a tool offset that an be applied
The code will use the G10 offsets, allowing toolchangers also. Maybe I can support fixed probes for mesh compensation this way also.