However, since this is a real robot [..], the values don't perfectly match what I see on the teach pendant.
How are you calculating FK? Do you use TF?
And could you quantify how much of a difference you see between rosrun tf2_tools echo.py base tool0
and what the TP tells you?
I was wondering if there's a way to get the current cartesian pose of the robot from the controller. Is this already provided by the fanuc_driver
No, there is currently no support for retrieving the Cartesian pose from the controller in fanuc_driver
.
This has been done before though, albeit not in the publicly available version.
can I make slight modifications to the package to achieve this?
"Slight modifications" would depend on your perspective :)
At a high-level, you'd have to:
- add a new message type and data structure to simple_message (something like a Cartesian pose)
- update industrial_robot_client to make use of that new message and convert it to a TF broadcast of the
base->tool0_controller
transform (TF would most likely make the most sense) - update the Karel code to:
- support that message type
- create and send that message periodically
Definitely possible, but a bit of work.
If you want to do this, I would recommend doing it for fanuc_driver_exp instead of regular fanuc_driver
. The code is structured better which would probably make it easier to add additional messages.
PS: I'm working on a ROS wrapper which will publish the state output broadcast by the R891 option. This would allow for very high update rates (up to several hundred Hz compared to the 125 Hz max of Karel) and would decouple this from fanuc_driver
and fanuc_driver_exp
. No ETA for that though.