AMCL系列之pf_pdf.c

//创建高斯pdf:使用协方差分解,然后pdf->cd更新,得到协方差分解的对角矩阵;
//输入为mean和covariance
// Create a gaussian pdf 
pf_pdf_gaussian_t *pf_pdf_gaussian_alloc(pf_vector_t x, pf_matrix_t cx)
{
  pf_matrix_t cd;
  pf_pdf_gaussian_t *pdf;
  
  /*calloc函数,其原型void *calloc(size_t n, size_t size);
其比malloc函数多一个参数,并不需要人为的计算空间的大小,比如如果他要申请20个int类型空间,会int *p = (int *)calloc(20, sizeof(int)),这样就省去了人为空间计算的麻烦。但这并不是他们之间最重要的区别,malloc申请后空间的值是随机的,并没有进行初始化,而calloc却在申请后,对空间逐一进行初始化,并设置值为0;
*/
  pdf = calloc(1, sizeof(pf_pdf_gaussian_t));

  pdf->x = x;
  pdf->cx = cx;

  //将协方差矩阵分解成旋转矩阵和对角矩阵
  // Decompose the convariance matrix into a rotation
  // matrix and a diagonal matrix.
  // Decompose a covariance matrix [a] into a rotation matrix [r] and a diagonal
  // matrix [d] such that a = r d r^T.

  //使用协方差分解,得到pdf->cd. -->对角矩阵;
  pf_matrix_unitary(&pdf->cr, &cd, pdf->cx);

  pdf->cd.v[0] = sqrt(cd.m[0][0]);
  pdf->cd.v[1] = sqrt(cd.m[1][1]);
  pdf->cd.v[2] = sqrt(cd.m[2][2]);

  // Initialize the random number generator

  srand48(++pf_pdf_seed);

  return pdf;
}
amcl_omni.yaml文件是ROS导航包中AMCL算法的参数配置文件,其中包含了AMCL算法的各种参数。下面是各个参数的详解: 1. odom_model_type:机器人运动模型类型,通常为"omni",表示全向移动机器人。 2. odom_alphaX/Y/Z:机器人平移运动和旋转运动的卡尔曼滤波噪声参数。 3. odom_frame_id:里程计数据的参考坐标系。 4. base_frame_id:机器人底盘坐标系。 5. global_frame_id:全局地图坐标系。 6. transform_tolerance:坐标变换的容差值,单位为秒。 7. gui_publish_rate:GUI显示的频率,单位为Hz。 8. save_pose_rate:保存机器人位姿的频率,单位为Hz。 9. initial_pose:机器人的初始位姿。 10. laser_max_beams:激光雷达数据的最大束数。 11. laser_z_hit:激光雷达的权重系数。 12. laser_z_rand:激光雷达的随机噪声系数。 13. laser_z_max:激光雷达的最大权重。 14. laser_z_min:激光雷达的最小权重。 15. laser_likelihood_max_dist:激光雷达测距数据的最大距离。 16. laser_model_type:激光雷达模型类型,通常为"likelihood_field"。 17. laser_likelihood_field_min_dist:激光雷达测距数据的最小距离。 18. laser_likelihood_field_max_dist:激光雷达测距数据的最大距离。 19. laser_likelihood_field_sigma_hit:激光雷达击中噪声的标准差。 20. laser_likelihood_field_sigma_decay:激光雷达衰减噪声的标准差。 这些参数的理解和设置需要根据具体的机器人和任务需求进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千川不期

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值