We recently bolted a ABB CRB15000 GoFa on a custom table, and we are trying to change the robot coordinate frame in our grasshopper environment to build projects in the world coordinate of rhino/grasshopper, so that they directly match to our physical origin of the table. We have already measured a wobj (x,y,z,q1,q2,q3,q4) for it in the controller, so we have 2 questions :
- Is there a simple way to import back the wobj data into Grasshopper?
- How do you change the base frame / robot coordinate frame based on the measurement of this table work object?
Or is it even the correct procedure?
Thanks a lot in advance for your inputs.
For anyone interested, @gonzalocasas provided a solution which works in our case, so I will simply put it here and cite his words
the “ROS” way of doing this is to update the fixed joint that connect the robot to the world, it can be done in a number of ways. […] The least complicated of them all is to create a new URDF that will simply relink the Robot to the specific location you want.
I prepared this little example [which] uses an additional URDF and MoveIt config package that is mounted on the docker image (instead of having to rebuild the image), and it showcases how you can do that.
To relocate the robot, simply update the
rcf_joint joint in
robot_cell.xacro, and restart docker
Since we might have robots that change of position quite frequently, we opted for another simple solution, working in Rhino : import the wobj back into grasshopper and use it to define a CPlane and build everything (or Orient it) on the CPlane. The robot stays at the world origin. Obviously, with 2 robots, this workaround is obsolete.