localize by triangle note
1.当拟合结果不为1时,取和上次相近的作为结果
2.python画三角拟合图bug
(3.减小三角拟合波动:对激光雷达数据进行滤波等处理)
(4.在计算三角起始和结束位置时,添加用距离值过滤)
theta:三角角平分线与小车坐标系x轴的夹角,三角位于x轴右侧时夹角为负值,左侧为正值,单位弧度 (衡量小车中心在三角角平分线的左右侧)
beta:三角顶点与小车坐标系x轴的夹角,三角位于x轴右侧时夹角为负值,左侧为正值,单位弧度 (衡量三角顶点在小车头的左右侧)
alpha = triangle_angle_with_axisX - theta:用来度量小车与最终目标方向的偏差程度
rho:是三角到小车中心的距离值
转角 + 车头控制
转角 + 车中心在三角角平分线上 + 转角 + 车头控制
转角 + 车中心在三角角平分线上 + 转角 + 车头控制(车中心检测)
车中心控制法:转角 + 车中心在三角角平分线上 + 转角
线速度为0时,角速度<0.001小车不动,所以没有意义;线速度为0.002时,角速度为0.0005小车有微小转角
TransMsgToCart(): laser_cart_points(0, i) = X0 + range * cos(q);//雷达倒立时添加负号
//:雷达正放和倒放时line1和line2,相反。正:从左向右是line2,line1;倒立:从左向右是line1,line2
//计算两条线的夹角及交点
/*设直线l1、l2的斜率存在,分别为k1、k2,且夹角不是90度,l1到l2的转向角为θ,则tanθ=(k2- k1)/(1+ k1k2)
l1与l2的夹角为θ,则tanθ=∣(k2- k1)/(1+ k1k2)∣. 直线的斜率公式:k=(y2-y1)/(x2-x1)
注意:两直线的夹角指的是两直线所成的小于90°的锐角,显然夹角公式中的“角”并不都是两直线的夹角*/
5.从tf获得欧拉角roll, pitch, yaw
static tf::TransformListener tf_listener;
tf::StampedTransform laser_transform;
try
{
ros::Time now = ros::Time::now();
tf_listener.waitForTransform (frame_id_laser_, now, frame_id_laser_, now, frame_id_agv_, ros::Duration ( 0.05 ) );
tf_listener.lookupTransform(frame_id_agv_, frame_id_laser_, now, laser_transform);
}
catch (tf::TransformException ex)
{
ROS_WARN("handeld tf laser to agv error: %s\n",ex.what());
return;
}
double roll, pitch, yaw;
laser_transform.getBasis().getEulerYPR(yaw, pitch, roll);
6.关于三角正倒立问题
1),不管激光雷达位置如何旋转变化,三角相对激光雷达的位置是固定的,因此把激光点从极坐标转换到激光雷达直角坐标系时不需要考虑雷达的旋转
2),使用python观察激光点从极坐标转换到激光雷达直角坐标系时,注意雷达的坐标系(雷达的旋转),因为python画的直角坐标系是右手坐标系
3),三角位置的计算可在激光雷达坐标系下进行,计算出三角pose后可将该pose转换到机器人坐标系下使用(此时会用到激光雷达的旋转)
localize by triangle note的更多相关文章
- [LeetCode] Pascal's Triangle II 杨辉三角之二
Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3,Return [1,3, ...
- Pascal's Triangle II 解答
Question Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3,Ret ...
- [Swift]LeetCode119. 杨辉三角 II | Pascal's Triangle II
Given a non-negative index k where k ≤ 33, return the kth index row of the Pascal's triangle. Note t ...
- Inside Triangle
Inside Triangle https://hihocoder.com/contest/hiho225/problem/1 时间限制:10000ms 单点时限:1000ms 内存限制:256MB ...
- leetcode-119-Pascal's Triangle II(生成某一行的帕斯卡三角形)
题目描述: Given a non-negative index k where k ≤ 33, return the kth index row of the Pascal's triangle ...
- 119. Pascal's Triangle II (Amazon) from leetcode
Given a non-negative index k where k ≤ 33, return the kth index row of the Pascal's triangle. Note t ...
- 119. Pascal's Triangle II@python
Given a non-negative index k where k ≤ 33, return the kth index row of the Pascal's triangle. Note t ...
- [LeetCode] 119. Pascal's Triangle II 杨辉三角之二
Given a non-negative index k where k ≤ 33, return the kth index row of the Pascal's triangle. Note t ...
- LeetCode 118:杨辉三角 II Pascal's Triangle II
公众号:爱写bug(ID:icodebugs) 作者:爱写bug 给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行. Given a non-negative index k whe ...
随机推荐
- DesiredCapabilities的作用
负责启动服务端时的参数设置,启动session的时候是必须提供的. Desired Capabilities本质上是key value的对象,它告诉appium server这样一些事情,比如: 本次 ...
- JavaScript显示当前时间的操作
JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标 ...
- 1106 Lowest Price in Supply Chain (25 分)(树的遍历)
求叶子结点处能活得最低价格以及能提供最低价格的叶子结点的个数 #include<bits/stdc++.h> using namespace std; ; vector<int> ...
- springboot04 Ajax json Jquery
一.Ajax 1.同步&异步请求 在所有的请求响应交互世界里,我们有通常会划分出来两种形态的请求, 一种是同步请求.另一种是异步请求 .比如注册.登录.添加数据等等这些请求执行的就是同步请求, ...
- hadoop 客户的的使用
${HADOOP_HOME}/bin/hadoop job Usage: JobClient <command> <args> [-submit <job-file> ...
- 当网卡收到一个包的目的地址是本主机其他接口的IP时.2
arp包进入主机后要经过的过滤是:rp_filter rp_filter会过滤网段 所以说不要在进行arp_ignore测试的时候把rp_filter设置成2, 此时就不会对源地址进行路由的检查了 然 ...
- 【bzoj3638】Cf172 k-Maximum Subsequence Sum 模拟费用流+线段树区间合并
题目描述 给一列数,要求支持操作: 1.修改某个数的值 2.读入l,r,k,询问在[l,r]内选不相交的不超过k个子段,最大的和是多少. 输入 The first line contains inte ...
- C#类和类成员初始化顺序
1.不带静态成员的普通类,首先通过构造函数初始化. 2.带静态属性的类,无论是普通类还是静态类,都会先初始化静态字段,再执行构造函数. 3.类初始化时,不会执行类中方法,无论是否是静态.若想执行方法, ...
- TCP面试题之HTTP和HTTPS的请求过程
HTTP的请求过程: 1.TCP建立连接后,客户端会发送报文给服务端: 2.服务端接收报文并作出响应: 3.客户端收到响应后解析给用户: HTTPS的请求过程: 1.客户端发送请求到服务端: 2.服务 ...
- jQuery UI-Draggable 参数集合
·概述 在任何DOM元素启用拖动功能.通过单击鼠标并拖动对象在窗口内的任何地方移动. 官方示例地址:http://jqueryui.com/demos/draggable/ 所有 ...