User Tools

Site Tools


getting_started:tutorials:hal4

Using ROS through the HAL

EEROS can communicate with ROS through the HAL, see Interfacing with ROS. The HAL can work with ROS1 or ROS2. However, you have to make sure, that you compile EEROS with support for the right version of ROS and use the right version for the ROS HAL.

Using ROS1

In the EEROS library you will find a directory with examples. For this example see RosTest2.cpp.

This examples with ROS will only be present in your build directory if ROS was installed before building EEROS with -DUSE_ROS=TRUE set, see Preparations and Building. Open a shell in the build directory of your EEROS library and run

$ sudo -E ./examples/ros2/rosTest2 -c RosTest2Config.json

Publishing

This example runs your EEROS application as a ROS node under the name /eerosNode. It publishes two topics

  • /test/val (of type double)
  • /test/state (of type boolean)

Use the same tools as in Control System Talking to ROS to show nodes, topics and messages. The output on /test/state reflects what is input on /rosNodeTalker/state. As long as this topic is not written to, the published state will not change, see below.

Subscribing

Open another shell in the build directory of your EEROS library and run rosNodeTalker. This is not a EEROS program but simply starts a ROS node which publishes a couple of test topics. As soon as rosNodeTalker runs, your example application will receive the two topics

  • /rosNodeTalker/val (of type double)
  • /rosNodeTalker/state (of type boolean)

and logs its transported message values into the console. Use

$ rqt_graph

to show a graph with all involved nodes together with their topics.

Another Example

There is another example, RosExample with HalConfigRos.json. It demonstrates the use of more message types.

Using ROS2

In the EEROS library you will find a directory with examples. For this example see RosTest2.cpp.

Open a shell in the build directory of your EEROS library. This examples with ROS will only be present in your build directory if ROS2 was installed before building EEROS with -DUSE_ROS2=TRUE set, see Preparations and Building.

If you work on a target make sure to setup the environment as given in Running your ROS Example.

Open a shell in the build directory of your EEROS library and run

$ sudo -E ./examples/ros/rosTest2 -c RosTest2Config.json

Publishing

This example runs your EEROS application as a ROS node under the name /eerosNode. It publishes two topics

  • /test/val (of type double)
  • /test/state (of type boolean)

Use the same tools as in Control System Talking to ROS to show nodes, topics and messages. The output on /test/state reflects what is input on /rosNodeTalker/state. As long as this topic is not written to, the published state will not change, see below.

Subscribing

Open another shell in the build directory of your EEROS library and run rosNodeTalker. This is not a EEROS program but simply starts a ROS node which publishes a couple of test topics. As soon as rosNodeTalker runs, your example application will receive the two topics

  • /rosNodeTalker/val (of type double)
  • /rosNodeTalker/state (of type boolean)

and logs its transported message values into the console. Use

$ rqt

to show a graph with all involved nodes together with their topics or to plot messages.

getting_started/tutorials/hal4.txt · Last modified: 2023/02/27 14:02 by ursgraf