diff --git a/src/beacon_positioning/CMakeLists.txt b/src/beacon_positioning/CMakeLists.txt
index 2bffa0e9..394101c3 100644
--- a/src/beacon_positioning/CMakeLists.txt
+++ b/src/beacon_positioning/CMakeLists.txt
@@ -23,6 +23,12 @@ find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(std_msgs REQUIRED)
find_package(positioning_systems_api REQUIRED)
+find_package(rosidl_default_generators REQUIRED)
+
+rosidl_generate_interfaces($PROJECT_NAME
+ "msg/TrackerPosition.msg" # message for tracker position
+)
+
add_executable(tracker_position src/tracker_position.cpp)
ament_target_dependencies(tracker_position rclcpp std_msgs)
diff --git a/src/beacon_positioning/msg/TrackerPosition.msg b/src/beacon_positioning/msg/TrackerPosition.msg
new file mode 100644
index 00000000..23ecbff4
--- /dev/null
+++ b/src/beacon_positioning/msg/TrackerPosition.msg
@@ -0,0 +1,5 @@
+int32 id
+int64 x_pos
+int64 y_pos
+int64 z_pos
+int64[4] anchor_distances
diff --git a/src/beacon_positioning/package.xml b/src/beacon_positioning/package.xml
index 120478b7..4fd70d57 100644
--- a/src/beacon_positioning/package.xml
+++ b/src/beacon_positioning/package.xml
@@ -8,13 +8,17 @@
Apache License 2.0
ament_cmake
+ rosidl_default_generators
+ rosidl_default_runtime
rclcpp
std_msgs
+ rosidl_interface_packages
+
ament_lint_auto
ament_lint_common
ament_cmake
-
+
\ No newline at end of file