ROSLink consists of two components:
- helium, the code to be used in legacy projects
 
- roslink, a set of API to perform the marshalling between the data types used in the legacy code and the ROS types, e.g. for declaring that std::string should be mapped to std_msgs::String
 
Download each component from
https://sourceforge.net/projects/roslink/files/
Compilation of ROSlink
As an initial phase, compile both components on your ROS machine:
- extract the zip files in your ros workspace (e.g. ~./ros_workspace), and enter your workspace directory
 
- $ cd helium
 
- $ cmake .
 
- $ make
 
- $ cd ../roslink
 
- $ cmake .
 
- $ make
 
helium needs to be compiled on the legacy system as well. Either: 
- compile all the cpp files of the directory src together as a library, and then link your  code against it  
 
or
- compile all the cpp files of the directory src together with your code
 
Procedure differs depending on your OS / compiler.
- vs.zip provides a Visual Studio Express 2010. 
 
- Makefile.qnx inside helium.zip provides a minimal Makefile for QNX
 
- Makfile.mingw inside helium.zip provides a minimal Makefile for MinGW
 
Tests
ROSLink comes with some examples programs. 
Before running the tests, you need to launch lmaster , which  is the  ROSLink equivalent of roscore:
Each test consists in three programs: a legacy program, a ROS node used to link the legacy code with ROS, and a ROS node used for testing (e.g. a subscriber if the legacy program is a publisher)
You can test the following cases (using different terminals / terminal tabs for each command)
- A legacy publisher, and a ROS subscriber
- $ rosrun roslink lPublisher
 
- $ rosrun roslink mPublisher
 
- $ rosrun roslink rSubscriber
 
 
- A legacy subscriber, and a ROS publisher
- $ rosrun roslink lSubscriber
 
- $ rosrun roslink mSubscriber
 
- $ rosrun roslink rPublisher
 
 
- A legacy server, and a ROS client
- $ rosrun roslink lServer
 
- $ rosrun roslink mServer
 
- $ rosrun roslink rClient 4 5
 
 
- A legacy client, and a ROS server
- $ rosrun roslink rServer
 
- $ rosrun roslink mClient
 
- $ rosrun roslink lClient 4 5
 
 
Please then see the code of these examples, located in the examples folder of roslink 
The examples closely parallel the ROS tutorials ( see topics
and services
)