差速机器人微分平坦可行性代价梯度推导
大名鼎鼎的ego planner规划期在无人机领域大放异彩,实机表现也令人眼前一亮,好几年了一直都是主流的无人机规划器,于是想到将其改成二维可用与地面机器人,但是不能简单只改一个维度,地面机器人多为非完整欠驱动系统,不像无人机一样可以任意维度横移倾转,需要进一步限制轨迹的角速度、曲率等,于是下面以差速无人车系统为例引入差速机器人微分平坦可行性代价梯度推导。 基础定义与公式 微分平坦模型 (Differential Flatness Model) 先列出差速车辆的运动学方程: {x˙=vcosθ,y˙=vsinθ,θ˙=ω,\begin{cases} \dot x = v\cos\theta,\\\\ \dot y = v\sin\theta,\\\\ \dot\theta = \omega, \end{cases} ⎩⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎧x˙=vcosθ,y˙=vsinθ,θ˙=ω, 差速车辆运动学模型图 我们选择车辆后轴中心的位置 p(t)=[x(t),y(t)]T\bm{p}(t) = [x(t), y(t)]^Tp(t)=[x(t),y(...
做了一个能听懂人话的巡检机器人
总体实现框架图: 找了个实际的变电站环境,改动了一下导入到了Gazebo中用作实验的仿真环境 目前有了一个初步的demo,等做完后开源并对算法进行详细的讲解
Autoware中topic_state_monitor模块调研
一、topic_state_monitor模块简介 此节点用于监控任意话题是否存在异常,例如超时和低频率。话题的诊断结果将通过ROS Diagnostics发布诊断信息。 输入:任意名称、任意类型的话题 输出:/diagnostics 诊断信息 二、topic_state_monitor模块启动流程 通过解析 topic_state_monitor 核心代码部分并逐级向上追溯,可得到 topic_state_monitor 模块完整的启动流程,如下图所示: 上层的两个 .launch.xml 文件主要配置了两个参数。一个是 tier4_system_component.launch.xml 中配置的 topics.yaml 文件路径。topics.yaml 文件内容是配置所有需要监控的话题信息以及监控阈值信息。配置文件的内容示例如下: 1234567891011121314151617181920212223242526272829303132333435- module: control mode: [online, logging_simulation, plan...
Autoware.Universe适配实车教程
一、适配传感器 首先声明,踩了那么多坑后,明白一个道理,要想少出错,少踩坑,还是要遵循一切都参控官方文档的原则。不要怕官网文档繁杂又全是英语想省事,就一切都遵从csdn找到的别人整理的二手文档,包括我以下写的都只能当作参考,每个人硬件软件环境都不一样,具体步骤肯定有所差异,官网还是考虑最全的文档,英语有障碍可以下一个插件,推荐"沉浸式翻译"这个插件。 官网文档链接为:https://autowarefoundation.github.io/autoware-documentation/main/how-to-guides/ 设置传感器数据通信接口 根据官方提供的流程图,可以看到各个节点之间的数据通信:https://autowarefoundation.github.io/autoware-documentation/galactic/design/autoware-architecture/node-diagram/ 雷达点云设置 Autoware输入的点云为 /sensing/lidar/top/outlier_filtered/pointcloud...
Autoware.universe完整部署步骤(踩坑版)
Autoware.universe 安装步骤 克隆Autoware到本地 123mkdir autoware_universecd autoware_universe/git clone https://github.com/autowarefoundation/autoware.git -b humble 注意ROS的版本 安装NVIDIA 显卡驱动 若输入 sudo nvidia-smi 检查英伟达驱动出现以下报错: 12Failed to initialize NVML: Driver/library version mismatchNVML library version: 550.90 原因是NVIDIA 内核驱动与系统驱动版本不一致,按照网上提出的方法使用sudo rmmod nvidia 命令退出当前内核使用的显卡模块,重新加载升级后版本的显卡驱动作为我们的内核模块发现此方法不可行 最后解决办法为: 卸载驱动 1sudo apt-get purge nvidia* 查找本机内核版本 1cat /proc/driver/nvidia/versi...
多层长走廊三维SLAM建图实战
前面把算法在仿真环境都跑通过后,决定拿雷达在真实世界跑一下。先介绍一下最近又发现的两个巨牛的算法:Point-Lio与Faster-lio。 Point-Lio部署 Point-Lio是一种鲁棒且高带宽的LIO算法,具备在极端剧烈运动条件下稳定估计的能力,能够提供准确的、高频的里程计测量(4-8 kHz),可应对严重振动和高角速度或线速度的情况。但对算力的要求较高、CPU负载较大。 先安装livox_ros_driver ,单独创一个工作空间,或者和Point-Lio一个工作空间也行。这里新建一个工作空间: 12345mkdir -p livox_ros_driver_ws/src #-p 代表递归创建文件夹cd livox_ros_driver_ws/srcgit clone https://github.com/Livox-SDK/livox_ros_driver.gitcd ..catkin_make 然后安装Point-Lio 123456mkdir -p Point_Lio_ws/srccd Point_Lio_ws/srcgit clone https://gi...
CMU-自主探索导航系统(TARE & FAR Planner)部署
去年CMU机器人实验室团队开源了整套的自主探索导航系统,相关文章还荣获IROS2022 最佳学生论文。因此想在实验室的设备上试一下,先跑个官方demo试试。但中文互联网搜索结果的文章质量果然不出我所料,全都是互相抄,下载下来的源码CmakeList文件都是错的😅,最后还是去CMU这个项目的官网才把demo跑起来了。下面记录一下部署过程,我的系统环境是Ubuntu20.04、ROS1 Noetic。 一、安装仿真环境 先安装CMU团队制作的仿真环境,仿真环境包含多楼层停车场、隧道、森林、校园等多种复杂环境,能把这些环境跑好说明这个自主探索导航系统还是很有普适性的。 先安装依赖环境 12sudo apt updatesudo apt install libusb-dev 克隆开源存储库 1git clone https://github.com/HongbiaoZ/autonomous_exploration_development_environment.git 更换分支,并编译。 123cd autonomous_exploration_development_enviro...
MID360激光雷达适配LIO-SAM与FAST-LIO2指南
实验室有一个大疆的MID360半固态激光雷达,需要我来探索一个建图效果较好的三维SLAM算法。但是由于是半固态雷达,雷达输出的点云数据格式与普通的多线激光雷达有一些区别,目前业界的激光雷达算法好多都是基于Velodyne的多线雷达格式做的适配,因此在适配LIO-SAM时会遇到诸多问题。 一、适配LIO-SAM LIO-SAM算法对激光雷达的数据格式有着较为严格的要求,以往的单激光雷达建图的算法没注意到这一点,一般要求的是XYZI(x, y, z, intensity ) 格式即可,但是LIO-SAM要求的是 XYZIRT(x, y, z, intensity, ring, timestamp) 格式,即算法内使用了激光雷达的通道数ring参数和时间戳timestep参数,启动算法时会检查是否具有这两个参数,而MID360雷达的输出格式中没有ring与time这两个参数。进一步的,LIO_SAM要用9轴IMU,而MID360内置的IMU是六轴IMU😭。 因此要想适配MID360需要改源码,感谢万能的github,已经有人做好了适配,链接如下:https://github.co...
Autoware安装 (踩坑指南)
由于工作需要需要学习一下autoware这个框架,但是在安装的时候遇到了数不进的坑,网上的教程基本都跑不起来。自己搞了好半天,终于跑起了个demo,记录一下踩坑的过程。 本次要安装的是Autoware.ai这个版本,他是基于ROS1 Melodic的,需要Ubuntu 18.04的环境,由于我的系统是Ubuntu 20.04,因此需要在Docker中运行ROS1 Melodic环境。 一、安装Docker 首先验证系统上没有安装旧版本或不兼容版本的Docker 1sudo apt-get remove docker docker-engine docker.io 看到以下提示就没问题 继续安装一些依赖: 1sudo apt-get update 1sudo apt-get install apt-transport-https ca-certificates curl software-properties-common 然后设置密钥 1curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key...
编译雷达驱动PCL库缺失问题
咸鱼淘了个一百多块的镭神雷达,看参数性能还挺不错,而且是TOF测距雷达,原价四五百呢。 雷达参数 之后将驱动包拷贝到工作空间的src目录下后进行编译,可以看到代码包的名称与cmake里project的名称都是lslidar_driver,因此在工作空间目录下输入colcon build --packages-select lslidar_driver编译驱动包。 雷达驱动文件包 但是编译的时候报了错,没有找到pcl_conversions的配置文件。 编译报错 我求助了一下万能的Claude,他让我用apt安装libpcl-dev这个包。 万能的Claude 但是我执行命令后发现我已经安装过这个包了,那为什么还是找不到啊。 接下来他又让我进行设置环境变量,甚至源码编译库文件等等操作,都没有解决这个问题。我后来发现缺失的是pcl_conversions 这个库,但是他却一直让我安装的是libpcl-dev。我又问了Claude这两个有什么区别,看起来libpcl-dev包含了pcl_conversions 。 于是我决定...









