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 ...
随机推荐
- Vue组件编写
Vue无疑是近来最火的一个前端框架,它吸取了angular1.x和react的精华,性能优良,而且易于上手,本文主要是关于如何去写一个组件. 首先是项目目录 编写组件 在这里我写了一个日期控件(移动端 ...
- spring 笔记2:Spring MVC : Did not find handler method for 问题的解决
日志显示为: Looking up handler method for path /***Did not find handler method for [/***]No mapping found ...
- appium+python的APP自动化(2)
上节说到安卓上的测试环境都安装好了,这个时候要安装python了 1python的安装 https://www.python.org/15官网下载python2.7(3.0以上也行,个人爱好),安装也 ...
- Python全栈工程师(迭代器、字节串)
ParisGabriel 每天坚持手写 一天一篇 决定坚持几年 为了梦想为了信仰 Python人工智能从入门到精通 迭代器 Iterator: 用<&g ...
- pom中的resources设置
Maven项目中一般都会把配置文件放到src/main/resources目录下,有时为了满足多个环境打包发布,可能会创建一些自定义目录来放置各环境的配置文件,如:src/main/profile/d ...
- [转载]GCC 编译使用动态链接库和静态链接库--及先后顺序----及环境变量设置总结
来自http://blog.csdn.net/benpaobagzb/article/details/51364005 GCC 编译使用动态链接库和静态链接库 1 库的分类 根据链接时期的不同,库又有 ...
- Android动态添加和移除布局
package com.hyang.administrator.studentproject; import android.os.Bundle; import android.support.v7. ...
- jsp页面提示“Multiple annotations found at this line: - The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path”解决方案
Multiple annotations found at this line: - The superclass "javax.servlet.http.HttpServlet" ...
- Oracle常用数据库系统表单以及SQL的整理
因为最近涉及到了一些数据库的归档,备份等工作,所以一部分的重心放在了数据库上,毕竟之前对数据库的了解也只停留在了一般的建表,查询,最多最多再写一写触发器之类的东西. 通常都是自己瞎搞搞,也就懂一点皮毛 ...
- 第二阶段团队冲刺-two
昨天: 处理第一次启动服务器500的问题. 今天: 修复博客作业查询功能. 遇到的问题: 无.