根据日志绘制障碍物轮廓点和中心点

news2024/9/20 9:36:08

绘制log中的障碍物凸包点,首先给出log日志中的障碍物的凸包点

[Info]-[PointCloudHandle:88]:[2024-07-14,09:55:41.052]-back obj size 6
[Info]-[PointCloudHandle:92]:[2024-07-14,09:55:41.052]-back obj size 6 cur idx 1
[Info]-[PointCloudHandle:93]:[2024-07-14,09:55:41.052]-back obj center_x 9.247219 center_y -14.778276 center z:2.492869
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:4 x:8.02 y:-15.56,
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:4 x:8.02 y:-14.04,
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:4 x:9.96 y:-14.04,
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:4 x:9.96 y:-15.56,
[Info]-[PointCloudHandle:92]:[2024-07-14,09:55:41.052]-back obj size 6 cur idx 2
[Info]-[PointCloudHandle:93]:[2024-07-14,09:55:41.052]-back obj center_x 8.240705 center_y -14.276690 center z:2.027562
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:4 x:8.05 y:-14.38,
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:4 x:8.05 y:-14.19,
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:4 x:8.43 y:-14.19,
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:4 x:8.43 y:-14.38,
[Info]-[PointCloudHandle:92]:[2024-07-14,09:55:41.052]-back obj size 6 cur idx 3
[Info]-[PointCloudHandle:93]:[2024-07-14,09:55:41.052]-back obj center_x -1.659360 center_y -9.992173 center z:2.039360
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:9 x:-7.11 y:-0.68,
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:9 x:-5.84 y:-0.23,
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:9 x:-4.99 y:-1.12,
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:9 x:7.44 y:-13.94,
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:9 x:7.57 y:-15.43,
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:9 x:6.11 y:-16.12,
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:9 x:4.85 y:-16.36,
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:9 x:-5.24 y:-14.37,
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:9 x:-6.33 y:-13.56,
[Info]-[PointCloudHandle:92]:[2024-07-14,09:55:41.052]-back obj size 6 cur idx 4
[Info]-[PointCloudHandle:93]:[2024-07-14,09:55:41.052]-back obj center_x -16.760958 center_y -4.745333 center z:1.604066
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:8 x:-21.27 y:-5.08,
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:8 x:-21.42 y:-4.62,
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:8 x:-19.36 y:-2.77,
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:8 x:-18.59 y:-2.75,
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:8 x:-15.66 y:-3.99,
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:8 x:-13.77 y:-4.58,
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:8 x:-15.86 y:-7.12,
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:8 x:-16.02 y:-7.95,
[Info]-[PointCloudHandle:92]:[2024-07-14,09:55:41.052]-back obj size 6 cur idx 5
[Info]-[PointCloudHandle:93]:[2024-07-14,09:55:41.052]-back obj center_x 7.400077 center_y -4.330252 center z:1.465278
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:6 x:5.70 y:-6.68,
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:6 x:6.36 y:-0.28,
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:6 x:8.30 y:-0.29,
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:6 x:9.13 y:-8.90,
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:6 x:8.72 y:-10.07,
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:6 x:7.91 y:-9.27,
[Info]-[PointCloudHandle:92]:[2024-07-14,09:55:41.052]-back obj size 6 cur idx 6
[Info]-[PointCloudHandle:93]:[2024-07-14,09:55:41.052]-back obj center_x -7.823660 center_y -0.408213 center z:1.034263
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:4 x:-7.99 y:-0.49,
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:4 x:-7.99 y:-0.32,
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:4 x:-7.50 y:-0.32,
[Info]-[PointCloudHandle:98]:[2024-07-14,09:55:41.052]-obj_num:4 x:-7.50 y:-0.49,

其中代码如下:

import re
import matplotlib.pyplot as plt

# 假设日志文件名为 'log_file.txt'
log_file = 'log_file.txt'

# 读取日志文件内容
with open(log_file, 'r') as file:
    lines = file.readlines()

# 解析日志文件内容
obstacles = []
current_obstacle = None

for line in lines:
    if 'cur idx' in line:
        if current_obstacle:
            obstacles.append(current_obstacle)
        current_obstacle = {'center': None, 'points': []}
    elif 'back obj center_x' in line:
        match = re.search(r'center_x (\S+) center_y (\S+)', line)
        if match:
            center_x, center_y = float(match.group(1)), float(match.group(2))
            current_obstacle['center'] = (center_x, center_y)
    elif 'obj_num' in line:
        match = re.search(r'x:(\S+) y:(\S+)', line)
        if match:
            point_x, point_y = match.group(1).replace(',', ''), match.group(2).replace(',', '')
            point_x, point_y = float(point_x), float(point_y)
            current_obstacle['points'].append((point_x, point_y))

if current_obstacle:
    obstacles.append(current_obstacle)

# 可视化障碍物
plt.figure(figsize=(10, 10))
for obs in obstacles:
    center = obs['center']
    points = obs['points']
    
    # 绘制中心点
    plt.scatter(center[0], center[1], color='red', s=100, label='Center' if obs == obstacles[0] else "")
    
    # 绘制轮廓点
    points_x = [p[0] for p in points]
    points_y = [p[1] for p in points]
    plt.scatter(points_x, points_y, color='blue', s=50, label='Contour Point' if obs == obstacles[0] else "")
    
    # 绘制轮廓线
    points_x.append(points_x[0])  # 闭合轮廓
    points_y.append(points_y[0])  # 闭合轮廓
    plt.plot(points_x, points_y, color='green', linewidth=2, label='Contour Line' if obs == obstacles[0] else "")

plt.xlabel('X')
plt.ylabel('Y')
plt.legend()
plt.title('Obstacles Visualization')
plt.grid(True)
plt.show()

效果如下图
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1929406.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SMTP服务器地址与端口号有哪些关系与区别?

SMTP服务器地址如何正确配置?怎么验证服务器的地址? 了解SMTP服务器地址与端口号的关系与区别对于确保邮件系统的正常运作至关重要。AokSend将详细探讨这两者之间的关系和区别,并解释它们在邮件传输过程中的重要性。 SMTP服务器地址&#x…

Figma 中文版指南:获取和安装汉化插件

Figma是一种主流的在线团队合作设计工具,也是一种基于 Web 端的设计工具。在当今的设计时代,Figma 的使用满足了每个人的设计需求,不仅可以实现在线编辑,还可以方便日常管理,有效提高工作效率。然而,相信很…

小试牛刀-Telebot区块链游戏机器人

目录 1.编写目的 2.实现功能 2.1 Wallet功能 2.2 游戏功能 2.3 提出功能 2.4 辅助功能 3.功能实现详解 3.1 wallet功能 3.2 游戏功能 3.3 提出功能 3.4 辅助功能 4.测试视频 Welcome to Code Blocks blog 本篇文章主要介绍了 [Telebot区块链游戏机器人] ❤博主…

css 屏幕四周报警提示

屏幕四周出现律动的红色边框&#xff0c;产生报警提示的效果。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Screen Edge Warning</title><style>body, html {margin: 0;padding: 0;he…

【软件测试】编写测试用例篇

前面部分主要是编写测试用例的方法和方向&#xff0c;后面一部分是编写出具体的测试用例 目录 什么是测试用例 1.设计测试用例的万能公式 1.1.从思维出发 1.2.万能公式 1.3.弱网测试 1.4.安装与卸载测试 2.设计测试用例的方法 2.1.基于需求的设计方法 2.2.等价类 2.3…

python-矩阵加法(赛氪OJ)

[题目描述] 输入两个 n 行 m 列的矩阵 A 和 B &#xff0c;输出它们的和 AB。矩阵加法的规则是两个矩阵中对应位置的值进行加和&#xff0c;具体参照样例。输入&#xff1a; 输入共 2⋅n1 行&#xff0c;第一行包含两个整数 n 和 m&#xff0c;表示矩阵的行数和列数 (1≤n,m≤1…

原来,BI数据分析也是有模板的

在当今数据驱动的时代&#xff0c;商业智能&#xff08;BI&#xff09;数据分析已经成为企业决策的重要工具。然而&#xff0c;很多人可能并不了解&#xff0c;BI数据分析并非从零开始&#xff0c;而是可以依托现成的模板和解决方案来快速搭建和实施的。以奥威BI方案为例&#…

Vue3 前置知识

1. Vue3 简介 2020年9月18日&#xff0c;Vue.js发布版3.8版本&#xff0c;代号&#xff1a;one Piece(海贼王)经历了&#xff1a;4800次提交、40个RFC、600次PR、300贡献者官方发版地址&#xff1a;Release v3.0.0 One Piecevuejs/,core截止2023年10月&#xff0c;最新的公开版…

数学建模·层次分析法

层次分析法 LAF 定义 评价体系的优劣影响&#xff0c;计算评价指标的权重的一种方法 主观性较强&#xff0c;现在一般不用 主要步骤 关键在于一致性检验和求权值 权重的计算 注意权重之和为1&#xff0c;需要归一化 算数平均法 特征值法 矩阵的一致性检验 为什么要检验…

如何应对AI发展下的伦理挑战

目录 1.概述 2.构建可靠的AI隐私保护机制 2.1. 最小化数据收集 2.2. 数据去标识化 2.3. 加密技术 2.4. 分布式学习和边缘计算 2.5. 强化用户控制权 2.6. 独立审计和合规性检查 2.7. 持续教育和培训 2.8.小结 3.确保AI算法的公正性和透明度 3.1.增强AI决策透明度的方…

安卓MT管理器v2.16.2/逆向修改神器 本地VIP已解锁

MT管理器是一款强大的文件管理工具和APK逆向修改神器。如果你喜欢它的双窗口操作风格&#xff0c;可以单纯地把它当成文件管理器使用。如果你对修改APK有深厚的兴趣&#xff0c;那么你可以用它做许许多多的事&#xff0c;例如汉化应用、替换资源、修改布局、修改逻辑代码、资源…

Java用JDBC链接mysql

一、什么是JDBC&#xff1a; 是Java平台上的标准数据库访问技术。它提供了一套API&#xff08;应用程序编程接口&#xff09;&#xff0c;允许Java应用程序与各种类型的数据库进行交互&#xff0c;包括关系型数据库&#xff08;如MySQL、Oracle、SQL Server等&#xff09;和非关…

MBR30200PT-ASEMI智能AI应用MBR30200PT

编辑&#xff1a;ll MBR30200PT-ASEMI智能AI应用MBR30200PT 型号&#xff1a;MBR30200PT 品牌&#xff1a;ASEMI 封装&#xff1a;TO-247 批号&#xff1a;最新 恢复时间&#xff1a;35ns 最大平均正向电流&#xff08;IF&#xff09;&#xff1a;30A 最大循环峰值反向…

中国最受欢迎的起名大师国学泰斗颜廷利:世界公认的伟大思想家

物质构成了文化的根基&#xff0c;而精神则象征着文明的光辉。汉字文化和汉语言文明&#xff0c;作为历经数千年而不衰的宝贵遗产&#xff0c;巧妙地平衡了综合性与创新性、继承性与变革性、民族性与时代性的关系&#xff0c;确保了中国文化在传承中既保持了一贯的学术传统、道…

最新付费进群修复版本站亲测试

PHP必需7.2 sg11扩展 tp伪静态 *数据库修改地址&#xff1a;config/database.php 导入数据库 关闭防跨站 *编辑数据库找到qing_config表&#xff0c;更改网站域名codenet.cc改为自己的域名 后台账号18888888888 密码123456 分销后台&#xff1a;域名fenxiao.php 分站后台&am…

80万开一家零食店,每日1万营业额还亏本

在探讨以80万资金投资开设一家零食店的决策时&#xff0c;我们不得不深入剖析这一商业行为的多个层面&#xff0c;以更全面的视角审视其盈利潜力与潜在风险。 首先&#xff0c;提及的这家拥有千余家门店的零食连锁品牌&#xff0c;其招商宣传中的高存活率固然诱人&#xff0c;…

什么软件修复视频画质比较好,视频画质修复工具

有些视频中可能会出现噪点、残影、颜色失真等问题&#xff0c;导致观看时体验感不太好&#xff0c;修复视频画质可以去除这些问题&#xff0c;使视频更加干净、清晰和真实。 高质量的视频画质能够提高观众的观看体验&#xff0c;让观众更加享受观看视频的过程。特别是在需要展示…

线上观看 3 万+!「智能运维MeetUp」精彩回顾,探讨智能体构建新方向

龙蜥社区“走进系列”第 11 期走进中兴通讯-智能可观测运维技术 MeetUp 于成都圆满结束&#xff0c;由中兴通讯联合龙蜥社区系统运维联盟&#xff08;SOMA&#xff09;&#xff08;以下简称“联盟”&#xff09;共同举办。本次活动现场汇聚了阿里云、谐云科技、乘云数字、中兴通…

vue快速上手——创建vue项目,vue基本使用方式,路由vue-Router,转态管理vuex

文章目录 1.创建vue项目使用Vue CLI创建前端工程&#xff1a;1.方式一&#xff1a;vue create 项目名称2.方式二&#xff1a;vue ui 运行vue项目什么是node.jsnode.js和vue项目的关系 2.vue基本使用方式1.vue组件组成部分&#xff1a;脚本部分的组件选项&#xff1a;示例&#…

普通人还有必要学习 Python 之类的编程语言吗?

在开始前分享一些编程的资料需要的同学评论888即可拿走 是我根据网友给的问题精心整理的对于编程的重要性&#xff0c;这里就不详谈了。 未来&#xff0c;我们和机器的交流会越来越多&#xff0c;编程可以简单看作是和机器对话并分发给机器任务。机器不仅越来越强大&#xff0…