Posts: 10
Threads: 5
Joined: Apr 2019
Reputation:
0
Is there a way that i can make the post output my positions based on a reference frame instead of its Global positions, like using a G54 on a CNC
Posts: 995
Threads: 1
Joined: Apr 2018
Reputation:
49
RoboDK automatically exports all movements as targets with respect to their reference frame (or the active reference frame). There are some exceptions such as the default Motoman post processor (which exports targets in joint pulses by default) and the G-code NCP post which applies the reference frame transformation to the target.
You should handle reference frames in the "setFrame" call of the post processor. Most post processors output program code when changing the reference frame, some posts keep the pose of the reference frame and pre-multiply all Cartesian targets by the reference frame pose (such as the Nachi or OTC post processors).
Posts: 10
Threads: 5
Joined: Apr 2019
Reputation:
0
Thanks for the response Albert. So in my post, i found the function setFrame. i'm not sure what i have to do here to make this work. i want the point to be output using Frame 2 as the reference frame
def setFrame(self, pose, frame_id=None, frame_name=None):
"""Change the robot reference frame"""
# the reference frame is not needed if we use joint space for joint and linear movements
# the reference frame is also not needed if we use cartesian moves with respect to the robot base frame
# the cartesian targets must be pre-multiplied by the active reference frame
self.REF_FRAME = pose
self.addline('# set_reference(%s)' % pose_2_str(pose))
Posts: 995
Threads: 1
Joined: Apr 2018
Reputation:
49
Are you using Universal Robots?
UR is also another exception.
I believe they dropped support regarding the set reference command on the latest versions.