找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 102|回复: 0

地图同步方案

[复制链接]

8

主题

14

回帖

146

积分

注册会员

积分
146
发表于 2025-5-7 18:56:36 | 显示全部楼层 |阅读模式
本帖最后由 邹杰 于 2025-5-7 21:01 编辑

同步流程
1.云端程序将所有景区的路网都同步到一个专用库中, 并以scence_id做区分.  
2.云端Map渲染程序检测gx_navigation表中is_update若是1, 则进行地图渲染
3.每台车每隔一段时间以增量方式将本地gx_route_out_points_local数据上传到云端的专用库
4.云端Map同步程序, 每隔一段时间从专用库中取N条数据做过滤判断, 并将有效数据写入gx_route_out_points_server表中, 并将gx_route_out_points_local对应数据标记为已使用(cloud_is_using=1), 待云端程序删除
5.每台车每隔一段时间以增量方式将云端专用库中的gx_route_out_points_server数据同步到本地gx_route_out_points_server表中.

================================================ 分割 =============================

具体步骤
需增加、修改四部分

docker环境修改

* 需往ros2和web容器注入一个环境变量用于区分程序的运行环境. (GX_RUNTIME_ENV: cloud 云服务器环境, local 车环境)
* 云服务环境下,Mysql8容器启动需要创建多个库(全局规划器专用库(global_database)、地图同步(map_database)专用库等)

修改表结构
* gx_map、gx_route、gx_navigtion、gx_nav_route、gx_point表 增加 scence_id字段表示所关联景区
* gx_route_out_points_local 表 增加 cloud_is_using (0:未计算 1:有效点 2:无效点) 字段
* gx_route_out_points_server, gx_route_out_points_local 去掉id主键, 防止主键用完问题

增加数据同步程序
*  将所有景区路网同步到专用库
*  每台车需增量上传local数据, 增量下载server数据
*  维护(修改、删除、新增)路网数据(Map图片文件,nav_route、navigtion、route、map、point表)
*  维护gx_route_out_points_local表中的数据

调整Map节点
*  将local表数据过滤一遍, 再写入到server表
*  现有代码需兼容多景区,且不影响单景区的使用逻辑

================================================ 分割 =============================

Map过滤方案
1. 每隔1秒从local表中正序取cloud_is_using=0的100条point数据
2. 判断point是否在某个Map图片内
        若存在将point点展开(getRobotPoints, 即以点为中心往外扩成一个矩形), 并取得矩形对应Map图片的POI区域, 判断POI是否存在白色像素,若存在则视为有效点, 入库到server
        若不存在则视为无效点, 直接转到第3步
3. 标记为已使用, 待同步程序删除


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|狗熊技术交流

GMT+8, 2026-1-2 21:28 , Processed in 0.019048 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表