ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

  1. Do you really need realtime control? At what rate are you trying to control your motors?
  2. As Bence said, a good architecture for doing realtime control in a ROS environment is OROCOS/RTT.

If you create an RTT component, you can make a given input/output port use some ROS message type, and then use the tools in the rtt_ros_integration package to connect that port up to a ROS topic ( http://www.ros.org/wiki/rtt_ros_integration ). The default way to interact with an RTT component is through the OCL Deployer interface, and you can write interpreted scripts for this interface that specify how to connect RTT ports up to ROS topics. The line of script to connect an RTT port to a ROS topic looks something like this:

stream("YourComponentName.YourRTTPortName", ros.topic("/topic_name"))
  1. Do you really need realtime control? At what rate are you trying to control your motors?
  2. As Bence said, a good architecture for doing realtime control in a ROS environment is OROCOS/RTT.
  3. If you just care about publishing from your realtime loops, there is a realtime publisher in the realtime_tools package (http://www.ros.org/wiki/realtime_tools), but I've never used these.

If you create an RTT component, you can make a given input/output port use some ROS message type, and then use the tools in the rtt_ros_integration package to connect that port up to a ROS topic ( http://www.ros.org/wiki/rtt_ros_integration ). The default way to interact with an RTT component is through the OCL Deployer interface, and you can write interpreted scripts for this interface that specify how to connect RTT ports up to ROS topics. The line of script to connect an RTT port to a ROS topic looks something like this:

stream("YourComponentName.YourRTTPortName", ros.topic("/topic_name"))