elevation mapping学习笔记2之高程图输入、输出、服务和参数配置的定义和说明

news2024/11/23 1:18:08

文章目录

  • 0 引言
  • 1 话题Topics
    • 1.1 订阅subscribe
    • 1.2 发布publish
  • 2 服务Services
  • 3 参数Parameters

0 引言

elevation mapping学习笔记1已经成功编译安装elevation mapping高程图工程,并运行示例turtlesim3_waffle_demo,在仿真环境下,控制带有传感器的机器人生成高程图,简单熟悉了高程图的实际应用。本文主要熟悉了该工程一些输入、输出、功能服务和参数配置的定义和说明。

👉 elevation mapping github:https://github.com/ANYbotics/elevation_mapping

本文系统环境:

  • Ubuntu18.04
  • ROS-melodic
  • elevation mapping

1 话题Topics

ros类工程肯定需要订阅话题和发布话题,elevation mapping高程图工程主要有三种需要订阅的话题类型,支持两种发布的话题。

1.1 订阅subscribe

elevation mapping高程图工程主要的输入数据有三部分,topic类型分别是:点云(相机,雷达等)、协方差位姿(机器人,里程计等)和tf关系,其中点云和tf关系是必需的,协方差位姿是非必需的。

  • /points( sensor_msgs/PointCloud2 )

  • /pose( geometry_msgs/PoseWithCovarianceStamped )

  • /tf(tf/tf消息)

比如运行TurtleBot3 Waffle示例,可分别echo这三种数据:

点云数据: rostopic echo /camera/depth/points

  frame_id: "camera_rgb_optical_frame"
height: 1080
width: 1920
fields: 
  - 
    name: "x"
    offset: 0
    datatype: 7
    count: 1
  - 
    name: "y"
    offset: 4
    datatype: 7
    count: 1
  - 
    name: "z"
    offset: 8
    datatype: 7
    count: 1
  - 
    name: "rgb"
    offset: 16
    datatype: 7
    count: 1
is_bigendian: False
point_step: 32
row_step: 61440

协方差位姿数据:rostopic echo /base_footprint_pose

  frame_id: "odom"
pose: 
  pose: 
    position: 
      x: -2.99972175706
      y: 1.00078679455
      z: -0.00100739962037
    orientation: 
      x: -5.58514904452e-06
      y: 0.00158964306941
      z: 0.00246946885279
      w: 0.999995687354
  covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]

tf关系树:rostopic echo /tf

transforms: 
  - 
    header: 
      seq: 0
      stamp: 
        secs: 1318
        nsecs: 164000000
      frame_id: "odom"
    child_frame_id: "base_footprint"
    transform: 
      translation: 
        x: -2.99971786734
        y: 1.00079767969
        z: -0.0010073996308
      rotation: 
        x: -5.63941461375e-06
        y: 0.00158964291266
        z: 0.00250363158562
        w: 0.999995602407

1.2 发布publish

elevation mapping高程图工程主要的输出数据有两部分:原始高程图elevation_map_raw和经过后处理的高程图elevation_map

  • elevation_map( grid_map_msgs/GridMap )

  • elevation_map_raw( grid_map_msgs/GridMap )

  1. elevation_map_raw(原始高程图):
  • elevation_map_raw是一种原始的高程图表示,通常以一个二维栅格(grid)的形式呈现。
  • 它直接从传感器(如激光雷达或深度相机)获取原始测量数据,没有进行额外的滤波或处理。
  • 每个栅格单元格(cell)存储了一个原始高度值,通常以为单位。
  • elevation_map_raw提供了对地面高度的基本估计,但可能包含传感器噪音、遮挡物等不完整或不准确的数据。
  1. elevation_map(修正高程图):
  • elevation_map是在elevation_map_raw基础上进行处理和滤波后的高程图表示。
  • 它通过使用滤波算法(如高斯滤波、中值滤波等)来平滑和修正原始数据,以减少噪音和不准确性。
  • elevation_map通常会对原始高度数据进行插值,使得在栅格之间的位置也具有高度估计值,从而提供更连续和均匀的地面高度表示。
  • 由于经过处理和滤波,elevation_map通常比elevation_map_raw更适合用于高级算法和导航任务。
示例elevation_map_rawelevation_map
TurtleBot3 Waffle请添加图片描述请添加图片描述

2 服务Services

elevation mapping高程图工程还提供了一些服务,这些服务能方便查询高程图的信息,重载、保存高程图等功能。

  • trigger_fusion (std_srvs/Empty)

    触发整个高程图的融合过程并发布:

rosservice call /elevation_mapping/trigger_fusion
  • get_submap (grid_map_msgs/GetGridMap)

    获取所需位置和大小的融合高程子图。例如,您可以获取 odom 框架中描述的位置 (-0.5, 0.0) 和大小 (0.5, 1.2) 处的融合高程子图,并将其从控制台保存到文本文件中:

rosservice call -- /elevation_mapping/get_submap odom -0.5 0.0 0.5 1.2 []
  • get_raw_submap (grid_map_msgs/GetGridMap)

    获取请求位置和大小的原始高程子图。例如,您可以获取 odom 框架中描述的位置 (-0.5, 0.0) 和大小 (0.5, 1.2) 处的原始高程子图,并将其从控制台保存到文本文件中:

rosservice call -- /elevation_mapping/get_raw_submap odom -0.5 0.0 0.5 1.2 []
  • clear_map (std_srvs/Empty)

    出于重置目的开始清理整个地图。触发地图清理:

rosservice call /elevation_mapping/clear_map
  • masked_replace (grid_map_msgs/SetGridMap)

    允许通过服务调用设置高程图的各个图层。mask层只能用于设置某些单元格,而不是整个地图。mask中包含NAN 的单元格未设置,所有其他单元格均已设置。如果未提供mask层,则整个地图将设置在两个地图的交集中。所提供的地图的大小和位置可以与将要更改的地图不同。将高程图层中标有mask的一些单元格设置为 0.5 的服务调用示例如下:

  rosservice call /elevation_mapping/masked_replace "map:
    info:
      header:
        seq: 3
        stamp: {secs: 3, nsecs: 80000000}
        frame_id: 'odom'
      resolution: 0.1
      length_x: 0.3
      length_y: 0.3
      pose:
        position: {x: 5.0, y: 0.0, z: 0.0}
        orientation: {x: 0.0, y: 0.0, z: 0.0, w: 0.0}
    layers: [elevation,mask]
    basic_layers: [elevation]
    data:
    - layout:
        dim:
        - {label: 'column_index', size: 3, stride: 9}
        - {label: 'row_index', size: 3, stride: 3}
        data_offset: 0
      data: [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5]
    - layout:
        dim:
        - {label: 'column_index', size: 3, stride: 9}
        - {label: 'row_index', size: 3, stride: 3}
        data_offset: 0
      data: [0, 0, 0, .NAN, .NAN, .NAN, 0, 0, 0]
    outer_start_index: 0
    inner_start_index: 0"
  • save_map (grid_map_msgs/ProcessFile)

    将当前融合网格图和原始网格图保存到 rosbag 文件。字段topic_name必须是基本名称,即没有前导斜杠字符 (/)。如果字段topic_name为空,则elevation_map默认使用。使用默认主题名称的示例:

rosservice call /elevation_mapping/save_map "file_path: '/home/integration/elevation_map.bag' topic_name: ''"
  • load_map (grid_map_msgs/ProcessFile)

    rosbag 文件加载融合网格图和原始网格图。字段topic_name必须是基本名称,即没有前导斜杠字符 (/)。如果字段topic_name为空,则elevation_map默认使用。使用默认主题名称的示例:

rosservice call /elevation_mapping/load_map "file_path: '/home/integration/elevation_map.bag' topic_name: ''"
  • reload_parameters (std_srvs/Trigger)

    触发所有高程测绘参数的重新加载,可用于在线重新配置参数。用法示例:

rosservice call /elevation_mapping/reload_parameters {}
  • disable_updates (std_srvs/Empty)

    停止使用传感器输入更新高程图。触发更新停止:

rosservice call /elevation_mapping/disable_updates {}
  • enable_updates (std_srvs/Empty)

    开始使用传感器输入更新高程图。触发更新开始:

rosservice call /elevation_mapping/enable_updates {}

3 参数Parameters

elevation mapping高程图工程的配置文件主要在elevation_mapping/config/sensor_processors/**.yamlelevation_mapping/elevation_mapping_demos/config/elevation_maps/**.yamlelevation_mapping/elevation_mapping_demos/config/postprocessing/**.yaml和、elevation_mapping/elevation_mapping_demos/config/robots/**.yaml,分别对应传感器的参数设置、高程图的参数设置、后处理的参数设置和机器人的参数设置。

  • input_sources(输入点云参数)
    首先是机器人中的参数配置,目前已不建议使用point_cloud_topic字段,建议改用input_sources,详细可参考如下对输入点云的参数设置:
input_sources:
    front: # A name to identify the input source
      type: pointcloud # Supported types: pointcloud
      topic: /lidar_front/depth/points
      queue_size: 1
      publish_on_update: true # Wheter to publish the elevation map after a callback from this source. 
    rear:
      type: pointcloud
      topic: /lidar_rear/depth/points
      queue_size: 5
      publish_on_update: false
  • robot_pose_topic(字符串,默认:/robot_state/pose

    机器人位姿和协方差主题的名称。

  • base_frame_id(字符串,默认:/robot

    机器人基础 tfid

  • map_frame_id(字符串,默认值:/map

    高程图tf的id。

  • track_point_frame_id(字符串,默认:/robot

    高程图随着机器人沿着_轨迹点_移动。这是定义跟踪点的 tf 帧的 id

  • track_point_x, track_point_y, track_point_z(双精度,默认值:0.0, 0.0, 0.0

    高程图随着机器人沿着_轨迹点_移动。这是轨迹点在 中的位置track_point_frame_id

  • robot_pose_cache_size(整数,默认值:200,最小值:0

    机器人姿态缓存的大小。

  • min_update_rate(双精度,默认值:2.0

    根据新测量值或机器人姿态估计更新高程图的最小更新率(以 Hz 为单位)。

  • fused_map_publishing_rate(双精度,默认值:1.0

    发布整个(融合)高程地图的帧率。

  • relocate_rate(双精度,默认值:3.0

    检查高程图是否遵循跟踪点进行重定位的速率(以 Hz 为单位)。

  • length_in_x, length_in_y(双精度,默认值:1.5,最小值:0.0

    高程图的大小(以米为单位)。

  • position_x, position_y(双精度,默认值:0.0

    高程图框架中高程图中心的位置。此参数设置生成的高程图与发布它的框架 ( map_frame_id) 之间的平面位置偏移。track_point_frame_id仅当不使用参数时才有用。

  • resolution(双精度,默认值:0.01,最小值:0.0

    高程图的分辨率(像元大小,以米/像元为单位)。

  • min_variance, max_variance(双精度,默认值:9.0e-6, 0.01

    高程地图方差数据的最小值和最大值。

  • mahalanobis_distance_threshold(双精度,默认值:2.5

    高程图中的每个像元的高度值都具有不确定性。根据现有高度分布的马氏距离和新测量值,传入数据将与现有估计融合、覆盖或忽略。该参数确定马哈拉诺比斯距离的阈值,该阈值决定如何处理传入的测量值。

  • sensor_processor/ignore_points_above(双精度,默认值:inf

    深度传感器引入的点高度的硬阈值。在数据收集步骤中,高度超过此阈值的点将被视为无效。

  • sensor_processor/ignore_points_below(双精度,默认值:-inf

    深度传感器引入的点高度的硬阈值。在数据收集步骤中,高度低于此阈值的点将不会被视为有效。

  • multi_height_noise(双精度,默认值:9.0e-7

    添加到高于该特定位置的当前高程图的测量值的噪声。仅当点超过马哈拉诺比斯距离阈值时,才会执行此噪声添加过程。较高的值有助于更快地适应动态环境(例如,移动的物体),但可能会导致高度估计中产生更多噪声。

  • min_horizontal_variance, max_horizontal_variance(双精度,默认:pow(分辨率 / 2.0, 2), 0.5)

    高程地图水平方差数据的最小值和最大值。

  • enable_visibility_cleanup(布尔值,默认值:true

    启用/禁用一个单独的线程,该线程通过源自传感器框架的光线追踪从地图中删除不再可见的元素。

  • visibility_cleanup_rate(双精度,默认值:1.0

    执行可见性清理的速率(以 Hz 为单位)。

  • enable_continuous_cleanup(布尔值,默认值: false

    启用/禁用高程图的连续清理。如果启用,在每个新传感器数据到达时,高程图将被清除并仅用来自传感器的最新数据填充。启用连续清理后,可见性清理将自动禁用,因为在这种情况下不需要。

  • num_callback_threads(整数,默认值:1,分钟:1

    用于处理回调的线程数。更多线程会导致更高的吞吐量,但代价是更多的资源使用。

  • postprocessor_pipeline_name(字符串,默认值:postprocessor_pipeline

    要执行后处理的管道的名称。它期望将管道配置加载到该名称下的节点的私有命名空间中。例如:

  <node pkg="elevation_mapping" type="elevation_mapping" name="elevation_mapping" output="screen">
      ...
      <rosparam command="load" file="$(find elevation_mapping_demos)/config/postprocessor_pipeline.yaml" />
  </node>
  • postprocessor_num_threads(整数,默认值:1,最小值:1

    用于异步后处理的线程数。更多线程会导致更高的吞吐量,但代价是更多的资源使用。

  • scanning_duration(双精度,默认值:1.0

    用于可见性清理的传感器扫描持续时间(以为单位)。将此粗略设置为两次连续完整扫描之间所需的持续时间(例如,对于 30 HzToF 相机为 0.033,对于旋转激光扫描仪为 3 s)。根据扫描的密集程度或稀疏程度,增加或减少扫描持续时间。较小的值会导致更快的动态对象删除,较大的值有助于减少错误的地图清理。

  • sensor_cutoff_min_depth, sensor_cutoff_max_depth(双精度,默认值:0.2、2.0)

    距离传感器测量长度的最小值和最大值。忽略此间隔之外的测量值。

  • sensor_model_normal_factor_a, sensor_model_normal_factor_b, sensor_model_normal_factor_c, sensor_model_lateral_factor(双精度)

    传感器噪声模型的数据。

  • initialize_elevation_map(布尔), initialization_method(整数), length_in_x_init_submap(双精度,m), length_in_y_init_submap(双精度,m), init_submap_height_offset(双精度,m), init_submap_variance(双精度), target_frame_init_submap(字符串)

    如果启用(prinistize_elevation_map:true),请在init_submap_height_offset的高度偏移围绕target_frame_init_submaporign_submap_height_offset的高度偏移量初始化sizeumpap_length_xsubmap_length_xsubmap_length_y)的平面(onimplization_method0)。该方差设置为init_submap_variance

  • increase_height_alpha(双精度,默认:0.0,最小值:0.0,最大值:0.99

    高程 = i n c r e a s e h e i g h t a l p h a ∗ p r e v i o u s z + ( 1.0 − i n c r e a s e h e i g h t a l p h a ) ∗ n e w m e a s u r e d z increase_height_alpha * previous_z + (1.0 -increase_height_alpha) * new_measured_z increaseheightalphapreviousz+(1.0increaseheightalpha)newmeasuredz 凸组合参数,用于针对分布点形成新的融合高度观测。对于尚未观察到的cell,高度高于马哈拉诺比斯上限的观察会scanning_duration 触发高度估计的重新初始化。重新初始化被参数化为先前高度估计和观测的凸组合:

    • 0.0:新的观察作为初始化新模式,先前的数据被丢弃。
    • 1.0:不考虑当前扫描中更高的、不符合分布的新观察点。先验保留为模式。
    • 介于两者之间:值越高,对现有的先前估计的偏差就越大。将形成估计和测量之间的高度和方差的凸组合以初始化新的高斯高度分布。

Reference:

  • https://github.com/ANYbotics/elevation_mapping



须知少时凌云志,曾许人间第一流。



⭐️👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍🌔

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

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

相关文章

九、ESP32控制1602LCD屏幕显示内容

1. 运行效果 2. 1602简介 1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字) 市面上字符液晶大多数是基于HD44780液晶芯片的 需要8根数据线来传输要显示的数据,当然还

每天一道leetcode:剑指 Offer 04. 二维数组中的查找(中等二分查找)

今日份题目&#xff1a; 在一个 n * m 的二维数组中&#xff0c;每一行都按照从左到右 非递减 的顺序排序&#xff0c;每一列都按照从上到下 非递减 的顺序排序。请完成一个高效的函数&#xff0c;输入这样的一个二维数组和一个整数&#xff0c;判断数组中是否含有该整数。 示…

EP4CE6E22C8 FPGA最小系统电路原理图+PCB源文件

资料下载地址&#xff1a;EP4CE6E22C8 FPGA最小系统电路原理图PCB源文件 一、原理图 二、PCB

Windows 安装Tensorflow2.1、Pycharm开发环境

文章目录 1、安装anaconda2、安装Tensoflow2.1、创建虚拟环境2.2、安装Tensorflow依赖2.3、验证Tensorflow是否成功 3、配置pycharm环境4、错误记录 1、安装anaconda https://www.anaconda.com/download 打开命令行工具&#xff0c;出现base就表示安装成功了&#xff0c;表示当…

SQL-每日一题【1204. 最后一个能进入巴士的人】

题目 表: Queue 有一队乘客在等着上巴士。然而&#xff0c;巴士有1000 千克 的重量限制&#xff0c;所以其中一部分乘客可能无法上巴士。 写一条 SQL 查询语句找出 最后一个 上巴士且不超过重量限制的乘客&#xff0c;并报告 person_name 。题目测试用例确保顺位第一的人可以…

学编程实用网站

牛客网&#xff1a;面试刷题和面试经验分享的网站牛客网 - 找工作神器|笔试题库|面试经验|实习招聘内推&#xff0c;求职就业一站解决_牛客网 (nowcoder.com)https://www.nowcoder.com/ 慕课网&#xff1a;在线学习 慕课网-程序员的梦工厂 (imooc.com)https://www.imooc.com/ …

Spring Boot配置文件与日志文件

1. Spring Boot 配置文件 我们知道, 当我们创建一个Spring Boot项目之后, 就已经有了配置文件存在于目录结构中. 1. 配置文件作用 整个项目中所有重要的数据都是在配置文件中配置的&#xff0c;比如: 数据库的连接信息 (包含用户名和密码的设置) ;项目的启动端口;第三方系统的调…

励志长篇小说《周兴和》书连载之八 处心积虑揽工程

处心积虑揽工程 如何去揽工程&#xff0c;周兴和其实早就谋划好了。 那一天&#xff0c;周兴和与爱人王琼华的姐夫严忠伦、大舅子王安全提了10来只大公鸡&#xff0c;背着两只狗腿&#xff0c;以及城里人喜欢的干豇豆等山区土特产&#xff0c;坐车来到省城成都。下了车&#x…

DeepMind将AI用于可控核聚变:将等离子体形状模拟精度提高65%

近日&#xff0c;英国AI公司DeepMind宣布取得了一项新的突破&#xff0c;成功实现了AI可控核聚变。这一技术能够在高温等离子体环境下实现精准放电&#xff0c;为核聚变技术的发展提供了新的思路和创新。 长期以来&#xff0c;相关领域的科学家们&#xff0c;一直在寻找清洁、取…

试卷去手写内容在线擦除,使用这个方法轻松达成

在数字时代&#xff0c;越来越多的人开始使用电子设备来完成日常任务。即使在考试时&#xff0c;许多学生也选择使用电子设备来写答案&#xff0c;而不是在试卷上手写。然而&#xff0c;有时候我们需要手写答案&#xff0c;但当我们想要更改或者擦除时&#xff0c;这将是一个麻…

第三章 图论 No.6负环之01分数规划与特殊建图方式

文章目录 裸题&#xff1a;904. 虫洞01分数规划&#xff1a;361. 观光奶牛特殊建图与01分数规划trick&#xff1a;1165. 单词环 裸题&#xff1a;904. 虫洞 904. 虫洞 - AcWing题库 // 虫洞是负权且单向边&#xff0c;道路是正权且双向边&#xff0c;题目较裸&#xff0c;判…

Linux CentOS安装NVIDIA GPU驱动程序和NVIDIA CUDA工具包

要在CentOS上安装NVIDIA驱动程序和NVIDIA CUDA工具包&#xff0c;您可以按照以下步骤进行操作&#xff1a; 1. 准备工作&#xff1a; 确保您的系统具有兼容的NVIDIA GPU。您可以在NVIDIA官方网站上查找支持CUDA的GPU型号列表。如果您之前已经安装了Nouveau驱动程序并禁用了它…

【基于DAVE的英飞凌XMC4200的RS485通讯】

设备明细&#xff1a; 单片机&#xff1a;英飞凌开发板XMC4200 Platform2Go&#xff1b; 开发软件&#xff1a; DAVE; 测试设备&#xff1a;示波器。 调试PIN TX: PIN 2.14 接线 TX PIN 2.14&#xff1a;接示波器信号端 GND&#xff1a;接示波器地端 Debug口USB&#xff1…

如何搭建个人的GPT网页服务

写在前面 在创建个人的 GPT网页之前&#xff0c;我登录了 Git 并尝试了一些开源项目&#xff0c;但是没有找到满足我个性化需求的设计。虽然许多收费的 GPT网页提供了一些免费额度&#xff0c;足够我使用&#xff0c;但是公司的安全策略会屏蔽这些网页。因此&#xff0c;我决定…

【开源项目--稻草】Day06

【开源项目--稻草】Day06 1. 学生提问与解答功能2. 显示create.html2.1 HomeController中代码2.2 复用网页的标签导航条 3. 创建问题发布界面3.1 富文本编辑器 4.多选下列框5.动态加载所有标签和老师6. 发布问题的业务处理 1. 学生提问与解答功能 学生提问: 提问时指定标签和回…

LeetCode-Java(02)

5. 最长回文子串 首先用start和end记录开始和结尾位置&#xff0c;遍历每一个字符&#xff0c;对于每一个字符有两种情况&#xff0c;第一种情况&#xff0c;从一个字符中心扩展&#xff0c;得到len1&#xff0c;第二种情况&#xff0c;从两个字符中心扩展&#xff0c;得到len2…

MFC第二十七天 通过动态链表实现游戏角色动态增加、WM_ERASEBKGND背景刷新的原理、RegisterClass注册窗口与框架程序开发

文章目录 通过动态链表实现游戏角色动态增加CMemoryDC.hCFlashDlg.hCFlashDlg.cpp WM_ERASEBKGND背景刷新的原理RegisterClass注册窗口与框架程序开发CFrameRegister 通过动态链表实现游戏角色动态增加 CMemoryDC.h #pragma once#include "resource.h"/*内存DC类简介…

【Shell】基础语法(二)

文章目录 一、Shell基本语法文件名代换命令代换算术代换转义字符引号 二、Shell脚本语法条件测试分支结构循环 三、总结 一、Shell基本语法 文件名代换 用于匹配的字符称为通配符&#xff08;Wildcard&#xff09;&#xff0c;如&#xff1a;* ? [ ] 具体如下&#xff1a; *…

【Datawhale AI 夏令营第二期】AI 量化模型预测挑战赛

文章目录 赛题分析赛题背景赛事任务赛题数据集评价指标 Baseline实践导入模块EDA特征工程模型训练与验证结果输出 改进 赛题分析 赛题背景 量化金融在国外已经有数十年的历程&#xff0c;而在国内兴起还不到十年。这是一个极具挑战的领域。量化金融结合了数理统计、金融理论、…

DataWhale 机器学习夏令营第二期——AI量化模型预测挑战赛 学习记录

DataWhale 机器学习夏令营第二期 学习记录一 (2023.08.06)1. 问题建模1.1 赛事数据数据集情况数据中缺失值类别和数值特征的基本分布 1.2 评价指标中间价的计算方式价格移动方向说明 1.3 线下验证 DataWhale 机器学习夏令营第二期 ——AI量化模型预测挑战赛 已跑通baseline&…