diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..17c239880a67bad805ad0d4d4fdf28eeb7a27e0d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+lib/
+msg/lisp/
+msg_gen/
+src/hueblob/
+bin/
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f8f1c9ccad793e5385c2eb83ffd7ed7b15c5b343..2dd9b2d3e7841137a1a1386df4832b10c72e1605 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -28,3 +28,8 @@ set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
 #rosbuild_link_boost(${PROJECT_NAME} thread)
 #rosbuild_add_executable(example examples/example.cpp)
 #target_link_libraries(example ${PROJECT_NAME})
+
+rosbuild_add_library(ros_import src/ros_import.cpp)
+target_link_libraries(ros_import dynamic-graph)
+
+# rosbuild_add_library(sot_to_ros src/sot_to_ros.cpp)
diff --git a/manifest.xml b/manifest.xml
index 24b619a6bc4b1d6fee9cc710e32608cc85dcd941..251f60fc4d475cb71290b53aaa0e39f04805dabf 100644
--- a/manifest.xml
+++ b/manifest.xml
@@ -1,7 +1,7 @@
 <package>
   <description brief="dynamic_graph">
 
-     dynamic_graph
+     Dynamic graph bindings.
 
   </description>
   <author>Thomas Moulard</author>
@@ -9,6 +9,8 @@
   <review status="unreviewed" notes=""/>
   <url>http://ros.org/wiki/dynamic_graph</url>
 
-</package>
-
+  <depend package="std_msgs"/>
+  <depend package="roscpp"/>
 
+  <rosdep name="dynamic-graph"/>
+</package>
diff --git a/src/ros_import.cpp b/src/ros_import.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..b89ef894891cb353fc9c64e51e51b90548372f41
--- /dev/null
+++ b/src/ros_import.cpp
@@ -0,0 +1,103 @@
+#include <boost/bind.hpp>
+#include <boost/format.hpp>
+#include <boost/function.hpp>
+#include <boost/make_shared.hpp>
+
+#include <ros/ros.h>
+#include <std_msgs/Float64.h>
+
+#include <dynamic-graph/factory.h>
+
+#include "ros_import.hh"
+
+namespace dynamicgraph
+{
+  DYNAMICGRAPH_FACTORY_ENTITY_PLUGIN(RosImport, "RosImport");
+
+  RosImport::RosImport (const std::string& n)
+    : dynamicgraph::Entity(n),
+      nh_ (),
+      bindedSignal_ ()
+  {
+    int argc = 1;
+    char* arg0 = strdup("ros_import");
+    char* argv[] = {arg0, 0};
+    ros::init(argc, argv, "ros_import");
+    free (arg0);
+
+    nh_ = ros::NodeHandle ("dynamic_graph");
+
+    //ros::Publisher blob_pub = n.advertise<hueblob::Blob>("blob", 1000);
+
+    // ros::Rate loop_rate(10);
+
+    // while (ros::ok())
+    //   {
+    // 	hueblob::Blob blob;
+    // 	blob_pub.publish(blob);
+
+    // 	ros::spinOnce();
+    // 	loop_rate.sleep();
+    //   }
+  }
+
+  RosImport::~RosImport ()
+  {
+  }
+
+  void RosImport::display (std::ostream& os) const
+  {
+    os << CLASS_NAME << std::endl;
+  }
+
+  void RosImport::commandLine (const std::string& cmdLine,
+			       std::istringstream& cmdArgs,
+			       std::ostream& os)
+  {
+    std::string signal;
+    std::string topic;
+
+    if (cmdLine == "help")
+      {
+	os << "RosImport: "<< std::endl
+	   << "  - add <SIGNAL> <TOPIC>" << std::endl;
+	Entity::commandLine (cmdLine, cmdArgs, os);
+      }
+    else if (cmdLine == "add")
+      {
+	cmdArgs >> signal >> topic;
+	add<double> (signal, topic);
+      }
+    else if (cmdLine == "rm")
+      {
+	cmdArgs >> signal >> topic;
+	rm (signal, topic);
+      }
+    else if (cmdLine == "clear")
+      clear ();
+    else if (cmdLine == "list")
+      list ();
+    else
+      Entity::commandLine (cmdLine, cmdArgs, os);
+  }
+
+  const std::string& RosImport::getClassName ()
+  {
+    return CLASS_NAME;
+  }
+
+  void RosImport::rm (const std::string& signal, const std::string& topic)
+  {
+  }
+
+  void RosImport::list ()
+  {
+    std::cout << CLASS_NAME << std::endl;
+  }
+
+  void RosImport::clear ()
+  {
+    bindedSignal_.clear ();
+  }
+
+} // end of namespace dynamicgraph.
diff --git a/src/ros_import.hh b/src/ros_import.hh
new file mode 100644
index 0000000000000000000000000000000000000000..da15ae065ab4d62beebfba1a3aced794b0e048b4
--- /dev/null
+++ b/src/ros_import.hh
@@ -0,0 +1,112 @@
+#ifndef DYNAMIC_GRAPH_ROS_IMPORT_HH
+# define DYNAMIC_GRAPH_ROS_IMPORT_HH
+# include <iostream>
+
+# include <boost/shared_ptr.hpp>
+
+# include <dynamic-graph/entity.h>
+# include <dynamic-graph/signal-time-dependent.h>
+
+# include <ros/ros.h>
+
+
+//FIXME: remove me.
+#include <std_msgs/Float64.h>
+
+template <typename SotType>
+class SotToRos;
+
+template <>
+struct SotToRos<double>
+{
+  typedef double sot_t;
+  typedef std_msgs::Float64 ros_t;
+  typedef dynamicgraph::SignalTimeDependent<sot_t, int> signal_t;
+  typedef boost::function<sot_t& (sot_t&, int)> callback_t;
+};
+
+namespace dynamicgraph
+{
+  template <typename D, typename S>
+  void converter (D& dst, const S& src);
+
+  template <>
+  void converter (SotToRos<double>::ros_t& dst,
+		  const SotToRos<double>::sot_t& src)
+  {
+    dst.data = src;
+  }
+
+  class RosImport : public dynamicgraph::Entity
+  {
+  public:
+    typedef std::pair<boost::shared_ptr<dynamicgraph::SignalBase<int> >,
+		      boost::shared_ptr<ros::Publisher> >
+      bindedSignal_t;
+
+    static const std::string CLASS_NAME;
+
+    RosImport (const std::string& n);
+    virtual ~RosImport ();
+
+    void display (std::ostream& os) const;
+    virtual void
+    commandLine (const std::string& cmdLine,
+		 std::istringstream& cmdArgs,
+		 std::ostream& os);
+
+
+    virtual const std::string& getClassName();
+
+  private:
+    void add (const std::string& signal, const std::string& topic);
+    void rm (const std::string& signal, const std::string& topic);
+    void list ();
+    void clear ();
+
+    template <typename T>
+    T& sendData (boost::shared_ptr<ros::Publisher> publisher, T& data, int time)
+    {
+      typename SotToRos<T>::ros_t result;
+      converter (result, data);
+      publisher->publish (result);
+      return data;
+    }
+
+    template <typename T>
+    void add (const std::string& signal, const std::string& topic)
+    {
+      typedef typename SotToRos<T>::sot_t sot_t;
+      typedef typename SotToRos<T>::ros_t ros_t;
+      typedef typename SotToRos<T>::signal_t signal_t;
+      typedef typename SotToRos<T>::callback_t callback_t;
+
+      // Initialize the bindedSignal object.
+      bindedSignal_t bindedSignal;
+
+      // Initialize the publisher.
+      bindedSignal.second =
+	boost::make_shared<ros::Publisher> (nh_.advertise<ros_t>(topic, 1));
+
+      // Initialize the signal.
+      boost::format signalName ("RosImport(%1%)::%2%");
+      signalName % name % signal;
+
+      callback_t signalCallback = boost::bind
+	(&RosImport::sendData<sot_t>, this, bindedSignal.second, _1, _2);
+
+      bindedSignal.first = boost::make_shared<signal_t>
+	(signalCallback, sotNOSIGNAL, signalName.str ());
+      signalRegistration (*bindedSignal.first);
+
+      bindedSignal_.push_back(bindedSignal);
+    }
+
+
+    ros::NodeHandle nh_;
+
+    std::vector<bindedSignal_t> bindedSignal_;
+  };
+} // end of namespace dynamicgraph.
+
+#endif //! DYNAMIC_GRAPH_ROS_IMPORT_HH