Giter Site home page Giter Site logo

tdowrick / ros-igtl-bridge Goto Github PK

View Code? Open in Web Editor NEW

This project forked from openigtlink/ros-igtl-bridge

0.0 2.0 0.0 16.1 MB

ROS node to exchange data between ROS and medical image computing software using the OpenIGTLink protocol.

License: BSD 3-Clause "New" or "Revised" License

CMake 8.10% C++ 91.90%

ros-igtl-bridge's Introduction

ROS-IGTL-Bridge

Author:Tobias Frank, Junichi Tokuda (Brigham and Women's Hospital)

This ROS-Node provides an OpenIGTLink bridge to exchange data with ROS. It supports sending and receiving Transformations, Images, Strings, PolyData, Points and Pointclouds. For further information regarding the OpenIGTLink protocol please see:


Build Instruction

The following steps were tested on:

  • Ubuntu 14.04 + ROS Indigo
  • Ubuntu 16.04 + ROS Kinetic Kame

First, install OpenIGTLink in your local computer. A detailed instruction can be found at http://openigtlink.org/. In the following instruction, we assume that the build directory for the OpenIGTLink library is located at: ~/igtl/OpenIGTLink-build

$ cd <your OpenIGTLink directory>
$ git clone https://github.com/openigtlink/OpenIGTLink.git
$ mkdir OpenIGTLink-build
$ cd OpenIGTLink-build
$ cmake -DBUILD_SHARED_LIBS:BOOL=ON ../OpenIGTLink
$ make

Install ROS and follow the standard ROS instructions to create your ROS workspace if necessary.

$ mkdir -p ~/catkin_ws/src
$ catkin_make
$ source devel/setup.bash

Then download the ros_igtl_bridge package from GitHub:

$ git clone https://github.com/openigtlink/ROS-IGTL-Bridge

and execute catkin_make in your workspace directory:

$ cd ~/catkin_ws/
$ catkin_make --cmake-args -DOpenIGTLink_DIR:PATH=<your OpenIGTLink directory>/OpenIGTLink-build

To run the bridge, type:

$ roslaunch ros_igtl_bridge bridge.launch

If the bridge is set up, you can launch the test procedure for communication with [3D Slicer] (https://www.slicer.org/):

$ roslaunch ros_igtl_bridge test.launch  

It is possible to edit the launch files and set your IP & Port in the file. Run the node as server or client by adjusting the parameter RIB_type. Open the file and uncomment the lines:

$ <!--param name="RIB_server_ip" value="111.111.111.111" type="str"/-->
$ <!--param name="RIB_port" value="18944" type="int"/-->
$ <!--param name="RIB_type" value="client" type="str"/-->

The node can be run as server or client. If you executed the test procedure, the node will send a "ROS_IGTL_Test_Transform" with random translation, a random "ROS_IGTL_Test_Point", a random "ROS_IGTL_Test_Pointcloud" including 20 points, a "ROS_IGTL_Test_String" and a "ROS_IGTL_Test_PolyData", which is a rendered model of the 3D Slicer MRHead sample data. Any data received from 3D Slicer is published to a ROS topic by the bridge node and displayed by the test node.

References

  1. Frank T, Krieger A, Leonard S, Patel NA, Tokuda J. ROS-IGTL-Bridge: an open network interface for image-guided therapy using the ROS environment. Int J Comput Assist Radiol Surg. 2017 May 31. doi: 10.1007/s11548-017-1618-1. PubMed PMID: 28567563.

ros-igtl-bridge's People

Contributors

tokjun avatar tob19 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.