Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5

Robot Machining Spherical Part and Turntable

Dear RoboDK,

The project I'm currently developing with RoboDK is as follows:
I need to use RoboDK to scan an object placed on a Turntable with a sonar sensor attached to the robot-arm.
I have already managed to make a sweep in RoboDK with a turntable that turns every time 5 degrees so to 360 (for example) and my sonar looks always to the object on the Turntable(with a distance to that that I can choose) where "an object is sitting on" so it can scan it. So in ide it makes a sphere around it. I made it with the Python API and it works perfectly. But the sweep is always the same and in real world my Turntable can't turn 360 degrees therefore:

I want to make use of the functionality that RoboDK provides: Synchronize Additional Axes.
The setup I want to make is something like the video on the Youtube page of RoboDK:(only my robot is sitting on a linear track). (I included it in attachment)
And it is provide by default in RoboDK as "Example-02.f-Robot Machining Spherical Part and Turntable - ABB.rdk"  Youtube:
[color=var(--ytd-video-primary-info-renderer-title-color, var(--yt-spec-text-primary))]Robot Milling with Turntable (5 axis milling with 8 axes) - RoboDK[/color]

How did you manage to get the robot with the turntable to work like that ?
Did you make it with a Python script for example ? If so is there a way to get that script ? Because it is not in included in the project in RoboDK.

Because when I try to make my project as Synchronize Additional Axes my robot objects they behave totally different. It is like That all the coordinates their reference are changed. 

Are is there a better approach to do it ? Because I know RoboDK is super powerful tool and maybe I'm not using the best approach in RoboDK to solve my problem. Maybe there is a much more efficient way to do that if so please let me now.

All ready thanks for the support

Best regards 
Charpentier Vincent
Hi Vincent,

Did you synchronize your external axes with the robot?
More information here:

You can also attach a synchronized mechanism to a robot using setRobot via the API.

Once you have your robot synchronized, you can move in the Cartesian space attached to your turntable and specify the location of your axes using setJoints on a target. More information here:

If you can share your RDK project file we can better help you.

Dear Albert,

The whole idea is that RoboDK includes the degrees of freedom
of the PTU(=turntable) in its inverse kinematics routine to find a solution for
the pose I ask for. This should make it possible to achieve a better scan pattern around my target. In summary, the goal is:

-)So I make a list with poses (position and orientation) of  a sonar sensor(he sits on top of the robot) and the target (a plate with the object on it, they are sitting on a turntable). This is the "sphere" trajectory I already made, but it can also be another random trajectory. So I want a set of positions and euler angles of quarternionen of the position and orientation of the sonar compared to the coordinate system that hangs on the target plate that is on top of the pan tilt (=Turntable).

-) So I put that plate on the pan tilt(=turntable) with the object, and I put the sonar on the robot

-) I give RoboDK a sequential list of poses (sonar relative to the plate's coordinate system). It is important that I put a logical order here, because that will result in a more efficient trajectory of my arm + PTU.

-) So I want then that RoboDK calculates the sequence of joint angles for the arm through its inverse kinematics, linear track  and for the PTU (=turntable). This is why I want to use RoboDK: inverse kinematics are difficult. Very difficult. RoboDK has a good IK solver, so thats why I want to use it.


Is this possible to achieve in RoboDK? And how ?


Because I spent already a tremendous amount of time figuring out how to work with the synchronized mechanism.


I include two rdk project

  1. WhatIAlreadyHave.rdk If you run in this project so the Python sctipt named traject2 you can see what I want to do in RoboDK so the scanning of the "sphere" trajectory.

  2. objectRecognitionWithSensor.rdk This is the project u asked for. And here I want to implement everything that I said above. And also here I’m working in the Python script named traject2.

All ready thanks again for wanting to help me.

Best regards 
Vincent Charpentier


Attached Files
.rdk   objectRecognitionWithSensor.rdk (Size: 3.73 MB / Downloads: 569)
.rdk   WhatIAlreadyHave.rdk (Size: 3.31 MB / Downloads: 565)

Users browsing this thread:
1 Guest(s)