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 ...
随机推荐
- Nuget.config格式错误,请检查nuget.config配置文件
安装 VS 2015 Professional 版,安装后,我想加一个nuget的包配置. 然后提示我:Nuget.config格式错误,请检查nuget.config配置文件 我找到了 Nuget. ...
- sshd_config_for_centos
# $OpenBSD: sshd_config,v // :: djm Exp $ # This is the sshd server system-wide configuration file. ...
- java的四种内部类(转)
一般来说,有4中内部类:常规内部类.静态内部类.局部内部类.匿名内部类. 一.常规内部类:常规内部类没有用static修饰且定义在在外部类类体中. 1.常规内部类中的方法可以直接使用外部类的实例变量 ...
- 系统编程--高级IO
1.非阻塞I/O 非阻塞I/O使我们可以调用不会永远阻塞的I/O操作,例如open,read和write.如果这种操作不能完成,则立即出错返回,表示该操作如继续执行将继续阻塞下去.对于一个给定的描述符 ...
- 第三节 MVC应用程序架构和测试
在查看如何测试单个功能之后,您可能会问,整个Web应用程序如何? 如前所述,有以下级别的测试: 单元测试 集成测试 功能测试 在开始编写测试时考虑这一点很重要. 可能还有其他类型的测试,但现在让我们关 ...
- PHP实现RSA签名生成订单功能【支付宝示例】
//组合签名 $a=time(); $b=substr($a, 1); //生成随机订单号 $orderid= $b.mt_rand(10000,99999); //合作身份者id,以2088开头的1 ...
- hdu 2516 取石子游戏 (博弈)
取石子游戏 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- P2294 [HNOI2005]狡猾的商人
题目描述 输入输出格式 输入格式: 从文件input.txt中读入数据,文件第一行为一个正整数w,其中w < 100,表示有w组数据,即w个账本,需要你判断.每组数据的第一行为两个正整数n和m, ...
- [poj] 1269 [zoj] 1280 Interesting Lines || 求两直线交点
POJ原题 ZOJ原题 多组数据.每次给出四个点,前两个点确定一条直线,后两个点确定一条直线,若平行则输出"NONE",重合输出"LINE",相交输出" ...
- Oracle SQL 疑难解析读书笔记(一 基础)
1.在语句中找到和消除空值 select first_name,last_name from hr.employees where commission_pct is null is null 和 i ...