【CMU-自主导航与规划】Autonomous Exploration Development Environment 配置与运行

本文主要是介绍【CMU-自主导航与规划】Autonomous Exploration Development Environment 配置与运行,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

官方文档:https://www.cmu-exploration.com/

一、安装与配置:

适用版本: Ubuntu 18.04 ROS Melodic and Ubuntu 20.04 with ROS Noetic.
如果使用 Ubuntu 22.04 with ROS2 Humble, 则需要配置ROS2【https://drive.google.com/file/d/1a01RSrPFan9SV2g2BFP_8GGtnamAdGIc/view?usp=sharing】

git clone https://github.com/HongbiaoZ/autonomous_exploration_development_environment.git
cd autonomous_exploration_development_environment
git checkout distribution
catkin_make

如果报错:

CMake Error at /usr/share/cmake-3.16/Modules/FindPkgConfig.cmake:707 (message):None of the required 'libusb' found

安装:

sudo apt-get install libusb-dev
  • 通过执行脚本下载仿真环境(500M左右):
./src/vehicle_simulator/mesh/download_environments.sh

如果不能顺利下载,那么通过https://drive.google.com/file/d/1GMT8tptb3nAb87F8eFfmIgjma6Bu0reV/view进行下载,并放置在:src/vehicle_simulator/meshes

二、启动:

source devel/setup.sh
roslaunch vehicle_simulator system_garage.launch
  • 发布waypoint进行执行:
roslaunch waypoint_example waypoint_example_garage.launch

使用不同虚拟环境: ‘campus’, ‘indoor’, ‘garage’, ‘tunnel’, and ‘forest’.

 roslaunch vehicle_simulator system_[environment].launch    ## []更换为上面的名字

在这里插入图片描述

例如forest的效果:
在这里插入图片描述

indoor效果:
在这里插入图片描述

三、自动导航模型

是否发送导航的边界以及速度是可选的。默认速度为2m/s。发送信息示例位于包waypoint_example
其中:
在这里插入图片描述

  • 避障:位于包local_planner
    运动基元(动力学模型?)预先加载在模型中;
    坐标框表示车辆,黄点表示无碰撞路径;
    路线规划器会沿路线发送车辆附近的路点,使用来自terrain_analysis包的地形图来确定地形的可穿越性

  • 地形可穿越性分析:
    terrain_analysis包分析地形的局部平滑度,并将成本关联到地形图上的每个点
    系统发布地形图消息,其中每个消息包含一组’pcl::PointXYZI’类型的点。x, y, z的一个点表示的坐标和强度字段存储成本。地形地图以车辆为中心,覆盖10m × 10m的区域。
    terrain_analysis_ext包将地形图扩展到40m x 40m的区域。扩展的地形图将激光雷达点保持在10秒的滑动窗口内,距离车辆4米以内的非衰减区域。
    在自主导航系统中,地形图由避碰模块使用,扩展地形图由高级规划模块使用。要在RVIZ中查看地形图或扩展地形图,单击“面板->显示”并选中“terrainMap”或“terrainMapExt”。绿色的点是可穿越的,红色的点是不可穿越的。

在这里插入图片描述

  • 路点跟踪:
    在接收到路点后,系统将车辆引导到该路点。有关调整路径跟随控制的信息,即速度,偏航率,加速度,前视距离,增益和改变车辆大小,参考https://github.com/jizhang-cmu/ground_based_autonomy_basic

四、显示

通过点击“面板->显示”并勾选“overallMap”、“探索区域”和“轨迹”,可以在RVIZ中查看环境、探索区域和车辆轨迹的整体地图。
此外,系统实时绘制三个指标,分别可视化探索体积、行驶距离和算法运行时间。要绘制运行时,用户需要将这些数字作为以下ROS主题的消息发送。
在这里插入图片描述

在运行结束时,记录的指标与车辆轨迹一起保存到src/vehicle_simulator/log文件中。
请注意,由于Gazebo的繁重CPU负载,实时因子< 1 -模拟时钟比真实时钟慢。这里,我们使用模拟时钟来记录运行的时间持续时间,因为它受不同计算机上时钟速度的影响较小

效果:
在这里插入图片描述
视频如下:

autonomous_exploration

这篇关于【CMU-自主导航与规划】Autonomous Exploration Development Environment 配置与运行的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/662150

相关文章

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满

SpringBoot线程池配置使用示例详解

《SpringBoot线程池配置使用示例详解》SpringBoot集成@Async注解,支持线程池参数配置(核心数、队列容量、拒绝策略等)及生命周期管理,结合监控与任务装饰器,提升异步处理效率与系统... 目录一、核心特性二、添加依赖三、参数详解四、配置线程池五、应用实践代码说明拒绝策略(Rejected

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手