|
27 | 27 | ) |
28 | 28 | from robot_interface.models.robots.media import MediaConfig |
29 | 29 | from robot_interface.robot_interface import RobotInterface |
30 | | -from robot_interface.telemetry.mqtt_client import MqttTelemetryPublisher |
| 30 | +from robot_interface.telemetry.mqtt_client import TelemetryParameters |
31 | 31 |
|
32 | 32 | from isar_robot import inspections, telemetry |
33 | 33 | from isar_robot.config.settings import settings |
@@ -137,88 +137,48 @@ def inspection_handler_with_crash(): |
137 | 137 | def initialize(self) -> None: |
138 | 138 | return |
139 | 139 |
|
140 | | - def _get_pose_telemetry(self, isar_id: str, robot_name: str) -> str: |
| 140 | + def _get_pose_telemetry(self) -> str: |
141 | 141 | current_target: Position | None = None |
142 | 142 | if self.mission_simulation: |
143 | 143 | current_task = self.mission_simulation.current_task() |
144 | 144 | if current_task and isinstance(current_task, InspectionTask): |
145 | 145 | current_target = current_task.robot_pose.position |
146 | 146 |
|
147 | | - return self.telemetry.get_pose_telemetry( |
148 | | - isar_id=isar_id, robot_name=robot_name, current_target=current_target |
149 | | - ) |
150 | | - |
151 | | - def _get_battery_telemetry(self, isar_id: str, robot_name: str) -> str: |
152 | | - return self.telemetry.get_battery_telemetry( |
153 | | - isar_id=isar_id, robot_name=robot_name, is_home=self.robot_is_home |
154 | | - ) |
155 | | - |
156 | | - def get_telemetry_publishers( |
157 | | - self, queue: Queue, isar_id: str, robot_name: str |
158 | | - ) -> list[Thread]: |
159 | | - publisher_threads: list[Thread] = [] |
160 | | - |
161 | | - pose_publisher: MqttTelemetryPublisher = MqttTelemetryPublisher( |
162 | | - mqtt_queue=queue, |
163 | | - telemetry_method=self._get_pose_telemetry, |
164 | | - topic=f"isar/{isar_id}/pose", |
165 | | - interval=settings.ROBOT_POSE_PUBLISH_INTERVAL, |
166 | | - retain=False, |
167 | | - ) |
168 | | - pose_thread: Thread = Thread( |
169 | | - target=pose_publisher.run, |
170 | | - args=[isar_id, robot_name], |
171 | | - name="ISAR Robot Pose Publisher", |
172 | | - daemon=True, |
173 | | - ) |
174 | | - publisher_threads.append(pose_thread) |
175 | | - |
176 | | - battery_publisher: MqttTelemetryPublisher = MqttTelemetryPublisher( |
177 | | - mqtt_queue=queue, |
178 | | - telemetry_method=self._get_battery_telemetry, |
179 | | - topic=f"isar/{isar_id}/battery", |
180 | | - interval=settings.ROBOT_BATTERY_PUBLISH_INTERVAL, |
181 | | - retain=False, |
182 | | - ) |
183 | | - battery_thread: Thread = Thread( |
184 | | - target=battery_publisher.run, |
185 | | - args=[isar_id, robot_name], |
186 | | - name="ISAR Robot Battery Publisher", |
187 | | - daemon=True, |
188 | | - ) |
189 | | - publisher_threads.append(battery_thread) |
190 | | - |
191 | | - obstacle_status_publisher: MqttTelemetryPublisher = MqttTelemetryPublisher( |
192 | | - mqtt_queue=queue, |
193 | | - telemetry_method=self.telemetry.get_obstacle_status_telemetry, |
194 | | - topic=f"isar/{isar_id}/obstacle_status", |
195 | | - interval=settings.ROBOT_OBSTACLE_STATUS_PUBLISH_INTERVAL, |
196 | | - retain=False, |
197 | | - ) |
198 | | - obstacle_status_thread: Thread = Thread( |
199 | | - target=obstacle_status_publisher.run, |
200 | | - args=[isar_id, robot_name], |
201 | | - name="ISAR Robot Obstacle Status Publisher", |
202 | | - daemon=True, |
203 | | - ) |
204 | | - publisher_threads.append(obstacle_status_thread) |
205 | | - |
206 | | - pressure_publisher: MqttTelemetryPublisher = MqttTelemetryPublisher( |
207 | | - mqtt_queue=queue, |
208 | | - telemetry_method=self.telemetry.get_pressure_telemetry, |
209 | | - topic=f"isar/{isar_id}/pressure", |
210 | | - interval=settings.ROBOT_PRESSURE_PUBLISH_INTERVAL, |
211 | | - retain=False, |
212 | | - ) |
213 | | - pressure_thread: Thread = Thread( |
214 | | - target=pressure_publisher.run, |
215 | | - args=[isar_id, robot_name], |
216 | | - name="ISAR Robot Pressure Publisher", |
217 | | - daemon=True, |
218 | | - ) |
219 | | - publisher_threads.append(pressure_thread) |
220 | | - |
221 | | - return publisher_threads |
| 147 | + return self.telemetry.get_pose_telemetry(current_target=current_target) |
| 148 | + |
| 149 | + def _get_battery_telemetry(self) -> str: |
| 150 | + return self.telemetry.get_battery_telemetry(is_home=self.robot_is_home) |
| 151 | + |
| 152 | + def get_telemetry_publishers(self) -> list[TelemetryParameters]: |
| 153 | + return [ |
| 154 | + TelemetryParameters( |
| 155 | + name="ISAR Robot Pose Publisher", |
| 156 | + method=lambda: self._get_pose_telemetry(), |
| 157 | + topic=f"pose", |
| 158 | + interval=settings.ROBOT_POSE_PUBLISH_INTERVAL, |
| 159 | + ), |
| 160 | + TelemetryParameters( |
| 161 | + name="ISAR Robot Battery Publisher", |
| 162 | + method=lambda: self._get_battery_telemetry(), |
| 163 | + topic=f"battery", |
| 164 | + interval=settings.ROBOT_BATTERY_PUBLISH_INTERVAL, |
| 165 | + ), |
| 166 | + TelemetryParameters( |
| 167 | + name="ISAR Robot Obstacle Status Publisher", |
| 168 | + method=lambda: self.telemetry.get_obstacle_status_telemetry(), |
| 169 | + topic=f"obstacle_status", |
| 170 | + interval=settings.ROBOT_OBSTACLE_STATUS_PUBLISH_INTERVAL, |
| 171 | + ), |
| 172 | + TelemetryParameters( |
| 173 | + name="ISAR Robot Pressure Publisher", |
| 174 | + method=lambda: self.telemetry.get_pressure_telemetry(), |
| 175 | + topic=f"pressure", |
| 176 | + interval=settings.ROBOT_PRESSURE_PUBLISH_INTERVAL, |
| 177 | + ), |
| 178 | + ] |
| 179 | + |
| 180 | + def get_utility_threads(self) -> list[Thread]: |
| 181 | + return [] |
222 | 182 |
|
223 | 183 | def robot_status(self) -> RobotStatus: |
224 | 184 | if self.mission_simulation and not self.mission_simulation.mission_done: |
|
0 commit comments