无人船 | 基于ROS的轻量级多无人艇自主导航仿真框架

1 前言

无人水面艇USV是海上自主无人系统的关键组成部分,在民用、军用领域应用广泛,例如海上救援、水质测量、扫雷反潜等,因此对USV导航算法的研究具有重要意义。为了便于进行USV相关算法的验证与部署,本文介绍的这套基于ROS的多无人艇的自主导航仿真平台,轻量化地实现了建图、规划、控制等多种功能,同时自研框架保证了功能的高度可拓展和可定制

在这里插入图片描述

2 多无人艇自主导航仿真框架

如下图所示为本文展示的多无人艇自主导航仿真框架,接下来分小节介绍

在这里插入图片描述

2.1 配置模块(config)

首先介绍配置模块,主要分为

  • 参数配置
  • 插件配置
  • 环境配置
  • 可视化配置
  • 坐标系管理

五个主要功能

参数配置中设计了user_config.yaml文件,通过底层处理映射到roslaunch文件,便于配置无人艇的型号、采用的规划器、控制器等信息。插件配置管理着船桨、海浪等第三方模拟器,以及一些Rviz可视化工具。

请添加图片描述
环境配置可以在海洋场景中自定义障碍物,通过简单的大小位置配置即可,底层会自动在指定位置生成植入浮力插件的障碍物,用于测试USV的避障性能

在这里插入图片描述

在多USV环境中,每艘船需要可视化的数据可能很多,手动添加难免繁琐,为了便于测试,这套框架会自动根据用户设置的船体数量在Rviz中配置相应的可视化选项

在这里插入图片描述
除此之外,需要通过统一的坐标系管理,将分布式的船体坐标系进行连接

在这里插入图片描述

2.2 感知模块(perception)

与室内结构化导航系统不同,室外导航无法获取先验的大范围地图,因此点云处理并将其用于实时建图是首要的任务。在实时建图模块中,平台采用视线算法添加障碍栅格,并及时清除残影。平台同样支持代价地图及其插件的使用,便于在配置空间进行规划

在这里插入图片描述

2.3 任务模块(task)

move_base框架相比,我增加了一个任务模块服务于巡逻巡检等特殊场景。由于大多数任务调度可以建模为旅行商或多旅行商问题,因此我提供了一个tsp求解器,集成了贪心算法、遗传算法、粒子群算法等常用选项。在仿真中,我也设计了一个简单的状态机用于行为决策。

在这里插入图片描述

2.4 路径规划模块(path planner)

在明确要执行的任务后,无人艇需要规划一条从当前位置到任务点的最短路径,当然,这个任务点可以不从任务模块发出,而直接像move_base中由用户手动指定目标。路径规划集成了常用的图搜索、采样搜索等算法,增加了可视图、四叉树等拓扑搜索,以及更精细化的路径采样、插值等算法。

在这里插入图片描述

2.5 轨迹规划模块(trajectory planner)

在路径的基础上,需要基于无人艇运动学和动力学,生成可用于跟踪控制的轨迹。轨迹规划模块采用曲线生成、动力学搜索、LOS制导、轨迹优化等算法,为无人艇提供局部导航信息。由于无人艇的运动通常位于一个大范围环境,感知的局限性导致我们无法得知场景全貌,例如激光雷达扫描到未在建图上的障碍物。因此轨迹除了引导无人艇运动,还用于触发路径重规划。

在这里插入图片描述

2.6 控制模块(controller)

受到海风、海浪的影响,无人艇的跟踪控制难度远高于室内移动机器人。平台目前集成了基于运动学的PID控制,将进一步补充LQR、MPC等算法

3 视频介绍

基于ROS的轻量级多无人艇自主导航仿真平台

4 使用说明

本项目在ROS noetic上测试

  1. 安装ROS,推荐安装桌面完整版

  2. 安装依赖

    • conan
      pip install conan==1.59.0
      conan remote add conancenter https://center.conan.io
      
    • python
      sudo apt install python-is-python3
      
    • ROS依赖
      sudo apt install ros-noetic-map-server
      sudo apt install ros-noetic-costmap-2d
      sudo apt install ros-noetic-velodyne*
      sudo apt install ros-noetic-hector-gazebo-plugins
      sudo apt install ros-noetic-controller-manager
      sudo apt install ros-noetic-pointcloud-to-laserscan
      
  3. 编译代码

    cd scripts/
    ./build.sh
    
  4. 运行代码

    cd scripts/
    ./main.sh
    
  5. 使用wamv goal指定目标位置,启动导航

在这里插入图片描述

完整工程代码请联系下方博主名片获取


🔥 更多精彩专栏


👇源码获取 · 技术交流 · 抱团学习 · 咨询分享 请联系👇
智能网联汽车的安全员高级考试涉及多个方面的专业知识,包括但不限于自动驾驶技术原理、车辆传感器融合、网络安全防护以及法律法规等内容。以下是针对该主题的一些核心知识解析: ### 关于智能网联车安全员高级考试的核心内容 #### 1. 自动驾驶分级标准 国际自动机工程师学会(SAE International)定义了六个级别的自动驾驶等级,从L0到L5[^1]。其中,L3及以上级别需要安全员具备更高的应急处理能力。 #### 2. 车辆感知系统的组成与功能 智能网联车通常配备多种传感器,如激光雷达、毫米波雷达、摄像头和超声波传感器等。这些设备协同工作以实现环境感知、障碍物检测等功能[^2]。 #### 3. 数据通信与网络安全 智能网联车依赖V2X(Vehicle-to-Everything)技术进行数据交换,在此过程中需防范潜在的网络攻击风险,例如中间人攻击或恶意软件入侵[^3]。 #### 4. 法律法规要求 不同国家和地区对于无人驾驶测试及运营有着严格的规定,考生应熟悉当地交通法典中有关自动化驾驶部分的具体条款[^4]。 ```python # 示例代码:模拟简单决策逻辑 def decide_action(sensor_data): if sensor_data['obstacle'] and not sensor_data['emergency']: return 'slow_down' elif sensor_data['pedestrian_crossing']: return 'stop_and_yield' else: return 'continue_driving' example_input = {'obstacle': True, 'emergency': False, 'pedestrian_crossing': False} action = decide_action(example_input) print(f"Action to take: {action}") ``` 需要注意的是,“同学”作为特定平台上的学习资源名称,并不提供官方认证的标准答案集;建议通过正规渠道获取教材并参加培训课程来准备此类资格认证考试
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Winter`

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值