0
$\begingroup$

Rosanswers logo

My goal is to control the Franka Panda system in cartesian velocity coordinates using vision data that is being published within my ROS network.

I'm currently writing a custom controller as recommended in Franka ROS: https://frankaemika.github.io/docs/franka_ros.html#writing-your-own-controller

The cartesian velocity controller works well, but I have no method of subscribing to the input data since Franka ROS controllers are real-time.

What is the recommended method of achieving this? I saw somewhere that ROS controllers can host services, but this seems suboptimal. Do I have to implement a hardware interface? And if so, how I can write that to wrap a ROS subscriber?

Thanks


Originally posted by hmccarty on ROS Answers with karma: 16 on 2022-06-25

Post score: 0

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

I ended up using the realtime_tools package to solve this. You can use a RealtimeBuffer to pass data from your non-RT thread (like a subscriber callback) to a RT thread (like your controller update function). An example is detailed in the ackermann steering controller.


Originally posted by hmccarty with karma: 16 on 2022-06-26

This answer was ACCEPTED on the original site

Post score: 0

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.