diff --git a/modules/catkin_ws/src/car/include/camera/camera.h b/modules/catkin_ws/src/car/include/camera/camera.h
new file mode 100644
index 0000000000000000000000000000000000000000..6d86a30843e89a50392e8b1aa6ac5154c87f1684
--- /dev/null
+++ b/modules/catkin_ws/src/car/include/camera/camera.h
@@ -0,0 +1,24 @@
+#ifndef CAMERA_H
+#define CAMERA_H
+
+#include <nodelet/nodelet.h>
+#include <ros/ros.h>
+#include "boost/thread.hpp"
+
+namespace car
+{
+	class Camera : public nodelet::Nodelet
+	{
+		public:
+			virtual void onInit();
+			Camera(ros::NodeHandle &nh, std::string &name);
+			Camera();
+			~Camera();
+		private:
+			ros::NodeHandle nh_;
+			std::string name_;
+			ros::Publisher camData;
+      boost::thread main;
+	};
+}
+#endif
diff --git a/modules/catkin_ws/src/car/src/camera/camera.cpp b/modules/catkin_ws/src/car/src/camera/camera.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..699b1810afb7e56aa1f9ba191b00ffacefe806ca
--- /dev/null
+++ b/modules/catkin_ws/src/car/src/camera/camera.cpp
@@ -0,0 +1,30 @@
+#include <pluginlib/class_list_macros.h>
+#include <ros/ros.h>
+
+#include "camera/camera.h"
+
+#include "car/camDataMsg.h"
+
+PLUGINLIB_EXPORT_CLASS(car::Camera, nodelet::Nodelet);
+
+namespace car
+{
+	Camera::Camera(ros::NodeHandle &nh, std::string &name) : nh_(nh), name_(name) {}
+	Camera::Camera() {}
+	Camera::~Camera() {}
+	void Camera::onInit()
+	{
+		NODELET_INFO("Camera::onInit -- START");
+	  camData = nh_.advertise<camDataMsg>("camData", 1);
+    main = boost::thread([this] () {
+      ros::Rate rate{1};
+      while(ros::ok()) {
+        camDataMsg msg;
+        camData.publish(msg);
+        rate.sleep();
+      }
+    });
+
+		NODELET_INFO("Camera::onInit -- END");
+	}
+}