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 ...
随机推荐
- [转载]Network-Emulator Network-Emulato
Network-Emulator-Toolkit网络模拟器使用详细介绍 by:授客 QQ:1033553122 原理介绍 图1 如上图,一个ADSL用户通过modem连接到网络,通过网络应用如IE,M ...
- centos6系列问题
一.NetworkManager启动问题 1.由于以后要支持e1000版虚拟化网卡,所有centos6镜像均按照NetworkManager服务,并设置开机自启动 2.虚机启动时,默认是Network ...
- c语言版贪吃蛇小游戏
编译环境:windows 7 64位 编译工具:codeblocks 13.12 备注:未使用graphics.h 声明:个人原创,未经允许,禁止转载!!! 数据结构:双向链表 1.程序未使用grap ...
- php学习ing
cmd运行,表示在本地d:/php/workspace下文件映射在127.0.0.1的8080端口下,-S -t不要忘记 php -S 127.0.0.1:8080 -t E:\class_manag ...
- JS计算器(自制)
<!doctype html><html><header><meta charset="utf-8"><script src= ...
- Struts2的result返回类型
- hdu 1551 Cable master (二分法)
Cable master Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tota ...
- [洛谷P4725]【模板】多项式对数函数
题目大意:给出$n-1$次多项式$A(x)$,求一个 $\bmod{x^n}$下的多项式$B(x)$,满足$B(x) \equiv \ln A(x)$.在$\bmod{998244353}$下进行.保 ...
- 简易web服务器(npm)
npm install -g http-server 以后可以在任何一个文件夹启动静态文件的访问通过http-server -a localhost -p 8000ctrl + c结束 http-se ...
- javascript jquery document.ready window.onload
网易 博客 下载LOFTER客户端 注册登录 加关注 凡图的编程之路 2012年7月从一个编程新手的点点滴滴 首页 日志 LOFTER 相册 博友 关于我 日志 关于我 Holy ...