Skip to main content
Glama

compare_robots_performance

Analyze and compare performance metrics across multiple industrial robots within specified timeframes to identify operational differences.

Instructions

比较多个机器人的性能 参数: - robot_ids: 机器人ID列表 - metric_columns: 比较指标列 - start_time: 开始时间戳 - end_time: 结束时间戳 返回: - 比较结果

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
robot_idsYes
metric_columnsYes
start_timeNo
end_timeNo

Implementation Reference

  • The MCP tool handler decorated with @mcp.tool(). It checks if the advanced_data_analyzer is initialized and calls its compare_robots method with the provided parameters, wrapping the result in return_msg.
    @mcp.tool() def compare_robots_performance(robot_ids: list, metric_columns: list, start_time: float = None, end_time: float = None): """ 比较多个机器人的性能 参数: - robot_ids: 机器人ID列表 - metric_columns: 比较指标列 - start_time: 开始时间戳 - end_time: 结束时间戳 返回: - 比较结果 """ try: if advanced_data_analyzer is None: return return_msg("高级数据分析器未初始化") # 执行比较 comparison = advanced_data_analyzer.compare_robots( robot_ids=robot_ids, metric_columns=metric_columns, start_time=start_time, end_time=end_time ) return return_msg({"comparison": comparison}) except Exception as e: logger.error(f"比较机器人性能失败: {str(e)}") return return_msg(f"比较机器人性能失败: {str(e)}")
  • The core helper method in AdvancedDataAnalyzer class that performs the robot comparison by loading data for each robot ID, computing mean, median, std, min, max for each metric column, and generating a summary with best robot per metric.
    def compare_robots(self, robot_ids: List[str], start_time: Optional[float] = None, end_time: Optional[float] = None, metric_columns: Optional[List[str]] = None) -> Dict[str, Any]: """ 比较多个机器人的性能 Args: robot_ids: 机器人ID列表 start_time: 开始时间 end_time: 结束时间 metric_columns: 要比较的指标列 Returns: Dict[str, Any]: 比较结果 """ comparison_results = { 'robots': {}, 'summary': {} } all_data = [] # 收集每个机器人的数据 for robot_id in robot_ids: df = self.load_data( start_time=start_time, end_time=end_time, robot_id=robot_id ) if not df.empty: comparison_results['robots'][robot_id] = { 'data_points': len(df), 'metrics': {} } # 计算指标 if metric_columns: for col in metric_columns: if col in df.columns: comparison_results['robots'][robot_id]['metrics'][col] = { 'mean': df[col].mean(), 'median': df[col].median(), 'std': df[col].std(), 'min': df[col].min(), 'max': df[col].max() } all_data.append((robot_id, df)) # 生成比较摘要 if metric_columns and all_data: for col in metric_columns: values = [] valid_robots = [] for robot_id, df in all_data: if col in df.columns: values.append(df[col].mean()) valid_robots.append(robot_id) if values: best_idx = np.argmin(values) if 'error' in col.lower() or 'temperature' in col.lower() else np.argmax(values) comparison_results['summary'][col] = { 'best_robot': valid_robots[best_idx], 'best_value': values[best_idx], 'average_value': np.mean(values), 'range': {'min': min(values), 'max': max(values)}, 'variation': np.std(values) / np.mean(values) if np.mean(values) > 0 else 0 } return comparison_results

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nonead/nUR-MCP-SERVER'

If you have feedback or need assistance with the MCP directory API, please join our Discord server