windows下使用FCL(Flexible-collision-library) FCL做为一款开源的碰撞检测库,支持多种基础的几何体,及支持C++和python,在windows和linux平台均可以使用。是一款计算高效的碰撞检测工具。在机械臂规划控制框架moveit中做为基础的碰撞检测算法。FCL库(The Flexible Collision Library)主要的功能有:1、碰撞检测:检测两个模型是否重叠,以及(可选)所有重叠的三角形。2、距离计算:计算一对模型之间的最小距离,即最近的一对点之间的距离。3、公差验证:确定两个模型是否比公差距离更近或更远。
微信小程序和ros2进行通信 ;ROS2做为一款优秀的机器人操作系统软件,其搭载了丰富的机器人平台,是目前机器人领域应用最多的软件。微信做为一个大型社交软件,应用非常广泛,其中的小程序直接通过扫二维码进行加载,使用起来非常方便快捷。为了让手机端能够对机器人进行操作,于是通过微信小程序与ROS2通信的方式将两者联系在一起。
webots导入solidworks模型 webots导入solidworks模型准备环境在solidworks下编辑urdf模型手动修改urdf模型使用python将urdf模型转为proto模型 webots作为一款开源的仿真软件,在机器人仿真中有较多的应用,通常机器人模型以.proto格式的文件保存,无法直接打开solidworks文件。需要先将准备环境SolidWorks转URDF的插件,叫做sw_urdf_exporter,下载地址;python3程序包urdf2webots;在solidworks下编辑urdf模型手动
直观地理解车辆的运动控制 直观地理解车辆的运动控制 运动控制的目的是使车辆沿着一条给定的路线运行,尽可能保证车辆和路线的横向偏移量尽可能小,且运行速度越快越好。以下将以差速轮和阿克曼结构的车通俗地介绍如何对车辆进行控制。 车辆的运动控制可以理解成踩油门和打方向盘的过程,车辆的线速度与油门的大小相关,车辆的角速度与方向盘的角度和线速度有关。 正常开车的情况下,当前方道路比较平滑时且车辆处于路的正中央,就可以考虑加大油门了,车辆的速度也就越来越快(当然实际情况要复杂得多,路面情况、车辆状态、其它车辆等都会影响油门的大小)。车
多机器人协同运行 多机器人协同运行 在实际环境中,通常会有多个移动机器人完成一个或多个任务。为了实现这个目标,可以使用多机路径规划加上一个多机器人协同运行控制器。适用条件多机器人在有向或无向图下进行路径规划;多机器人全局路径规划,如CBS;操作过程注意事项...
protobuf和socket通信简单实例 protobuf和socket通信简单实例 protobuf是 Google 公司内部的混合语言数据标准,可以用来定义通信的协议,由于其有序列化和反序列化的操作,减小了存储或通信的数据量,从而达到高效运行的目的。 此实例在ubuntu18.04下正常运行,其它操作系统没有经过测试,无法保证正常运行。protobuf安装 protobuf的下载地址,如图1所示的安装包,安装可参考官网官网安装说明。 图1 下载完毕解压后,在主文件夹
梯度下降法平滑路径 梯度下降法平滑路径 在实际过程中,为了使机器人能够在环境中流畅地运行,就需要一条平滑的路径,而普通的路径搜索算法Dijkstra、A*、rrt等无法满足要求,在此基础上,可以通过一些优化算法平滑路径,如凸优化的方法,但凸优化的方法构造起来比较麻烦,而且操作性较差(如对路径曲率进行约束),对于太长、障碍物比较多的环境,计算的实时性比较差。本文将使用梯度下降的方法将一条曲折的初始路径优化成平滑的无碰撞路径。整体思路 算法的整体思路如下图所示。初始路径规划可以使用A*算法,将路径离散成等距的离散点是为优
梯度法求解优化问题 梯度法求解优化问题通常优化问题非常复杂,难以求解出解析解,但在实际应用过程中, 解能满足一定精度,满足工程要求即可。优化方程的形式和求解方法众多,本文将以梯度法求解静态无约束目标函数,如式(1)所示,并通过一些实例更好地理解这个方法。J=ϕ[x(tf),tf]+∫t0tfL[x(t),u(t),t]dtx˙(t)=f[x(t),u(t),t]x(t0)=x0(1)\begin{array}{l}J= \phi [x(t_f), t_f] + \int _{t_0} ^ {t_f} L[x(t),
凸优化在路径优化中的应用 凸优化在路径优化中的应用总体思路生成凸多边形总体思路凸优化虽然做为优化中的一个特例,但非常多的工程问题都可以转变为凸优化问题,因此应用需求比较多,被大量学者研究,成果颇丰。由于本文重点在应用,不讲解凸优化,如果感兴趣可以参考书籍《Convex Optimization》。使用凸优化对路径进行优化的过程可以如下:Created with Raphaël 2.2.0开始生成初始路径生成凸多边形区域构造优化问题使用求解器求解优化问题结束生成初始路径是为了更容易生成凸多边形,而凸多边形则是为了给优化的目标