Hi everyone,
I'm currently working on a project where I need to synchronize a KUKA robot with a DKP400 turntable in Grasshopper. My goal is for the robotic arm to move with its tool always vertical, following a trajectory based on a reverse L-shaped pipe (and hopefully more complex shapes in the future). Here are the details of the setup and the problem I'm encountering:
Setup:
- The curve is an L shape:
- Starts from (0,0,0) to (0,0,400).
- Then from (0,0,400) to (0,400,400).
- These two lines are joined by a fillet of 50.
- I've divided the L curve every 6 mm and created Pframes.
- Created a pipe and sectioned it with the Pframes.
- Aligned curve seams, opened the curve, and divided the open curves into smaller segments.
- Retrieved the Z value from the Pframes to create new planes.
- Aligned these new planes with the X vector, deconstructed the planes, and created new planes with the origin and Y vector only.
- Performed the linear movements that result in the command for the robotic arm and DKP400.
Goal:
- The robotic arm and turntable should follow a trajectory around the pipe from bottom to top.
- The turntable remains still for the first part.
- At the bend, the turntable rotates 90 degrees around the world Z-axis.
- The turntable tilts following the bend to end up being tilted at 90 degrees around the world Y-axis, allowing the last part to be done vertically.
Problem:
- I can currently achieve this by setting the dynamic value by vector in the external kinematics, rotary axis value, at x=0, y=1, and z=9. These values were found by trial and error (and i am not sure i really understand how it works).
- The issue is that the tool is not always vertical, and I still receive a yellow warning: "The toolpaths contain possible singularities that can lead to excessive axis speed. Proceed with care."
Question:
1. How can I achieve my goal of keeping the tool always vertical throughout the entire trajectory ?while tilting and rotating the table, and eliminate the yellow warning correctly? Please tell me if you have a better way to do this.
Additional questions :
2. By dividing the curve as I did, I encounter a "pinch" effect at the bend. The distance between two planes is shorter on the internal angle than on the external angle. I would like to correct this and have thought about using the geodetic method with a sphere (useful for non-planar surfaces) to maintain a consistent distance between section points. How can i do this.
3. While I am currently using the DKP400, I will need to replicate this with a custom turntable. In reality, I have a custom turntable with KUKA motors. How should I approach this in Grasshopper?
Additionally, I will replicate this setup with a second curve, which is a reverse L with another 90-degree bend.
Thank you for your help!
I'm currently working on a project where I need to synchronize a KUKA robot with a DKP400 turntable in Grasshopper. My goal is for the robotic arm to move with its tool always vertical, following a trajectory based on a reverse L-shaped pipe (and hopefully more complex shapes in the future). Here are the details of the setup and the problem I'm encountering:
Setup:
- The curve is an L shape:
- Starts from (0,0,0) to (0,0,400).
- Then from (0,0,400) to (0,400,400).
- These two lines are joined by a fillet of 50.
- I've divided the L curve every 6 mm and created Pframes.
- Created a pipe and sectioned it with the Pframes.
- Aligned curve seams, opened the curve, and divided the open curves into smaller segments.
- Retrieved the Z value from the Pframes to create new planes.
- Aligned these new planes with the X vector, deconstructed the planes, and created new planes with the origin and Y vector only.
- Performed the linear movements that result in the command for the robotic arm and DKP400.
Goal:
- The robotic arm and turntable should follow a trajectory around the pipe from bottom to top.
- The turntable remains still for the first part.
- At the bend, the turntable rotates 90 degrees around the world Z-axis.
- The turntable tilts following the bend to end up being tilted at 90 degrees around the world Y-axis, allowing the last part to be done vertically.
Problem:
- I can currently achieve this by setting the dynamic value by vector in the external kinematics, rotary axis value, at x=0, y=1, and z=9. These values were found by trial and error (and i am not sure i really understand how it works).
- The issue is that the tool is not always vertical, and I still receive a yellow warning: "The toolpaths contain possible singularities that can lead to excessive axis speed. Proceed with care."
Question:
1. How can I achieve my goal of keeping the tool always vertical throughout the entire trajectory ?while tilting and rotating the table, and eliminate the yellow warning correctly? Please tell me if you have a better way to do this.
Additional questions :
2. By dividing the curve as I did, I encounter a "pinch" effect at the bend. The distance between two planes is shorter on the internal angle than on the external angle. I would like to correct this and have thought about using the geodetic method with a sphere (useful for non-planar surfaces) to maintain a consistent distance between section points. How can i do this.
3. While I am currently using the DKP400, I will need to replicate this with a custom turntable. In reality, I have a custom turntable with KUKA motors. How should I approach this in Grasshopper?
Additionally, I will replicate this setup with a second curve, which is a reverse L with another 90-degree bend.
Thank you for your help!