【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

相关文章

jdk1.8的Jenkins安装配置实践

《jdk1.8的Jenkins安装配置实践》Jenkins是一款流行的开源持续集成工具,支持自动构建、测试和部署,通过Jenkins,开发团队可以实现代码提交后自动进行构建、测试,并将构建结果分发到测... 目录Jenkins介绍Jenkins环境搭建Jenkins安装配置Jenkins插件安装Git安装配

Nginx之https证书配置实现

《Nginx之https证书配置实现》本文主要介绍了Nginx之https证书配置的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起... 目录背景介绍为什么不能部署在 IIS 或 NAT 设备上?具体实现证书获取nginx配置扩展结果验证

springboot3.x使用@NacosValue无法获取配置信息的解决过程

《springboot3.x使用@NacosValue无法获取配置信息的解决过程》在SpringBoot3.x中升级Nacos依赖后,使用@NacosValue无法动态获取配置,通过引入SpringC... 目录一、python问题描述二、解决方案总结一、问题描述springboot从2android.x

nginx跨域访问配置的几种方法实现

《nginx跨域访问配置的几种方法实现》本文详细介绍了Nginx跨域配置方法,包括基本配置、只允许指定域名、携带Cookie的跨域、动态设置允许的Origin、支持不同路径的跨域控制、静态资源跨域以及... 目录一、基本跨域配置二、只允许指定域名跨域三、完整示例四、配置后重载 nginx五、注意事项六、支持

Spring配置扩展之JavaConfig的使用小结

《Spring配置扩展之JavaConfig的使用小结》JavaConfig是Spring框架中基于纯Java代码的配置方式,用于替代传统的XML配置,通过注解(如@Bean)定义Spring容器的组... 目录JavaConfig 的概念什么是JavaConfig?为什么使用 JavaConfig?Jav

Spring Boot Interceptor的原理、配置、顺序控制及与Filter的关键区别对比分析

《SpringBootInterceptor的原理、配置、顺序控制及与Filter的关键区别对比分析》本文主要介绍了SpringBoot中的拦截器(Interceptor)及其与过滤器(Filt... 目录前言一、核心功能二、拦截器的实现2.1 定义自定义拦截器2.2 注册拦截器三、多拦截器的执行顺序四、过

springboot的controller中如何获取applicatim.yml的配置值

《springboot的controller中如何获取applicatim.yml的配置值》本文介绍了在SpringBoot的Controller中获取application.yml配置值的四种方式,... 目录1. 使用@Value注解(最常用)application.yml 配置Controller 中

springboot中配置logback-spring.xml的方法

《springboot中配置logback-spring.xml的方法》文章介绍了如何在SpringBoot项目中配置logback-spring.xml文件来进行日志管理,包括如何定义日志输出方式、... 目录一、在src/main/resources目录下,也就是在classpath路径下创建logba

C++多线程开发环境配置方法

《C++多线程开发环境配置方法》文章详细介绍了如何在Windows上安装MinGW-w64和VSCode,并配置环境变量和编译任务,使用VSCode创建一个C++多线程测试项目,并通过配置tasks.... 目录下载安装 MinGW-w64下载安装VS code创建测试项目配置编译任务创建 tasks.js

Nginx概念、架构、配置与虚拟主机实战操作指南

《Nginx概念、架构、配置与虚拟主机实战操作指南》Nginx是一个高性能的HTTP服务器、反向代理服务器、负载均衡器和IMAP/POP3/SMTP代理服务器,它支持高并发连接,资源占用低,功能全面且... 目录Nginx 深度解析:概念、架构、配置与虚拟主机实战一、Nginx 的概念二、Nginx 的特点