机器人
文章平均质量分 87
ErinLiu虎哥的铲屎员
这个作者很懒,什么都没留下…
展开
-
Minimum snap matlab 代码(二)- 闭式解求解参数
文章目录1.用优化solver求解参数算法概况2.闭式解求解参数代码2.1 得到M矩阵2.2计算C矩阵1.用优化solver求解参数算法概况具体看Minimum Snap轨迹规划详解(二)- 闭式求解J=pTQp=[dFdP]TCTM−TQM−1C[dFdP]=[dFdP]TR[dFdP]=[dFdP]T[RFFRFPRPFRPP][dFdP]=dFTRFFdF+dFTRFPdP+dPTRPFdF+dPTRPPdP\begin{aligned}J&=p^TQp = \begin{bmatr原创 2021-05-28 13:55:21 · 1161 阅读 · 1 评论 -
Minimum snap matlab 代码(一)- 用优化solver求解参数
文章目录1.用优化solver求解参数算法概况2.用优化solver求解参数代码2.1 计算Q矩阵2.2 计算等式约束1.用优化solver求解参数算法概况具体看Minimum Snap轨迹规划详解(一)最高阶7阶,共8个参数p(t)=p0+p1t+p2t2...+pntn=∑i=0n=7pitiv(t)=p′(t)=∑i⩾1n=7i⋅piti−1a(t)=p′′(t)=∑i⩾2n=7i!(i−2)!⋅piti−2jerk(t)=p(3)(t)=∑i⩾3n=7i!(i−3)!⋅piti−3snap原创 2021-05-28 12:45:45 · 1407 阅读 · 3 评论 -
Minimum Snap轨迹规划详解(二)- 闭式求解
文章目录1.QP等式约束构建2. 如何求d?2.1. 消除重复变量(连续性约束)2.2 向量元素置换2.3 转成无约束优化问题3. 闭式法步骤参考文献转载自https://blog.csdn.net/q597967420/article/details/79031791如果QP问题只有等式约束没有不等式约束,那么是可以闭式求解(close form)的。闭式求解效率要快很多,而且只需要用到矩阵运算,不需要QPsolver。这里介绍Nicholas Roy文章中闭式求解的方法。1.QP等式约束构建闭转载 2021-05-27 16:10:26 · 1338 阅读 · 3 评论 -
Minimum Snap轨迹规划详解(一)
1.轨迹规划是什么?在机器人导航过程中,如何控制机器人从A点移动到B点,通常称之为运动规划。运动规划一般又分为两步:路径规划:在地图(栅格地图、四\八叉树、RRT地图等)中搜索一条从A点到B点的路径,由一系列离散的空间点(waypoint)组成。轨迹规划:由于路径点可能比较稀疏、而且不平滑,为了能更好的控制机器人运动,需要将稀疏的路径点变成平滑的曲线或稠密的轨迹点,也就是轨迹。2.轨迹是什么?...转载 2021-05-27 15:18:37 · 1531 阅读 · 0 评论 -
读PythonRobotics StateLatticePlanner源码-代码注释篇
文章目录2.注释2.1motion_model.py2.2model_predictive_trajectory_generator.py2.3 lookuptable_generator.py2.4 state_lattice_planner.py接上篇读PythonRobotics StateLatticePlanner源码-原理篇2.注释2.1motion_model.py这部分主要定义state类型[x,y,yaw,v][x,y,yaw,v][x,y,yaw,v],位置,航向,和速度。涉原创 2021-05-21 11:20:36 · 1781 阅读 · 4 评论 -
读PythonRobotics StateLatticePlanner源码-原理篇
文章目录1.原理1.1 Pontryain's minimum principle1.2 Numerical Optimization1.2.1论文中基础信息1.2.2 Constrained Trajectory Generation1.2.3 Constrained Optimization Trajectory Generation1.2.4向前积分1.2.5 lookup table1.3.状态空间采样1.3.1局部规划的算法框架为1.3.2 均匀采样边界状态伪代码1.3.3 有global gui原创 2021-05-20 23:25:57 · 2460 阅读 · 2 评论 -
读ALOAM FLOAM源码笔记
文章目录1.雷达点云畸变补偿2. 每帧点云找特征点3.前后帧点线与点面对应4.根据李代数直接求出四元数和平移向量待填坑1.雷达点云畸变补偿对每个激光点坐标做补偿,补偿量为射出本激光点时,激光原点即雷达坐标相对该帧起始时刻的变化。若起始时刻,雷达位姿为T0=[R0t001]T_0 = \begin{bmatrix}R_0 & t_0 \\ 0&1\end{bmatrix}T0=[R00t01]第i个激光点时,雷达位姿为Ti=[Riti01]T_i = \begin原创 2021-05-18 17:21:07 · 1552 阅读 · 1 评论 -
JPS(jump point search)
A算法在扩展节点过程中,会出现许多对称路径,形状类似且cost相同。这些节点会被均匀的扩散访问,最终得到规划结果时,会扩展许多无用节点。因此需要在许多类似的路径中带有倾向性的选择其中一条,节省计算资源。JPS算法基本步骤与A相同,在选择需要扩展的邻居节点中有些不同。A*扩展几何上的所有相邻点,适用于栅格地图或拓扑地图。JPS带有选择性的扩展邻居,以得到路径上影响运行方向的中继点,在中继点前后路段的方向不同(水平、垂直、对角)。带有倾向性的优先选择某个方向。最终生成的路径也是几何上间断的点集。但仅适原创 2021-05-07 16:52:13 · 595 阅读 · 1 评论 -
GeographicLib编译踩坑笔记
cmakefind_package (GeographicLib REQUIRED)include_directories(${GeographicLib_INCLUDE_DIRS})list(APPEND ALL_TARGET_LIBRARIES ${GeographicLib_LIBRARIES})报错cmake/geographic.cmake:1 (find_package): By not providing "FindGeographicLib.cmake" in CMAKE_原创 2021-04-22 23:57:48 · 7513 阅读 · 5 评论 -
卡尔曼滤波
图解部分来自 知乎问题第一个回答的视频部分(感谢作者的翻译):https://www.zhihu.com/question/23971601推导部分转自作者白巧克力亦唯心: https://heyijia.blog.csdn.net/article/details/40899819卡尔曼滤波一般用于优化估算一些无法直接测量但可以间接测量的量,或用于从受误差影响的传感器测量值中估算出系统状态。系统的状态可以由状态转移预测得到预测值,及传感器测量得到测量值,但其中都包含噪声,因此需要把这两个值结合得到估转载 2020-12-26 14:02:44 · 286 阅读 · 0 评论 -
libmodbus tcp/ip client
文章目录1.modbus概况2.各语言的推荐 Modbus 库3. 我对modbus程序的理解4.tcp/ip 报文解析4.1 功能码(libmodbus 程序中的定义)4.2 client向server发送 的request报文4.2.1 client发送报文,各个功能码对应的数据部分4.2.2 client报文举例4.3 server的response 报文3.写个代码(libmodbus) tcp/ip client1.modbus概况搜索有大把的解析,我就精简的写。是一种通讯协议,分客户端/原创 2020-10-10 10:10:11 · 2211 阅读 · 0 评论 -
ROS2(四)- MultiThreadedExecutor多线程调用callback funcs
如何多线程调用callback funcs1.callback_group2.node默认的组别3.使用singleThreadedExecutor,想要多线程调用callback3.1 可设置不同的MutuallyExclusive callback_group3.2 设置同一个Reentrant callback_group本想使用多线程executor执行node,没想到简单的创建Subscription之后callback funcs竟然是顺序执行的,所以仔细看了一下,原来node中还有callb原创 2020-09-23 11:42:12 · 7291 阅读 · 1 评论 -
ROS2(三) -一个报错引发的executor,node的思考
本人使用版本为ROS2-dashing版本。由于学习ROS2时十分匆忙,只把它当成一个通讯工具,所以看官方文档时并没有仔细思考,目的是能用就行,到具体报错时才不得不去看源代码找答案。即便写代码时知道Node,Executor如何定义,但对于这两个东西的内部实现并不了解。直到使用官方文档(service and client)的Client代码抄出了问题…以下是我浅显的想法,如果有问题欢迎指正。文章目录1.node的构成2.executor3.出错的程序3.1 node_main.cpp,正常执行3.2原创 2020-08-19 16:59:35 · 3002 阅读 · 2 评论 -
样条曲线长度--数值积分
转载自:https://www.cnblogs.com/flytrace/p/8413255.html文章目录1.根据长度求坐标思路2.用数值积分实现s的积分3.牛顿迭代求解s对应的t4.直接推导二阶贝塞尔曲线的长度积分解析式前几天在做摄像机轨道时,解决匀速定长运动问题,刚好理解了题述问题。首先做完这个曲线上匀速运动的编程实现后,是十分愉悦的。这个问题里,两个科学史上的伟人,牛顿和高斯,相继大显身手,怎能不让人膜拜?我之前并不了解所涉及的数值分析方法,所以觉得很神奇。以下为简洁我会使用向量的表示方法转载 2020-07-09 12:07:07 · 3786 阅读 · 0 评论 -
ROS2(一)- tf之 MessageFilter 与 tf::MessageFilter理解与应用
1 MessageFilter1.1 主要用法之——消息的订阅与回调1.2 主要用法之——时间同步1.3 主要用法之——时间顺序的回调2 tf::MessageFilter2.1 示例AMCL2.2 wiki教程3 tf2_ros::MessageFilter3.1 wiki教程4 tf2_ros之使用tf进行坐标变换4.1 tf::Transformer Class Reference4.2 tf2_ros::BufferInterface Class Referencerefer转载 2020-05-19 13:01:33 · 4271 阅读 · 1 评论 -
ROS2(二)- nav2_amcl 代码算法总结
我用的ros2-dashing版本,其他版本的没看过。navigation2代码可以git下载navigation2。amcl算法全部可以从《概率机器人》书上找到:生成新粒子群(5.4节)、计算权重(6.4节)、重采样算法(8.3.5节)。有了算法看代码就容易很多。文章目录1.粒子滤波概括2.程序逻辑3.算法3.1 粒子滤波基本算法3.2 根据odom和旧粒子采样得到新粒子3.2.1介绍里程计...原创 2020-03-17 13:44:12 · 1210 阅读 · 0 评论 -
Particle Filter Tutorial 粒子滤波:从推导到应用
转载自作者白巧克力亦唯心的文章:粒子滤波文章目录1.贝叶斯滤波2.蒙特卡洛采样3.重要性采样4.SIS Filter(Sequential Importance Sampling)5.重采样6.SIR粒子滤波Sampling Importance Resampling Filter由最基础的贝叶斯估计开始介绍,再引出蒙特卡罗采样,重要性采样,SIS粒子滤波,重采样,基本粒子滤波Generic ...转载 2020-03-17 13:17:57 · 508 阅读 · 0 评论 -
ROS2(二) - nav2_amcl节点概况
AMCL是一个针对二维移动机器人的概率定位系统。它实现了自适应(或KLD采样)蒙特卡罗定位方法(如Dieter Fox所述),该方法使用粒子过滤器来跟踪机器人在已知地图上的姿势。算法从Probabilistic Robotics书中的算法sample_motion_model_odometrybeam_range_finder_modellikelihood_field_range_f...原创 2020-03-17 13:02:12 · 1215 阅读 · 0 评论 -
麦轮全向移动原理
参考作者在路上@Amos《麦克纳姆轮全向移动原理》,作者讲述了麦轮的基础知识,感兴趣请戳。这里只涉及4个轮子的特定方向安装,还有很多种安装方式。俯视轮子图在小车上安装麦轮的图下图轮子的方向为俯视时辊子的方向与地面接触的辊子方向其中vtv_tvt是小车的速度,ω\omegaω是小车的角速度。小车的运动小车底盘的速度vtv_tvt可以分解为X,Y轴平动速度vtx,vtyv_...原创 2020-02-04 22:48:15 · 6371 阅读 · 1 评论 -
ORCA(Optimal Reciprocal Collision Avoidance)笔记
参考博文:https://blog.csdn.net/u012740992/article/details/89397714论文文档:http://gamma.cs.unc.edu/ORCA/文章目录1.问题定义2. 速度障碍区VOA∣BτVO_{A|B}^{\tau}VOA∣Bτ(velocity obstacle)3.避免碰撞速度集合CAA∣Bτ(VB)CA_{A|B}^{\tau}(V...原创 2019-12-19 11:07:16 · 6244 阅读 · 1 评论