diff --git a/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/api/robot/RemoteControllerProcessor.java b/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/api/robot/RemoteControllerProcessor.java index a61dfd0aa..2186ca53f 100644 --- a/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/api/robot/RemoteControllerProcessor.java +++ b/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/api/robot/RemoteControllerProcessor.java @@ -145,7 +145,7 @@ public class RemoteControllerProcessor { cache.remove(remoteControllerIp); Socket socket = remoteControllerSocketDTO.getSocket(); - if (socket == null ||socket.isClosed()) { + if (socket == null || socket.isClosed()) { try { socket = new Socket(); socket.connect(new InetSocketAddress(remoteControllerIp, remoteControllerPort), 1000); @@ -186,7 +186,7 @@ public class RemoteControllerProcessor { if (ObjectUtil.isEmpty(cache)) { return; } - log.info("socket发送数据开始"); +// log.info("socket发送数据开始"); for (Map.Entry v : cache.entrySet()) { RemoteControllerSocketDTO remoteControllerSocketDTO = v.getValue(); if (ObjectUtil.isEmpty(remoteControllerSocketDTO)) { @@ -218,8 +218,8 @@ public class RemoteControllerProcessor { try { os = socket.getOutputStream(); String str = remoteControllerSocketDTO.getMsg(); - log.info("socket推送的数据 :{}", str); os.write(remoteControllerSocketDTO.getMsg().getBytes()); + log.info("socket推送的数据 :{}", str); } catch (IOException e) { log.error("socket发送异常 :{}", e); } finally { @@ -230,7 +230,6 @@ public class RemoteControllerProcessor { } } } - log.info("socket发送数据成功"); } } diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/robot/dto/RobotStatusDataPoseDTO.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/robot/dto/RobotStatusDataPoseDTO.java index f85c7e694..a8176fd6e 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/robot/dto/RobotStatusDataPoseDTO.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/robot/dto/RobotStatusDataPoseDTO.java @@ -16,6 +16,6 @@ public class RobotStatusDataPoseDTO { public String floor; //区域 public String area; - //电池剩余容量 - public String batSoc; + //电池剩余容量 废弃 从ROBOT_INFORMATION_SOC 获取电量 +// public String batSoc; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/robot/RobotGenericsStatusApiImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/robot/RobotGenericsStatusApiImpl.java index 802d4c051..9c05b9b42 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/robot/RobotGenericsStatusApiImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/robot/RobotGenericsStatusApiImpl.java @@ -3,15 +3,11 @@ package cn.iocoder.yudao.module.system.api.robot; import cn.hutool.core.util.ObjectUtil; import cn.hutool.json.JSONUtil; import cn.iocoder.yudao.module.system.api.robot.dto.RobotGenericsDataDTO; -import cn.iocoder.yudao.module.system.api.robot.dto.RobotStatusDataPoseDTO; import cn.iocoder.yudao.module.system.config.ratelimiter.SystemRateLimiter; import cn.iocoder.yudao.module.system.constant.robot.RobotTaskChcheConstant; import cn.iocoder.yudao.module.system.util.redis.RedisUtil; import com.alibaba.fastjson.JSON; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RestController; @@ -26,8 +22,6 @@ public class RobotGenericsStatusApiImpl implements RobotGenericsStatusApi { @Resource private RedisUtil redisUtil; - @Resource@Value("${zn.robot_position_cache_time:10}") - private Long robotPositionCacheTime; @Override @SystemRateLimiter(time = 1, count = 20, keyArg = "updateRobotCommonStatus",message = "机器人上报车辆其他信息") @@ -43,17 +37,13 @@ public class RobotGenericsStatusApiImpl implements RobotGenericsStatusApi { } String mac = robotStatusData.getMac(); - String pose2dKey = RobotTaskChcheConstant.ROBOT_INFORMATION_POSE_BAT_SOC +mac; + String socKey = RobotTaskChcheConstant.ROBOT_INFORMATION_SOC +mac; - Object object = redisUtil.get(pose2dKey); - RobotStatusDataPoseDTO robotStatusDataPoseDTO= JSONUtil.toBean((String)object, RobotStatusDataPoseDTO.class); String batSoc = robotStatusData.getHwStates().getBatSoc(); if (ObjectUtil.isNotEmpty(batSoc)) { String[] split = batSoc.split("\\."); batSoc = split[1].substring(0,2); - robotStatusDataPoseDTO.setBatSoc(batSoc); + redisUtil.set(socKey,batSoc); } - - redisUtil.set(pose2dKey,JSON.toJSONString(robotStatusDataPoseDTO),robotPositionCacheTime); } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/robot/RobotStatusApiImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/robot/RobotStatusApiImpl.java index 9960a6e79..d2bfed1fe 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/robot/RobotStatusApiImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/robot/RobotStatusApiImpl.java @@ -9,29 +9,18 @@ import cn.iocoder.yudao.module.system.api.robot.vo.RobotInformationVO; import cn.iocoder.yudao.module.system.config.ratelimiter.SystemRateLimiter; import cn.iocoder.yudao.module.system.constant.path.PathPlanningTopicConstant; import cn.iocoder.yudao.module.system.constant.robot.RobotTaskChcheConstant; -import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotWarnCodeMappingDO; -import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotWarnMsgDO; -import cn.iocoder.yudao.module.system.dal.mysql.robot.RobotWarnCodeMappingMapper; -import cn.iocoder.yudao.module.system.dal.mysql.robot.RobotWarnMsgMapper; -import cn.iocoder.yudao.module.system.enums.robot.RobotWarnType; import cn.iocoder.yudao.module.system.service.robot.RobotInformationService; -import cn.iocoder.yudao.module.system.service.robot.RobotWarnMsgService; import cn.iocoder.yudao.module.system.util.redis.RedisUtil; import com.alibaba.fastjson.JSON; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.List; import java.util.Map; -import java.util.stream.Collectors; @Slf4j @RestController // 提供 RESTful API 接口,给 Feign 调用 @@ -82,7 +71,7 @@ public class RobotStatusApiImpl implements RobotStatusApi { Object floorAreaObject = redisUtil.get(floorAreaKey); FloorZoneDTO floorZoneDTO = JSONUtil.toBean((String) floorAreaObject, FloorZoneDTO.class); String robotNo = robotInformationService.getRobotNoByMac(robotStatusDataDTO.getMac()); - String pose2dKey = RobotTaskChcheConstant.ROBOT_INFORMATION_POSE_BAT_SOC + robotStatusDataDTO.getMac(); + String pose2dKey = RobotTaskChcheConstant.ROBOT_INFORMATION_POSE_BAT + robotStatusDataDTO.getMac(); Object object = redisUtil.get(pose2dKey); RobotStatusDataPoseDTO robotStatusDataPoseDTO = JSONUtil.toBean((String) object, RobotStatusDataPoseDTO.class); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/constant/robot/RobotTaskChcheConstant.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/constant/robot/RobotTaskChcheConstant.java index ed24eb3eb..a51878173 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/constant/robot/RobotTaskChcheConstant.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/constant/robot/RobotTaskChcheConstant.java @@ -9,7 +9,10 @@ public class RobotTaskChcheConstant { public static String ROBOT_CARGO_DETECTED = "robot:information:cargo:detected"; //机器人点位和电量 (拼接的是mac地址) - public static String ROBOT_INFORMATION_POSE_BAT_SOC = "robot:information:pose:bat:soc"; + public static String ROBOT_INFORMATION_POSE_BAT = "robot:information:pose:bat"; + + //机器人电量 + public static String ROBOT_INFORMATION_SOC = "robot:information:soc"; //机器人楼层和区域 (拼接的是mac地址) public static String ROBOT_FLOOR_AREA = "robot:floor:area"; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/RobotTaskController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/RobotTaskController.java index af73f15d2..e93bcefdf 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/RobotTaskController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/RobotTaskController.java @@ -121,4 +121,13 @@ public class RobotTaskController { return success(pageResult); } + @PostMapping("/checkHaveTask") + @Operation(summary = "判断是否存在任务") + @PreAuthorize("@ss.hasPermission('robot:task:checkHaveTask')") + public CommonResult checkHaveTask() { + //校验是否存在未完成的任务 + taskService.checkHaveDoingTask(); + return success(true); + } + } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/bulletinboard/BulletinBoardServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/bulletinboard/BulletinBoardServiceImpl.java index cc6ce95db..3c670866b 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/bulletinboard/BulletinBoardServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/bulletinboard/BulletinBoardServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.LocalDateTimeUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.json.JSONUtil; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.system.api.robot.dto.RobotStatusDataPoseDTO; @@ -19,6 +20,7 @@ import cn.iocoder.yudao.module.system.dal.dataobject.information.DeviceInformati import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotInformationDO; import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotTaskDO; import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotWarnMsgDO; +import cn.iocoder.yudao.module.system.enums.common.ZeroOneEnum; import cn.iocoder.yudao.module.system.enums.robot.RobotTaskDetailStatusEnum; import cn.iocoder.yudao.module.system.service.dict.DictDataService; import cn.iocoder.yudao.module.system.service.information.DeviceInformationService; @@ -116,7 +118,7 @@ public class BulletinBoardServiceImpl implements BulletinBoardService { map = agvListStatusInfo.stream().collect(Collectors.toMap(RobotInfoStatusVO::getMacAddress, Function.identity())); } for (RobotInformationDO robotInformationDO : allRobot) { - String pose2dKey = RobotTaskChcheConstant.ROBOT_INFORMATION_POSE_BAT_SOC + robotInformationDO.getMacAddress(); + String pose2dKey = RobotTaskChcheConstant.ROBOT_INFORMATION_POSE_BAT + robotInformationDO.getMacAddress(); Object object = redisUtil.get(pose2dKey); RobotStatusDataPoseDTO robotStatusDataPoseDTO = JSONUtil.toBean((String) object, RobotStatusDataPoseDTO.class); if (robotStatusDataPoseDTO != null) { @@ -127,7 +129,10 @@ public class BulletinBoardServiceImpl implements BulletinBoardService { BeanUtil.copyProperties(item, robotElectricityLevelVO); } robotElectricityLevelVO.setRobotNo(robotInformationDO.getRobotNo()); - robotElectricityLevelVO.setBatSoc(robotStatusDataPoseDTO.getBatSoc()); + String socByMac = robotInformationService.getSocByMac(robotInformationDO.getMacAddress(), ZeroOneEnum.ONE.getType()); + if (ObjectUtil.isNotEmpty(socByMac)) { + robotElectricityLevelVO.setBatSoc(socByMac); + } robotElectricityLevelVOS.add(robotElectricityLevelVO); } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapItemServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapItemServiceImpl.java index 811a21c85..a9f9e784f 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapItemServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapItemServiceImpl.java @@ -23,7 +23,6 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; -import java.util.Collections; import java.util.List; import static cn.hutool.core.collection.CollUtil.isNotEmpty; @@ -128,7 +127,7 @@ public class PositionMapItemServiceImpl extends ServiceImpl { */ RobotInformationStatisticsVO statisticsInformation(); + /** + * 车机mac地址获取电量 + * @param str + * type 1:是mac, 0 :是车辆编号 + * @return + */ + String getSocByMac(String str, Integer type); + /** * 获取所有AGV状态 * @return diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotInformationServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotInformationServiceImpl.java index d26e25c14..85e48f4a1 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotInformationServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotInformationServiceImpl.java @@ -484,7 +484,7 @@ public class RobotInformationServiceImpl extends ServiceImpl getAGVListStatusInfo() { List list = new ArrayList<>(); @@ -706,7 +732,7 @@ public class RobotInformationServiceImpl extends ServiceImpl logs, Map> detailMap) { //判断机器人身上的电量少于设定的电量 for (RobotInformationDO robot : robots) { - String pose2dKey = RobotTaskChcheConstant.ROBOT_INFORMATION_POSE_BAT_SOC +robot.getMacAddress(); + String pose2dKey = RobotTaskChcheConstant.ROBOT_INFORMATION_POSE_BAT +robot.getMacAddress(); Object poseCache = redisUtil.get(pose2dKey); RobotStatusDataPoseDTO dataPoseDTO= JSON.parseObject((String)poseCache, RobotStatusDataPoseDTO.class); - if (ObjectUtil.isEmpty(dataPoseDTO) || ObjectUtil.isEmpty(dataPoseDTO.getBatSoc())) { + + String socKey = RobotTaskChcheConstant.ROBOT_INFORMATION_SOC +robot.getMacAddress(); + Object socObject = redisUtil.get(socKey); + + if (ObjectUtil.isEmpty(dataPoseDTO) || ObjectUtil.isEmpty(socObject)) { log.info("当前机器人查不到电量信息,所以不执行充电 :{}",robot.getRobotNo()); continue; } @@ -187,7 +191,8 @@ public class AutoChargeServiceImpl implements AutoChargeService { logDo.setRobotNo(robot.getRobotNo()); logDo.setDeviceNo(deviceInformationDO.getDeviceNo()); logDo.setPositionMapItemId(deviceInformationDO.getPositionMapItemId()); - String[] split = dataPoseDTO.getBatSoc().split("\\."); + + String[] split = socObject.toString().split("\\."); logDo.setStartElectricity(Integer.valueOf(split[0])); //配置的充满电电量 BigDecimal robotFullElectricity = new BigDecimal(fullElectricity); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/job/DistributeTasksServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/job/DistributeTasksServiceImpl.java index 8c86f2a38..662f02022 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/job/DistributeTasksServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/job/DistributeTasksServiceImpl.java @@ -129,15 +129,15 @@ public class DistributeTasksServiceImpl implements DistributeTasksService { } if (ObjectUtil.isNotEmpty(chargeConfig) && ObjectUtil.isNotEmpty(chargeConfig.getStartAutoCharge())) { - String pose2dKey = RobotTaskChcheConstant.ROBOT_INFORMATION_POSE_BAT_SOC + robot.getMacAddress(); - Object poseCache = redisUtil.get(pose2dKey); - RobotStatusDataPoseDTO dataPoseDTO = JSON.parseObject((String) poseCache, RobotStatusDataPoseDTO.class); - if (ObjectUtil.isEmpty(dataPoseDTO.getBatSoc())) { + String socKey = RobotTaskChcheConstant.ROBOT_INFORMATION_SOC +robot.getMacAddress(); + Object socObject = redisUtil.get(socKey); + + if (ObjectUtil.isEmpty(socObject)) { robot.setRobotStatus(RobotStatusEnum.DOING.getType()); log.info("车机没有电量信息 :{}",robot.getRobotNo()); continue; } - BigDecimal robotRemainingElectricity = new BigDecimal(dataPoseDTO.getBatSoc()); + BigDecimal robotRemainingElectricity = new BigDecimal(socObject.toString()); BigDecimal robotEndElectricity = new BigDecimal(chargeConfig.getStartAutoCharge()+""); if (robotRemainingElectricity.compareTo(robotEndElectricity) < 0) { robot.setRobotStatus(RobotStatusEnum.DOING.getType()); @@ -235,21 +235,25 @@ public class DistributeTasksServiceImpl implements DistributeTasksService { * @param robot */ private void setRobotStatus(CommonConfigDO commonConfigDO, RobotInformationDO robot) { - String pose2dKey = RobotTaskChcheConstant.ROBOT_INFORMATION_POSE_BAT_SOC + robot.getMacAddress(); + String pose2dKey = RobotTaskChcheConstant.ROBOT_INFORMATION_POSE_BAT + robot.getMacAddress(); String chargeModelKey = RobotTaskChcheConstant.ROBOT_CHARGE_MODEL + robot.getRobotNo(); Object chargeModelCache = redisUtil.get(chargeModelKey); Object poseCache = redisUtil.get(pose2dKey); RobotStatusDataPoseDTO dataPoseDTO = JSON.parseObject((String) poseCache, RobotStatusDataPoseDTO.class); log.info("充电机器人编号:{} ,信息: {}", robot.getRobotNo(), JSON.toJSONString(dataPoseDTO)); - if (ObjectUtil.isEmpty(commonConfigDO) || ObjectUtil.isEmpty(poseCache) || ObjectUtil.isEmpty(dataPoseDTO.getBatSoc())) { + String socKey = RobotTaskChcheConstant.ROBOT_INFORMATION_SOC +robot.getMacAddress(); + Object o = redisUtil.get(socKey); + String soc = ObjectUtil.isEmpty(o) ? "0": o.toString(); + + if (ObjectUtil.isEmpty(commonConfigDO) || ObjectUtil.isEmpty(poseCache) || ObjectUtil.isEmpty(o)) { return; } CommonConfigVO chargeConfig = JSONUtil.toBean(commonConfigDO.getConfigStr(), CommonConfigVO.class); //车子剩余电量 - BigDecimal robotRemainingElectricity = new BigDecimal(dataPoseDTO.getBatSoc()); + BigDecimal robotRemainingElectricity = new BigDecimal(soc); //设置离开的电量 BigDecimal robotEndElectricity = new BigDecimal("10"); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/pathplanning/RobotPathPlanningServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/pathplanning/RobotPathPlanningServiceImpl.java index 6529adb05..fe1e4aba5 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/pathplanning/RobotPathPlanningServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/pathplanning/RobotPathPlanningServiceImpl.java @@ -196,7 +196,7 @@ public class RobotPathPlanningServiceImpl implements RobotPathPlanningService { List list = new ArrayList<>(); for (RobotInformationDO robot : robots) { - String pose2dKey = RobotTaskChcheConstant.ROBOT_INFORMATION_POSE_BAT_SOC + robot.getMacAddress(); + String pose2dKey = RobotTaskChcheConstant.ROBOT_INFORMATION_POSE_BAT + robot.getMacAddress(); Object object = redisUtil.get(pose2dKey); RobotStatusDataPoseDTO robotStatusDataPoseDTO = JSONUtil.toBean((String) object, RobotStatusDataPoseDTO.class); if (ObjectUtil.isEmpty(object) || ObjectUtil.isEmpty(robotStatusDataPoseDTO)) {