- 博客(13)
- 收藏
- 关注
转载 空命名空间的意义
一个类有两种成员函数:公有成员函数,外界可以使用类的对象访问;私有成员函数,外界不可以访问,但是可以看到,只能在类内部调用。空命名空间就可以使得私有的成员函数不被外界看到也不被访问。例子:*.hnamespace robot { class Slam { }}*.cppnamespace robot {namespace {...
2019-09-06 17:25:00
614
转载 Cartographer构建probability grid map
1:名词解释:probability grid map 地图是经过栅格化的地图,且地图中的每个像素值用概率来表示。 p = 1,表示被占据; p = 0.5,表示未知,地图初始化的时候,每个栅格可以初始化为0.5; p = 0.0,表示free,即确定没有障碍物。2:如何更新每个栅格的概率 使用赔率(odd)来更新栅格的概率值。如果被激光击中(...
2019-08-16 08:16:00
596
转载 Cartographer安装与卸载
注意:protoc版本会影响后续的安装,首先确认系统中有没有protobuf:locate protobuf;如果有,把所有与其相关的文件全部删除,再安装1:安装ceres_solver (1)cmake .. -G Ninja -DCXX11=ON (2)ninja (3)sudo ninja install2:安装protobuf3 (1)cmake -G Ninja -DC...
2019-08-07 12:52:00
1874
转载 Cartographer 中的协方差矩阵和信息矩阵
1:运动方程有协方差矩阵R,观测方程有协方差矩阵Q。它们表示的意义是,到当前时刻t为止,所有测量的样本的协方差矩阵,用来衡量本次测量的不确定性。2:信息矩阵是协方差矩阵的逆,用来表示本次测量的可靠性,即不确定越小,则可靠性就越大。3:因此,公式推导里出现的相邻两个状态之间的协方差矩阵,实际上是到当前状态为止,之前所有样本的协方差矩阵。也就是说协方差矩阵随着样本的增加在不断的更新。...
2019-08-05 15:00:00
1195
转载 Cartographer scan to map的详细过程
1:已知上一时刻的地图m,也是未完成的submap。因为scan to map的过程,就是scan to current submap的过程。2:submap是栅格地图,这是为了方便匹配。3:机器人在任意时刻,都能看到map上的所有occupied points。但是,scan不一定能扫描到所有的点。4:matching的过程,实际上就是把scan的所有扫描数据,映射到当前的...
2019-08-03 11:04:00
2388
转载 求圆弧圆心坐标
double x1 = position1_x; double y1 = position1_y; double x2 = position2_x; double y2 = position2_y; double dy = y2 - y1; double dx = x2 - x1; d...
2019-07-18 09:50:00
1009
转载 坐标变换-tf::transform
tf::Transform r_to_w(tf::createQuaternionFromYaw(robot_pose_[2]),tf::Vector3(robot_pose_[0],robot_pose_[1],0)); tf::Transform t_to_w(tf::createQuaternionFromYaw(target_pose_[2]),tf::Vector...
2019-07-18 09:45:00
1682
转载 霍夫直线变换
直线截据表达式:y = k*x+b直线极坐标表达式:x*cosθ + y*sinθ = ρ,其中θ是直线垂足方向。问题:已知直线上两点(xi,yi),(xj,yj),直线外一点(rx,ry)求直线外该点到直线的垂足坐标。即求两条直线的交点坐标step1:直线的方向θ = atan2(yj-yi,xj-xi)step2:theta_1 = θ + Π/2st...
2019-07-18 09:29:00
192
转载 非线性最小二乘求解
假设:非线性方程为g(x) = z;模型:构建残差 f(x) = g(x) -z目标:求残差最小时的状态x方法:高斯牛顿法求解过程: 1:构建损失函数(cost function): min || f(x + Δx) ||2 注释:因为我们这里考虑的状态x是一个多为的矢量,对矢量求大小,要计算它的范数,这里我们使用...
2019-07-06 15:37:00
858
转载 ros参数服务器初始化-param
问题:如下参数类型T,必须是常用的标准类型,不能使用重定义的数据类型。特别是整型,只能使用int,不能使用unsigned int等。 template<typename T> T param(const std::string& param_name, const T& default_val)否则会报错: error: i...
2019-07-02 11:14:00
350
转载 最小二乘法——白话文解释
数学表达:ε=Σ(yi-y)2中文解释:为求真实值y,经过多次测量得到yi。使得测量值与真实值误差平方和最小的真实值,即为所求结果。图像解释:重点:对于真实值的表达方式,即y=f(x),如何更好的描述这个表达方式,是最小二乘法的核心问题。转载于:https://www.cnblogs.com/mowangaxing/p/11115236.html...
2019-07-01 17:07:00
332
转载 消息时间同步器
目标:同步小于9个的消息话题方法: 1:定义每个消息的接收器 message_filters::Subscriber<Image> image_sub(nh, "image", 1); message_filters::Subscriber<CameraInfo> info_sub(nh, "camera_info"...
2019-07-01 12:00:00
190
转载 catkin所依赖的package必须在package.xml中添加build_depend和run_depend
现象: error: catkin_package() the catkin package '×××' has been find_package()-ed but is not listed as a build dependency in the package.xml 解决方法: 1:首先出现这个问题的原因是在CMakeLists配置文件中 fi...
2019-06-27 08:56:00
3365
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人