robot_localization

原文链接:http://docs.ros.org/melodic/api/robot_localization/html/preparing_sensor_data.html

译文:robot_localization是状态估计节点的集合,每个状态估计节点都是机器人在三维空间运动的非线性状态估计器的实现。它包含两个状态估计节点ekf_localization_node和ukf_localization_node。此外,robot_localization提供了navsat_transform_node,帮助GPS数据的整合。

 

 

robot_localization中的所有状态估计节点都具有相同的特征,即:

 

任意数量传感器的融合。

节点不限制输入源的数量。

例如,如果您的机器人有多个imu或多个里程信息源,robot_localization中的状态估计节点可以支持所有这些信息。

支持多种ROS消息类型。

robot_localization中的所有状态估计节点都可以接受nav_msgs/Odometry、sensor_msgs/Imu、geometry_msgs/ posewithcovari,或者geometry_msgs/ twistwithcovarimessages。

每个传感器输入定制。

如果给定的传感器消息包含您不想包含在状态估计中的数据,robot_localization中的状态估计节点允许您在每个传感器的基础上排除该数据。连续的评估。

robot_localization中的每个状态估计节点在接收到一次测量后就开始估计车辆的状态。

如果传感器数据中有假日(即,在很长一段时间内没有接收到数据),过滤器将继续通过内部运动模型估计机器人的状态。

所有状态估计节点跟踪飞行器的15维状态:(X,Y,Z,roll,pitch,yaw,X˙,Y˙,Z˙,roll˙,pitch˙,yaw˙,X¨,Y¨,Z¨)。

 

ekf_localization_node和ukf_localization_node共有的参数

  • 〜频率

以Hz为单位的实值频率,滤波器在此处产生状态估计。

注意

 

在从其中一个输入接收至少一条消息之前,过滤器不会开始计算。

  • 〜two_d_mode 

如果您的机器人在平面环境中操作并且您对忽略地面的细微变化感到满意(如IMU报告的那 样),则将其设置为true。它将为所有3D变量(Z,滚动,俯仰以及它们各自的速度和加速度)融合0值。这样可以保证这些值的协方差不会爆炸,同时确保机器人的状态估计值保持固定在XY平面上。

 

 

 

 

 

 

 

~[sensor]_differential

Specific parameters:

  • ~odomN_differential
  • ~imuN_differential
  • ~poseN_differential

For each of the sensor messages defined above that contain pose information, users can specify whether the pose variables should be integrated differentially. If a given value is set to true, then for a measurement at time t from the sensor in question, we first subtract the measurement at time t−1, and convert the resulting value to a velocity. This setting is especially useful if your robot has two sources of absolute pose information, e.g., yaw measurements from odometry and an IMU. In that case, if the variances on the input sources are not configured correctly, these measurements may get out of sync with one another and cause oscillations in the filter, but by integrating one or both of them differentially, we avoid this scenario.

Users should take care when using this parameter for orientation data, as the conversion to velocity means that the covariance for orientation state variables will grow without bound (unless another source of absolute orientation data is being fused). If you simply want all of your pose variables to start at 0, then please use the _relative parameter.

Note

 

If you are fusing GPS information via navsat_transform_node or utm_transform_node, you should make sure that the _differential setting is false.

 

对于上面定义的包含姿态信息的每个传感器消息,用户可以指定是否应该不同地集成姿态变量。如果给定的值被设置为true,那么对于传感器在t时刻的测量值,我们首先减去t1时刻的测量值,并将结果值转换为速度。如果你的机器人有两个绝对姿态信息的来源,这个设置是特别有用的,例如,偏航测量里程表和IMU。在这种情况下,如果输入源上的方差配置不正确,这些测量值可能彼此不同步,并在过滤器中引起振荡,但是通过对其中一个或两个值进行不同的集成,我们可以避免这种情况。

 

译文:用户在使用此参数处理方向数据时应小心,因为转换为速度意味着方向状态变量的协方差将无约束地增长(除非融合了另一个绝对方向数据源)。如果您只是想让所有的位姿变量都从0开始,那么请使用_relative参数。

 

~[sensor]_relative

Specific parameters:

  • ~odomN_relative
  • ~imuN_relative
  • ~poseN_relative

If this parameter is set to true, then any measurements from this sensor will be fused relative to the first measurement received from that sensor. This is useful if, for example, you want your state estimate to always start at (0,0,0) and with roll,pitch, and yaw values of (0,0,0). It is similar to the _differential parameter, but instead of removing the measurement at time t−1, we always remove the measurement at time 0, and the measurement is not converted to a velocity.

如果将该参数设置为true,则来自该传感器的任何测量值都将相对于从该传感器接收到的第一个测量值进行融合。例如,如果希望状态估计值总是从(0,0,0)开始,并且滚、俯仰和偏航值都是(0,0,0),那么这是非常有用的。它类似于_微分参数,但是我们不移除t1时刻的测量值,我们总是移除t1时刻的测量值,而且测量值没有转换为速度。

 

 

 

 

如果将该参数设置为true,则来自该传感器的任何测量值都将相对于从该传感器接收到的第一个测量值进行融合。例如,如果希望状态估计值总是从(0,0,0)开始,并且滚、俯仰和偏航值都是(0,0,0),那么这是非常有用的。它类似于_微分参数,但是我们不移除t1时刻的测量值,我们总是移除t1时刻的测量值,而且测量值没有转换为速度。

 

 

~imuN_remove_gravitational_acceleration

If fusing accelerometer data from IMUs, this parameter determines whether or not acceleration due to gravity is removed from the acceleration measurement before fusing it.

Note

 

This assumes that the IMU that is providing the acceleration data is also producing an absolute orientation. The orientation data is required to correctly remove gravitational acceleration.

~gravitational_acceleration

If imuN_remove_gravitational_acceleration is set to true, then this parameter determines the acceleration in Z due to gravity that will be removed from the IMU’s linear acceleration data. Default is 9.80665 (m/s^2).

 

译文:

如果融合加速度计数据来自IMUs,则该参数决定融合前加速度测量中是否去掉重力加速度。

注意,这假设提供加速度数据的IMU也产生一个绝对方向。正确消除重力加速度需要方位数据。

 

 

~initial_state

Starts the filter with the specified state. The state is given as a 15-D vector of doubles, in the same order as the sensor configurations. For example, to start your robot at a position of (5.0,4.0,3.0), a yaw of 1.57, and a linear velocity of (0.1,0.2,0.3), you would use:

<rosparam param="initial_state">[5.0, 4.0, 3.0, 0.0, 0.0, 1.57, 0.1, 0.2, 0.3, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]</rosparam>

 

以指定的状态启动筛选器。状态是一个15维的双精度矢量,与传感器的配置顺序相同。

 

~publish_tf

If true, the state estimation node will publish the transform from the frame specified by the world_frame parameter to the frame specified by the base_link_frame parameter. Defaults to true.

~publish_acceleration

If true, the state estimation node will publish the linear acceleration state. Defaults to false.

译文:如果为真,状态估计节点将发布线性加速状态。默认值为false。

~print_diagnostics

If true, the state estimation node will publish diagnostic messages to the /diagnostics topic. This is useful for debugging your configuration and sensor data.

译文:如果为真,状态估计节点将向/diagnostics主题发布诊断消息。这对于调试配置和传感器数据非常有用。

 

如果为真,状态估计节点将发布从world_frame参数指定的帧到base_link_frame参数指定的帧的转换。默认值为true。

如果为真,状态估计节点将发布线性加速状态。默认值为false。

如果为真,状态估计节点将向/diagnostics主题发布诊断消息。这对于调试配置和传感器数据非常有用。

 

Advanced Parameters

~use_control

If true, the state estimation node will listen to the cmd_vel topic for a geometry_msgs/Twist message, and use that to generate an acceleration term. This term is then used in the robot’s state prediction. This is especially useful in situations where even small amounts of lag in convergence for a given state variable cause problems in your application (e.g., LIDAR shifting during rotations). Defaults to false.

译文:如果为真,状态估计节点将侦听geometry_msgs/Twist消息的cmd_vel主题,并使用该主题生成一个加速项。这个术语被用于机器人的状态预测。这在某些情况下特别有用,即使对于给定的状态变量,在收敛上有很小的延迟,也会导致应用程序出现问题(例如,激光雷达在旋转过程中发生移位)。默认值为false。

译文:注意,IMU中线性加速度数据的存在和包含目前将“覆盖”预测的线性加速度值。

 

 

 

 

~smooth_lagged_data

If any of your sensors produce data with timestamps that are older than the most recent filter update (more plainly, if you have a source of lagged sensor data), setting this parameter to true will enable the filter, upon reception of lagged data, to revert to the last state prior to the lagged measurement, then process all measurements until the current time. This is especially useful for measurements that come from nodes that require heavy CPU usage to generate pose estimates (e.g., laser scan matchers), as they are frequently lagged behind the current time.

译文:如果任何传感器产生的数据的时间戳比最近的过滤器更新(说得更明白点,如果你有一个滞后传感器数据来源),将该参数设置为true将使过滤器,在接收数据的滞后,回到过去的状态滞后测量前,然后处理所有测量直到当前时间。这对于来自需要大量CPU使用才能生成位姿估计的节点的测量尤其有用(例如,激光扫描匹配器),因为它们常常落后于当前时间。

 

~process_noise_covariance

The process noise covariance, commonly denoted Q, is used to model uncertainty in the prediction stage of the filtering algorithms. It can be difficult to tune, and has been exposed as a parameter for easier customization. This parameter can be left alone, but you will achieve superior results by tuning it. In general, the larger the value for Q relative to the variance for a given variable in an input message, the faster the filter will converge to the value in the measurement.

译文:在滤波算法的预测阶段,采用过程噪声协方差(通常记为Q)对不确定性进行建模。它可能很难调优,并且已经作为一个参数公开,以便更容易地进行定制。这个参数可以单独使用,但是通过调优它,您将获得更好的结果。一般来说,Q相对于输入消息中给定变量的方差的值越大,过滤器收敛到测量值的速度就越快。

 

 

 

 

~initial_estimate_covariance

The estimate covariance, commonly denoted P, defines the error in the current state estimate. The parameter allows users to set the initial value for the matrix, which will affect how quickly the filter converges. For example, if users set the value at position [0,0] to a very small value, e.g., 1e-12, and then attempt to fuse measurements of X position with a high variance value for X, then the filter will be very slow to “trust” those measurements, and the time required for convergence will increase. Again, users should take care with this parameter. When only fusing velocity data (e.g., no absolute pose information), users will likely not want to set the initial covariance values for the absolute pose variables to large numbers. This is because those errors are going to grow without bound (owing to the lack of absolute pose measurements to reduce the error), and starting them with large values will not benefit the state estimate.

 

译文:估计协方差,通常表示为P,定义了当前状态估计中的误差。该参数允许用户设置矩阵的初值,这将影响过滤器收敛的速度。例如,如果用户设置值的位置(0,0)为一个很小的值,例如,1 e-12,然后试图融合测量X位置高方差值X,那么过滤器将非常缓慢的“信任”这些测量,和收敛所需的时间将会增加。同样,用户应该注意这个参数。当仅对速度数据进行熔接时(例如,不进行熔接)

 

Services

  • set_pose - By issuing a geometry_msgs/PoseWithCovarianceStamped message to the set_pose topic, users can manually set the state of the filter. This is useful for resetting the filter during testing, and allows for interaction with rviz. Alternatively, the state estimation nodes advertise a SetPose service, whose type is robot_localization/SetPose.

译文:通过向set_pose主题发出一个geometry_msgs/ posewithcovarimessage,用户可以手动设置过滤器的状态。这对于在测试期间重置过滤器非常有用,并且允许与rviz交互。或者,状态估计节点为SetPose服务做广告,该服务的类型是robot_localization/SetPose。

 

 

navsat_transform_node 

navsat_transform_node输入nav_msgs / Odometry消息(通常是ekf_localization_node或的输出ukf_localization_node),sensor_msgs / Imu包含机器人标题的准确估计,以及包含GPS数据的sensor_msgs / NavSatFix消息。它会在座标中生成与机器人世界框架一致的odometry消息。该值可以直接融合到您的状态估计中。

注意

 

如果将此节点的输出与任何状态估计节点融合robot_localization,则应确保该输入的odomN_differential设置为false。

 

参数

〜频率

以Hz为单位的实值频率,用于navsat_transform_node检查新的sensor_msgs / NavSatFix消息,并在设置为true时发布已过滤的sensor_msgs / NavSatFix。publish_filtered_gps

〜延迟

计算从GPS座标到机器人世界框架的变换之前等待的时间(以秒为单位)。

〜magnetic_declination_radians 

输入您所在位置的磁偏角。如果您不知道,请参阅http://www.ngdc.noaa.gov/geomag-web(确保将值转换为弧度)。如果您的IMU根据磁北方向生成其方向,则需要此参数。全球每个地方的磁偏角不同

〜yaw_offset 

面向东方时,你的IMU应该读为0偏航。如果没有,请在此处输入偏移量(desired_value = offset + sensor_raw_value)。例如,如果您的IMU在面向北方时报告0,就像大多数情况那样,此参数将为pi/2(~1.5707963)。此参数在版本中已更改2.2.1。以前,navsat_transform_node假设IMU在面向北方时读取0,因此yaw_offset被相应地使用。

〜zero_altitude 

如果这是真的,则此节点生成的nav_msgs / Odometry消息的姿势Z值设置为0。

〜publish_filtered_gps 

如果为true,navsat_transform_node还会将机器人的世界框架(例如,地图)位置转换回GPS座标,并在主题上发布sensor_msgs / NavSatFix消息/gps/filtered。

如果是这样,navsat_transform_node将在UTM网格和输入测距数据的帧之间广播变换。有关更多信息,请参阅下面的已发布变换

〜use_odometry_yaw 

如果为true,navsat_transform_node则不会从IMU数据中获取其标题,而是从输入的odometry消息中获取。如果您的测距消息具有在以地球为参考的帧中指定的方向数据(例如,由磁力计产生),则用户应注意仅将其设置为true。此外,状态估计,如果测距源是一个节点中robot_localization,用户应该有绝对的取向数据中的至少一个源被送入节点,与_differential和_relative设置为参数假。

〜wait_for_datum 

如果为true,navsat_transform_node将等待从以下两者获取数据:

  • 该datum参数
  • 该set_datum服务

如果为true,navsat_transform_node将发布utm-> world_frame变换而不是world_frame-> utm变换。请注意,要发布的转换broadcast_utm_transform也必须设置为true。

〜transform_timeout 

此参数指定在转换尚不可用时我们要等待多长时间。如果未设置,则默认为0。值0表示我们只是获取最新的可用(参见tf2实现)转换。

订阅主题

发布主题

  • odometry/gps甲nav_msgs /里程计你的机器人,转化成它的世界座标框架的包含GPS信息座标。该消息可以直接融合到robot_localization状态估计节点中。
  • gps/filtered(可选)包含机器人世界框架位置的sensor_msgs / NavSatFix消息,转换为GPS座标

已发布的变换

  • world_frame->utm(可选) - 如果broadcast_utm_transform参数设置为 true,则navsat_transform_node计算从utm帧到frame_id输入测距数据的变换 。默认情况下,通过使用逆变换将utm帧作为odometry帧的子项发布。使用该broadcast_utm_transform_as_parent_frame参数,utm框架将作为odometry框架的父级发布。如果您在一个TF树中有多个机器人,这将非常有用。

 

The state estimation nodes of robot_localization produce a state estimate whose pose is given in the map or odom frame and whose velocity is given in the base_link frame. All incoming data is transformed into one of these coordinate frames before being fused with the state. The data in each message type is transformed as follows:

译文:robot_localization的状态估计节点产生一个状态估计,其位姿在map或odom帧中给出,速度在base_link帧中给出。所有输入的数据在与状态融合之前都转换成这些座标系中的一个。每个消息类型中的数据转换如下:

 

  • nav_msgs/Odometry - All pose data (position and orientation) is transformed from the message header’s frame_id into the coordinate frame specified by the world_frame parameter (typically map or odom). In the message itself, this specifically refers to everything contained within the pose property. All twist data (linear and angular velocity) is transformed from the child_frame_id of the message into the coordinate frame specified by the base_link_frame parameter (typically base_link).

译文:nav_msgs/Odometry—所有姿态数据(位置和方向)都从消息头的frame_id转换为world_frame参数(通常是map或odom)指定的座标帧。在消息本身中,这特别指包含在pose属性中的所有内容。所有twist数据(线性和角速度)都从消息的child_frame_id转换为base_link_frame参数(通常是base_link)指定的座标帧。

 

译文:以与里程表消息中的姿态数据相同的方式处理。

  • geometry_msgs/TwistWithCovarianceStamped - Handled in the same fashion as the twist data in the Odometry message.
  • 译文:以与里程表消息中的twist数据相同的方式处理。
  • sensor_msgs/Imu - The IMU message is currently subject to some ambiguity, though this is being addressed by the ROS community. Most IMUs natively report orientation data in a world-fixed frame whose X and Z axes are defined by the vectors pointing to magnetic north and the center of the earth, respectively, with the Y axis facing east (90 degrees offset from the magnetic north vector).

译文:IMU消息目前存在一些歧义,不过ROS社区正在解决这个问题。大多数IMUs在一个世界固定的座标系中报告方位数据,其X轴和Z轴分别由指向地磁北极和地球中心的矢量定义,Y轴向东(与地磁北极矢量偏移90度)。

This frame is often referred to as NED (North, East, Down). However, REP-103 specifies an ENU (East, North, Up) coordinate frame for outdoor navigation. As of this writing, robot_localization assumes an ENU frame for all IMU data, and does not work with NED frame data. This may change in the future, but for now, users should ensure that data is transformed to the ENU frame before using it with any node in robot_localization.

译文:这个框架通常被称为NED(北,东,下)。然而103为,REP-户外导航指定了一个ENU(东、北、上)座标系。在撰写本文时,robot_localization假设所有IMU数据都有一个ENU帧,并且不使用NED帧数据。这在将来可能会发生变化,但是现在,用户应该确保在将数据与robot_localization中的任何节点一起使用之前,将数据转换到ENU帧。

The IMU may also be oriented on the robot in a position other than its “neutral” position. For example, the user may mount the IMU on its side, or rotate it so that it faces a direction other than the front of the robot. This offset is typically specified by a static transform from the base_link_frame parameter to the IMU message’s frame_id. The state estimation nodes in robot_localization will automatically correct for the orientation of the sensor so that its data aligns with the frame specified by the base_link_frame parameter.

译文:IMU也可以定位在机器人的“中立”位置以外的位置。例如,用户可以将IMU安装在它的一侧,或者旋转它,使其朝向机器人前方以外的方向。这个偏移量通常由base_link_frame参数到IMU消息的frame_id的静态转换指定。robot_localization中的状态估计节点会自动纠正传感器的方向,使其数据与base_link_frame参数指定的帧对齐。

 

 

Considerations for Each Sensor Message Type

Odometry

Many robot platforms come equipped with wheel encoders that provide instantaneous translational and rotational velocity. Many also internally integrate these velocities to generate a position estimate. If you are responsible for this data, or can edit it, keep the following in mind:(译文:许多机器人平台都配备了车轮编码器,可以提供瞬时的平移和旋转速度。许多人还对这些速度进行内部积分,以生成位置估计。如果你要对这些数据负责,或者可以编辑这些数据,请记住以下几点:)

  1. Velocities/Poses: robot_localization can integrate velocities or absolute pose information. In general, the best practice is(积分速度或绝对位姿信息。一般来说,最佳实践是):
  • If the odometry provides both position and linear velocity, fuse the linear velocity(译文:如果里程表同时提供了位置和线速度,则融合线速度。).
  • If the odometry provides both orientation and angular velocity, fuse the orientation.(译文:如果里程表同时提供方向和角速度,则融合方向。)

Note

 

If you have two sources of orientation data, then you’ll want to be careful. If both produce orientations with accurate covariance matrices, it’s safe to fuse the orientations. If, however, one or both under-reports its covariance, then you should only fuse the orientation data from the more accurate sensor. For the other sensor, use the angular velocity (if it’s provided), or continue to fuse the absolute orientation data, but turn _differential mode on for that sensor.

译文:如果你有两个方向数据来源,那么你就需要小心了。如果两个方向都产生精确的协方差矩阵,则融合方向是安全的。但是,如果一个或两个都少报告了它的协方差,那么您应该只融合来自更精确的传感器的方向数据。对于另一个传感器,使用角速度(如果提供角速度),或者继续融合绝对方向数据,但是为该传感器打开_差分模式

  1. frame_id: See the section on coordinate frames and transforms above.
  2. Covariance: Covariance values matter to robot_localization. robot_pose_ekf attempts to fuse all pose variables in an odometry message(译文:尝试将所有位姿变量融合到里程计消息中。). Some robots’ drivers have been written to accommodate its requirements. This means that if a given sensor does not produce a certain variable(译文:这意味着如果给定的传感器不产生某个变量) (e.g., a robot that doesn’t report Z position), then the only way to get robot_pose_ekf to ignore it is to inflate its variance to a very large value (on the order of 1e3) so that the variable in question is effectively ignored. (译文:然后,让robot_pose_ekf忽略它的唯一方法是将它的方差膨胀到一个非常大的值(大约是1e3),以便有效地忽略所讨论的变量。)This practice is both unnecessary and even detrimental to the performance of robot_localization.(译文:这种做法是不必要的,甚至不利于robot_localization的性能。) The exception is the case where you have a second input source measuring the variable in question, in which case inflated covariances will work.(译文:例外的情况是,您有第二个输入源来测量所涉及的变量,在这种情况下,膨胀的协方差将起作用。)

Note

 

See Configuring robot_localization and Migrating from robot_pose_ekf for more information.

  1. Signs: Adherence to REP-103 means that you need to ensure that the signs of your data are correct. For example, if you have a ground robot and turn it counter-clockwise, then its yaw angle should increase, and its yaw velocity should be positive. If you drive it forward, its X-position should increase and its X-velocity should be positive.(译文:例如,如果你有一个地面机器人逆时针旋转,那么它的偏航角应该增加,它的偏航速度应该是正的。如果你推动它向前,它的x位置应该增加,它的x速度应该是正的。)
  2. Transforms: Broadcast of the odom->*base_link* transform. When the world_frame parameter is set to the value of the odom_frame parameter in the configuration file, robot_localization’s state estimation nodes output both a position estimate in a nav_msgs/Odometry message and a transform from the frame specified by its odom_frame parameter to its base_link_frame parameter. However, some robot drivers also broadcast this transform along with their odometry message. If users want robot_localization to be responsible for this transform, then they need to disable the broadcast of that transform by their robot’s driver. This is often exposed as a parameter.(译文:当world_frame参数设置的值odom_frame参数在配置文件中,robot_localization的输出状态估计节点位置估算nav_msgs 测程法消息和变换从其odom_frame参数所指定的帧base_link_frame参数。然而,一些机器人司机也传播了这种转换以及他们的里程表信息。如果用户希望robot_localization负责此转换,则需要禁用机器人驱动程序对该转换的广播。这通常作为一个参数公开。)

 

 

IMU

In addition to the following, be sure to read the above section regarding coordinate frames and transforms for IMU data.(译文:除了以下内容外,请务必阅读上面关于IMU数据的座标系和转换的部分。)

  1. Adherence to specifications(译文:坚持规范): As with odometry, be sure your data adheres to REP-103 and the sensor_msgs/Imu specification. Double-check the signs of your data, and make sure the frame_id values are correct.(译文:与里程表一样,请确保您的数据符合REP-103和sensor_msgs/Imu规范。仔细检查数据的符号,并确保frame_id值是正确的。)
  2. Covariance: Echoing the advice for odometry, make sure your covariances make sense. Do not use large values to get the filter to ignore a given variable. Set the configuration for the variable you’d like to ignore to false.(将要忽略的变量的配置设置为false。)
  3. Acceleration: Be careful with acceleration data. The state estimation nodes in robot_localization assume that an IMU that is placed in its neutral right-side-up position on a flat surface will:
  • Measure +9.81 meters per second squared for the Z axis.
  • If the sensor is rolled +90 degrees (left side up), the acceleration should be +9.81 meters per second squared for the Y axis.
  • If the sensor is pitched +90 degrees (front side down), it should read -9.81 meters per second squared for the X axis.

PoseWithCovarianceStamped

See the section on odometry.

TwistWithCovarianceStamped

See the section on odometry.

Common errors

  • Input data doesn’t adhere to REP-103. Make sure that all values (especially orientation angles) increase and decrease in the correct directions.
  • Incorrect frame_id values. Velocity data should be reported in the frame given by the base_link_frame parameter, or a transform should exist between the frame_id of the velocity data and the base_link_frame.
  • Inflated covariances. The preferred method for ignoring variables in measurements is through the odomN_config parameter.
  • Missing covariances. If you have configured a given sensor to fuse a given variable into the state estimation node, then the variance for that value (i.e., the covariance matrix value at position (i,i), where i is the index of that variable) should not be 0. If a 0 variance value is encountered for a variable that is being fused, the state estimation nodes will add a small epsilon value (1e−6) to that value. A better solution is for users to set covariances appropriately.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章