diff --git a/action/gotoposition_sensor.action b/action/gotoposition_sensor.action
new file mode 100755
index 0000000000000000000000000000000000000000..cacbd29e60cd4cce93443bf43443740370e452d3
--- /dev/null
+++ b/action/gotoposition_sensor.action
@@ -0,0 +1,8 @@
+#goal definition
+geometry_msgs/PoseStamped destination
+---
+#result definition
+std_msgs/String data
+---
+#feedback
+geometry_msgs/PoseStamped current_position
diff --git a/src/launch/autonomous_offboard_coverage_descend.launch b/src/launch/autonomous_offboard_coverage_descend.launch
new file mode 100644
index 0000000000000000000000000000000000000000..8be0a7c5f655c7b51fdd6d401081aea14a1e3f6a
--- /dev/null
+++ b/src/launch/autonomous_offboard_coverage_descend.launch
@@ -0,0 +1,9 @@
+<launch>
+  <node name="position_control" pkg="autonomous_offboard" type="position_control.py" output="screen" />
+  <node name="action_controller_coverage_descend" pkg="autonomous_offboard" type="action_controller_coverage_descend.py" output="screen" />
+  <node name="goto_position_server" pkg="autonomous_offboard" type="goto_position_server.py" output="screen" />
+  <node name="goto_position_vel_server" pkg="autonomous_offboard" type="goto_position_vel_server.py" output="screen" />
+  <node name="tensorflow_detection" pkg="autonomous_offboard" type="tensorflow_hw_mvBlueFox_detection.py" output="screen" />
+  <node name="descend_on_object_server" pkg="autonomous_offboard" type="descend_on_object_server.py" output="screen" />
+  <node name="obstacle_detection_control" pkg="autonomous_offobard" type="obstacle_detection_control.py" output="screen" />
+</launch>
diff --git a/src/launch/autonomous_offboard_gotopos_sensor.launch b/src/launch/autonomous_offboard_gotopos_sensor.launch
new file mode 100644
index 0000000000000000000000000000000000000000..7a9b4f948b1c3a806d3986a499a750b3ddadb52b
--- /dev/null
+++ b/src/launch/autonomous_offboard_gotopos_sensor.launch
@@ -0,0 +1,6 @@
+<launch>
+  <node name="position_control" pkg="autonomous_offboard" type="position_control.py" output="screen" />
+  <node name="action_controllerGotopos_sensor" pkg="autonomous_offboard" type="action_controllerGotopos_sensor.py" output="screen" />
+  <node name="goto_position_server" pkg="autonomous_offboard" type="goto_position_server.py" output="screen" />
+  <node name="gotoposition_sensor_server" pkg="autonomous_offboard" type="gotoposition_sensor_server.py" output="screen" />
+</launch>
diff --git a/src/launch/autonomous_offboard_vel_square.launch b/src/launch/autonomous_offboard_vel_square.launch
new file mode 100644
index 0000000000000000000000000000000000000000..9602a079e4cdcb3ebcbdb8036c1952e9a42db3d6
--- /dev/null
+++ b/src/launch/autonomous_offboard_vel_square.launch
@@ -0,0 +1,6 @@
+<launch>
+  <node name="position_control" pkg="autonomous_offboard" type="position_control.py" output="screen" />
+  <node name="action_controller_pid_square" pkg="autonomous_offboard" type="action_controller_pid_square.py" output="screen" />
+  <node name="goto_position_server" pkg="autonomous_offboard" type="goto_position_server.py" output="screen" />
+  <node name="goto_position_vel_server" pkg="autonomous_offboard" type="goto_position_vel_server.py" output="screen" />
+</launch>
diff --git a/src/scripts/action_controllerGotopos_sensor.py b/src/scripts/action_controllerGotopos_sensor.py
new file mode 100755
index 0000000000000000000000000000000000000000..5a7ee9638bf0b2deb5c3089596e91c41162e8890
--- /dev/null
+++ b/src/scripts/action_controllerGotopos_sensor.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python
+import roslib
+#roslib.load_manifest('autonomous_offboard')
+import rospy
+import actionlib
+import mavros_state
+import time
+
+from autonomous_offboard.msg import center_on_objectAction,  center_on_objectGoal, descend_on_objectAction, descend_on_objectGoal, detect_objectAction, detect_objectGoal,goto_position_velAction, goto_position_velGoal, goto_positionAction, goto_positionGoal, short_grippersAction, short_grippersGoal, long_grippersAction, long_grippersGoal, coverageAction, coverageGoal, gotoposition_sensorAction , gotoposition_sensorGoal
+
+from std_msgs.msg import Float32
+from geometry_msgs.msg import PoseStamped
+
+if __name__ == '__main__':
+    rospy.init_node('action_controllerGotopos_sensor')
+    gotoposition_sensor_client = actionlib.SimpleActionClient('gotoposition_sensor', gotoposition_sensorAction)
+    gotoposition_sensor_client.wait_for_server()
+    gotoposition_sensor_goal = gotoposition_sensorGoal()
+    mv_state = mavros_state.mavros_state()
+    print 'Setting offboard'
+    mv_state.set_mode('OFFBOARD')
+    print 'Arming vehicle'
+    mv_state.arm(True)
+    rospy.loginfo("Taking off")
+    time.sleep(10)
+
+    rospy.loginfo("First position")
+    gotoposition_sensor_goal.destination.pose.position.x = 2
+    gotoposition_sensor_goal.destination.pose.position.y = 0
+    gotoposition_sensor_goal.destination.pose.position.z = 3
+    gotoposition_sensor_client.send_goal(gotoposition_sensor_goal)
+    gotoposition_sensor_client.wait_for_result()
+
+
+    time.sleep(10)
+
+    mv_state.land(0.0)
diff --git a/src/scripts/action_controller_coverage_descend.py b/src/scripts/action_controller_coverage_descend.py
new file mode 100755
index 0000000000000000000000000000000000000000..2709bb59d07ea92927bc2f9d4f65addc6ea4ea8e
--- /dev/null
+++ b/src/scripts/action_controller_coverage_descend.py
@@ -0,0 +1,107 @@
+#!/usr/bin/env python
+
+import roslib
+#roslib.load_manifest('autonomous_offboard')
+import rospy
+import actionlib
+import mavros_state
+import time
+
+from autonomous_offboard.msg import center_on_objectAction,  center_on_objectGoal, descend_on_objectAction, descend_on_objectGoal, detect_objectAction, detect_objectGoal,goto_position_velAction, goto_position_velGoal, goto_positionAction, goto_positionGoal, short_grippersAction, short_grippersGoal, long_grippersAction, long_grippersGoal, coverageAction, coverageGoal
+
+from std_msgs.msg import Float32
+from geometry_msgs.msg import PoseStamped
+
+if __name__ == '__main__':
+    rospy.init_node('action_controller_coverage_descend')
+    goto_position_vel_client = actionlib.SimpleActionClient('goto_position_vel', goto_position_velAction)
+    goto_position_vel_client.wait_for_server()
+    goto_position_vel_goal = goto_position_velGoal()
+    mv_state = mavros_state.mavros_state()
+    print 'Setting offboard'
+    mv_state.set_mode('OFFBOARD')
+    print 'Arming vehicle'
+    mv_state.arm(True)
+    rospy.loginfo("Taking off")
+    time.sleep(10)
+
+    coverage_client = actionlib.SimpleActionClient('coverage', coverageAction)
+    coverage_client.wait_for_server()
+    coverage_goal = coverageGoal()
+    coverage_goal.destination.pose.position.x = 5
+    coverage_goal.destination.pose.position.y = 0
+    coverage_goal.destination.pose.position.z = 5
+    coverage_client.send_goal(coverage_goal)
+    coverage_client.wait_for_result()
+    res = PoseStamped()
+    res = coverage_client.get_result().detected_object_pos
+    rospy.loginfo("Detected object is at position (x,y,z)=({}, {}, {})".format(
+        res.pose.position.x,
+        res.pose.position.y,
+        res.pose.position.z))
+    if res.pose.position.x == float("inf"):
+        rospy.loginfo("ABORT no object detected. going home")
+        mv_state.land(0.0)
+        mv_state.arm(False)
+    else:
+        rospy.loginfo("Going to detected position")
+        goto_position_vel_goal.destination.pose.position.x = coverage_client.get_result().detected_object_pos.pose.position.x
+        goto_position_vel_goal.destination.pose.position.y = coverage_client.get_result().detected_object_pos.pose.position.y
+        goto_position_vel_goal.destination.pose.position.z = coverage_client.get_result().detected_object_pos.pose.position.z
+        goto_position_vel_client.send_goal(goto_position_goal)
+        goto_position_vel_client.wait_for_result()
+        rospy.loginfo("Is at position (x,y,z)=({}, {}, {})".format(coverage_client.get_result().detected_object_pos.pose.position.x,
+                                                                   coverage_client.get_result().detected_object_pos.pose.position.y,
+                                                                   coverage_client.get_result().detected_object_pos.pose.position.z))
+
+        rospy.loginfo("Descending on object")
+        descend_on_object_client = actionlib.SimpleActionClient('descend_on_object', descend_on_objectAction)
+        descend_on_object_client.wait_for_server()
+        rospy.loginfo("Descending server started")
+        descend_on_object_goal = descend_on_objectGoal()
+        descend_on_objectGoal = 2.0
+        descend_on_object_client.send_goal(descend_on_object_goal)
+        descend_on_object_client.wait_for_result()
+        if descend_on_object_client.get_result().position_reached.data:
+            print("landing")
+            mv_state.arm(False)
+        else:
+            rospy.loginfo("Couldnt land exiting")
+
+        time.sleep(3)
+
+        print 'Setting offboard'
+        mv_state.set_mode('OFFBOARD')
+        print 'Arming vehicle'
+        mv_state.arm(True)
+
+        time.sleep(5)
+
+        rospy.loginfo("Takeoff")
+        goto_position_goal.destination.pose.position.x = 0
+        goto_position_goal.destination.pose.position.y = 0
+        goto_position_goal.destination.pose.position.z = 3
+        goto_position_client.send_goal(goto_position_goal)
+        goto_position_client.wait_for_result()
+
+        time.sleep(5)
+
+        rospy.loginfo("Going Home")
+        goto_position_goal.destination.pose.position.x = -5
+        goto_position_goal.destination.pose.position.y = 0
+        goto_position_goal.destination.pose.position.z = 3
+        goto_position_client.send_goal(goto_position_goal)
+        goto_position_client.wait_for_result()
+
+        time.sleep(5)
+
+        rospy.loginfo("Landing")
+        goto_position_vel_goal.destination.pose.position.x = 0
+        goto_position_vel_goal.destination.pose.position.y = 0
+        goto_position_vel_goal.destination.pose.position.z = -0.1
+        goto_position_vel_client.send_goal(goto_position_vel_goal)
+        goto_position_vel_client.wait_for_result()
+        rospy.loginfo("Trying to land, 10 second sleep")
+        time.sleep(10)
+
+        mv_state.arm(False)
diff --git a/src/scripts/action_controller_pid_square.py b/src/scripts/action_controller_pid_square.py
new file mode 100755
index 0000000000000000000000000000000000000000..c66f2c606440df9dbacf3cb71f91e7d93135d245
--- /dev/null
+++ b/src/scripts/action_controller_pid_square.py
@@ -0,0 +1,63 @@
+#!/usr/bin/env python
+import roslib
+#roslib.load_manifest('autonomous_offboard')
+import rospy
+import actionlib
+import mavros_state
+import time
+
+from autonomous_offboard.msg import center_on_objectAction,  center_on_objectGoal, descend_on_objectAction, descend_on_objectGoal, detect_objectAction, detect_objectGoal,goto_position_velAction, goto_position_velGoal, goto_positionAction, goto_positionGoal, short_grippersAction, short_grippersGoal, long_grippersAction, long_grippersGoal, coverageAction, coverageGoal
+
+from std_msgs.msg import Float32
+from geometry_msgs.msg import PoseStamped
+
+if __name__ == '__main__':
+    rospy.init_node('action_controller_pid_square')
+    goto_position_vel_client = actionlib.SimpleActionClient('goto_position_vel', goto_position_velAction)
+    goto_position_vel_client.wait_for_server()
+    goto_position_vel_goal = goto_position_velGoal()
+    mv_state = mavros_state.mavros_state()
+    print 'Setting offboard'
+    mv_state.set_mode('OFFBOARD')
+    print 'Arming vehicle'
+    mv_state.arm(True)
+    rospy.loginfo("Taking off")
+    time.sleep(10)
+
+    rospy.loginfo("First position")
+    goto_position_vel_goal.destination.pose.position.x = 5
+    goto_position_vel_goal.destination.pose.position.y = 0
+    goto_position_vel_goal.destination.pose.position.z = 3
+    goto_position_vel_client.send_goal(goto_position_vel_goal)
+    goto_position_vel_client.wait_for_result()
+
+    time.sleep(10)
+
+    rospy.loginfo("Second position")
+    goto_position_vel_goal.destination.pose.position.x = 0
+    goto_position_vel_goal.destination.pose.position.y = -5
+    goto_position_vel_goal.destination.pose.position.z = 3
+    goto_position_vel_client.send_goal(goto_position_vel_goal)
+    goto_position_vel_client.wait_for_result()
+
+    time.sleep(10)
+
+    rospy.loginfo("Third position")
+    goto_position_vel_goal.destination.pose.position.x = -5
+    goto_position_vel_goal.destination.pose.position.y = 0
+    goto_position_vel_goal.destination.pose.position.z = 3
+    goto_position_vel_client.send_goal(goto_position_vel_goal)
+    goto_position_vel_client.wait_for_result()
+
+    time.sleep(10)
+
+    rospy.loginfo("Fourth position")
+    goto_position_vel_goal.destination.pose.position.x = 0
+    goto_position_vel_goal.destination.pose.position.y = 5
+    goto_position_vel_goal.destination.pose.position.z = 3
+    goto_position_vel_client.send_goal(goto_position_vel_goal)
+    goto_position_vel_client.wait_for_result()
+
+    time.sleep(10)
+
+    mv_state.land(0.0)
diff --git a/src/scripts/gotoposition_sensor_server.py b/src/scripts/gotoposition_sensor_server.py
new file mode 100755
index 0000000000000000000000000000000000000000..213939b31f8be43e17389a6bd47c18d97ca59ea1
--- /dev/null
+++ b/src/scripts/gotoposition_sensor_server.py
@@ -0,0 +1,94 @@
+#!/usr/bin/env python
+import rospy
+import actionlib
+import math
+import tf
+import numpy
+import time
+import autonomous_offboard.msg
+from std_msgs.msg import Bool, String, Float32, Float64
+from geometry_msgs.msg import PoseStamped, Quaternion
+
+
+
+
+
+
+class gotoposition_sensor_server():
+    def __init__(self):
+
+        #---------------Variables---------------#
+
+        self.local_pose = PoseStamped()
+        self.avoid_pose = PoseStamped()
+        self.goal_pose = PoseStamped()
+        self.distance = Float32()
+        self.yaw = Float32()
+
+
+        #---------------Publishers---------------#
+        self.pose_control = rospy.Publisher('/position_control/set_position', PoseStamped, queue_size=10)
+        self.mode_control = rospy.Publisher('/position_control/set_mode', String, queue_size=10)
+        self.vel_control = rospy.Publisher('/position_control/set_velocity', PoseStamped, queue_size=10)
+        self.velpose_control = rospy.Publisher('/position_control/set_velocityPose',PoseStamped,queue_size=10)
+
+        # ---------------Subscribers---------------#
+
+        rospy.Subscriber('/position_control/distance', Bool, self.distance_reached_cb)
+        rospy.Subscriber('/position_control/Real_pose', PoseStamped, self._Real_pose_callback)
+        rospy.Subscriber('/position_control/set_mode', String, self.set_mode_callback)
+        rospy.Subscriber('/position_control/Yawangle', Float32, self.yaw_callback)
+
+        # ---------------Start---------------#
+        self.rate = rospy.Rate(20)
+        self.action_server = actionlib.SimpleActionServer('gotoposition_sensor', autonomous_offboard.msg.gotoposition_sensorAction,
+                                                          execute_cb=self.execute_cb, auto_start=False)
+        self.action_server.start()
+
+    def execute_cb(self, goal):
+
+        #Set the orientation before start in position mode.
+        self.mode_control.publish('velposctr')
+        Azimut = math.atan2(goal.destination.pose.position.y - self.Real_pose.pose.position.y,
+                             goal.destination.pose.position.x - self.Real_pose.pose.position.x)
+        quaternion = tf.transformations.quaternion_from_euler(0, 0, Azimut)
+        goal.destination.pose.orientation.x = quaternion[0]
+        goal.destination.pose.orientation.y = quaternion[1]
+        goal.destination.pose.orientation.z = quaternion[2]
+        goal.destination.pose.orientation.w = quaternion[3]
+        self.goal_pose = goal.destination
+        self.velpose_control.publish(goal.destination)
+
+
+        while not self.target_reached:
+            self.rate.sleep()
+
+        rospy.loginfo("Destination reached")
+        self.action_server.set_succeeded()
+
+
+
+    def distance_reached_cb(self, data):
+        self.target_reached = data.data
+
+    def _Real_pose_callback(self, data):
+        self.Real_pose = data
+
+
+    def set_mode_callback(self, data):
+        self.current_mode = data
+
+
+    def yaw_callback(self,data):
+        self.yaw = data
+
+
+
+
+if __name__ == '__main__':
+    try:
+
+        rospy.init_node('gotoposition_sensor_server')
+        gotoposition_sensor_server()
+    except rospy.ROSInterruptException:
+        pass
diff --git a/src/scripts/object-detection.pbtxt b/src/scripts/object-detection.pbtxt
new file mode 100755
index 0000000000000000000000000000000000000000..e4b0964ee82c2bcf6b341db71c207db31d2cb59f
--- /dev/null
+++ b/src/scripts/object-detection.pbtxt
@@ -0,0 +1,8 @@
+item{
+	id: 1
+	name: 'UAVFrame'
+}
+item{
+	id: 2
+	name: 'UAVCenter'
+}
diff --git a/src/scripts/object_detection/__init__.pyc b/src/scripts/object_detection/__init__.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..76f04a950a6cbb15173c178edca6d055ecf5e35f
Binary files /dev/null and b/src/scripts/object_detection/__init__.pyc differ
diff --git a/src/scripts/object_detection/core/__init__.pyc b/src/scripts/object_detection/core/__init__.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..3a5bc3829bba5d225f3e5eefd2fcd312b281e731
Binary files /dev/null and b/src/scripts/object_detection/core/__init__.pyc differ
diff --git a/src/scripts/object_detection/core/standard_fields.pyc b/src/scripts/object_detection/core/standard_fields.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..9fa6d9409594225a394faa8026aa207d1e1513ee
Binary files /dev/null and b/src/scripts/object_detection/core/standard_fields.pyc differ
diff --git a/src/scripts/object_detection/protos/__init__.pyc b/src/scripts/object_detection/protos/__init__.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..15d192b685b538b92fb313d2f714fc8f55b7f3cd
Binary files /dev/null and b/src/scripts/object_detection/protos/__init__.pyc differ
diff --git a/src/scripts/object_detection/protos/string_int_label_map_pb2.pyc b/src/scripts/object_detection/protos/string_int_label_map_pb2.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..b1ff27f89c3b50c877b8b6ab799f5a00c6996725
Binary files /dev/null and b/src/scripts/object_detection/protos/string_int_label_map_pb2.pyc differ
diff --git a/src/scripts/object_detection/utils/__init__.pyc b/src/scripts/object_detection/utils/__init__.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..ea778877dfd133ae4643d44f04215694f9331ebd
Binary files /dev/null and b/src/scripts/object_detection/utils/__init__.pyc differ
diff --git a/src/scripts/object_detection/utils/label_map_util.pyc b/src/scripts/object_detection/utils/label_map_util.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..b4e34170840b7b2e077161fbf2f5432d16c5fd62
Binary files /dev/null and b/src/scripts/object_detection/utils/label_map_util.pyc differ
diff --git a/src/scripts/object_detection/utils/visualization_utils.pyc b/src/scripts/object_detection/utils/visualization_utils.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..1a8eae62fd32aab5839e9ba436f5a92366ecee2e
Binary files /dev/null and b/src/scripts/object_detection/utils/visualization_utils.pyc differ
diff --git a/src/scripts/stuff/__init__.pyc b/src/scripts/stuff/__init__.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..8077279e27c97a52a8cd785706d20c6c127a1b19
Binary files /dev/null and b/src/scripts/stuff/__init__.pyc differ
diff --git a/src/scripts/stuff/helper.pyc b/src/scripts/stuff/helper.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..09ac878a88c4ea60668dba0d4b5aefc27d9a1154
Binary files /dev/null and b/src/scripts/stuff/helper.pyc differ