路径规划关于地图的整理

路径规划离不开地图,其中真实地图,栅格地图和RVIZ之间Grid显示之间很混乱,还有各个原点位置显示,不弄清发现map在rviz里显示老是偏的,专门学习记录一下。

RVIZ里Grid的全局坐标系原点,在默认在栅格中间,右手系(食指x,中止y)。
map.yaml origin: [x,y,z] 表示pgm地图 右上角 在Grid位置,z是旋转角度
请添加图片描述

origin: [50,50,0] 样子:
在这里插入图片描述
注意:Grid栅格密度、大小和地图密度无关

混合A星对地图处理:


 const double map_resolution = 0.2;
                kinodynamic_astar_searcher_ptr_->Init(
                        current_costmap_ptr_->info.origin.position.x, //yaml origin x
                        1.0 * current_costmap_ptr_->info.width * current_costmap_ptr_->info.resolution,
                        current_costmap_ptr_->info.origin.position.y, //yaml origin  y
                        1.0 * current_costmap_ptr_->info.height * current_costmap_ptr_->info.resolution,
                        current_costmap_ptr_->info.resolution,
                        map_resolution=0.2
                );
                
void HybridAStar::Init(double x_lower, double x_upper, double y_lower, double y_upper,
                       double state_grid_resolution, double map_grid_resolution) {
    SetVehicleShape(vehicle_length_, vehicle_width_, vehicle_rear_axle_to_tailstock_);

    map_x_lower_ = x_lower;  //yaml origin x
    map_x_upper_ = x_upper;
    map_y_lower_ = y_lower;  //yaml origin y
    map_y_upper_ = y_upper;
    STATE_GRID_RESOLUTION_ = state_grid_resolution;  // yaml里的
    MAP_GRID_RESOLUTION_ = map_grid_resolution;  //0.2

    STATE_GRID_SIZE_X_ = std::floor((map_x_upper_ - map_x_lower_) / STATE_GRID_RESOLUTION_); //
    STATE_GRID_SIZE_Y_ = std::floor((map_y_upper_ - map_y_lower_) / STATE_GRID_RESOLUTION_); //

    MAP_GRID_SIZE_X_ = std::floor((map_x_upper_ - map_x_lower_) / MAP_GRID_RESOLUTION_);
    MAP_GRID_SIZE_Y_ = std::floor((map_y_upper_ - map_y_lower_) / MAP_GRID_RESOLUTION_);

因为是右手系,map在RVIZ里是朝左下增大。 所以origin x,y就是lower
最大就是 current_costmap_ptr_->info.width (栅格宽 具体看Grid坐标朝向对应即可)* current_costmap_ptr_->info.resolution (实际分辨率)
info.resolution=0.5 表示一个栅格代表现实世界0.5m.
一乘就得到了pgm对应的真实世界的长宽。

### 回答1: maptalks是一款开源的地图可视化框架,在路径规划方面也有很好的支持。路径规划是指根据起点和终点之间的地理位置,通过一系列算法确定最佳路径的过程。 使用maptalks进行路径规划需要以下几个步骤: 1. 添加地图和图层:首先,我们需要在网页中添加maptalks地图,并创建一个图层以显示路径规划结果。 2. 添加起点和终点:通过maptalks提供的API,我们可以在地图上添加起点和终点的标记,以便进行路径规划。可以通过点击地图或输入经纬度来确定起点和终点的位置。 3. 路径规划算法:使用maptalks提供的路径规划算法,传入起点和终点的经纬度坐标,即可得到最佳路径结果。路径规划算法通常基于地理信息数据和交通网络数据,会考虑道路拥堵情况、路况、最短路径等因素。 4. 显示路径结果:将路径规划算法得到的最佳路径结果,在地图上通过划线的方式显示出来。可以设置路径的样式,如颜色、宽度等,以增加可视化效果。 5. 导航功能:除了显示最佳路径,maptalks还可以提供导航功能,可以根据用户的当前位置和目的地,提供语音引导等导航功能,帮助用户更方便地到达目的地。 总结来说,maptalks在路径规划中提供了地图可视化、标记导航起终点、路径规划算法以及路径显示等功能,可以帮助用户在地图上查看最佳路径,为出行提供方便。 ### 回答2: Maptalks路径规划是一种基于地图数据的导航系统,主要用于帮助用户规划最优路径和指导出行。使用Maptalks路径规划可以帮助用户快速找到最短路径、最快路径或者最经济路径。它可以结合实时交通信息,提供准确的导航指导。 Maptalks路径规划的核心技术包括地理信息系统、图论算法和交通网络模型。它通过收集和整理路网数据,构建交通网络模型,然后运用图论算法进行路径计算。在计算路径时,Maptalks路径规划会考虑交通流量、道路限速、车辆行驶时间等因素,确保生成的路径是可行和合理的。 用户使用Maptalks路径规划可以通过输入起点和终点的经纬度坐标或者地名来获取规划的路径。系统会根据用户的需求和偏好,为其提供多个选择,用户可以根据需求选择最适合的路径。同时,Maptalks路径规划还支持多种导航方式,如驾车、步行、骑行等。 除了基本的路径查询功能,Maptalks路径规划还提供了一些扩展功能。例如,它可以根据用户的喜好为其推荐周边的优惠商铺、餐馆等,为用户的出行增加便利和娱乐性。另外,Maptalks路径规划还可以结合定位功能,提供实时导航指引,帮助用户准确到达目的地。 总之,Maptalks路径规划是一种实用而高效的导航工具,通过它可以快速找到最优路径,减少出行时间和成本。它的应用范围广泛,可以在各种交通工具和场景中使用,为用户的出行带来便利。 ### 回答3: Maptalks路径规划是一种基于地理信息系统的工具,用于帮助用户在地图上找到最佳的路径。该工具可以用于城市导航、物流运输、旅行规划等多个领域。 Maptalks路径规划的核心算法是基于图论的最短路径算法,例如Dijkstra算法和A*算法。在进行路径规划之前,需要输入起点和终点的坐标信息,同时可以根据需求考虑其他条件,例如优先选择高速公路、避开拥堵区域等。然后,算法会根据地图数据中的道路网格信息计算出最短和最佳的路径,并在地图上进行可视化展示。 路径规划结果可以展示出路线的详细信息,例如经过的道路、路程、预计的时间等。在地图上,用户可以看到路径的图示,并通过放大缩小、拖动地图等方式进行查看和操作。在需要时,用户还可以进行路径的修改,例如添加途径点或者避免某条特定道路。 Maptalks路径规划不仅提供了基础的路径规划功能,还可以与其他地图数据进行集成。例如,用户可以将路径规划与实时交通数据结合,以获得更准确的行驶时间和路况信息。此外,还可以将路径规划与用户自定义图层、地点搜索等功能相结合,提供更丰富的地图导航体验。 总之,Maptalks路径规划是一种方便实用的工具,可以帮助用户在地图上找到最佳的行车、步行或公共交通路线,并提供详细的导航信息,为用户的出行提供方便和效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值