5 Star 52 Fork 19

Hank / USV_obstacle_avoidance

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

USV_obstacle_avoidance

无人船避障模块,使用激光雷达或毫米波作为避障监测传感器挂载在一块STM32F103协处理器上使用。


一. 基本说明

文件目录

  • OA-without-OS目录下存放无操作系统版本的避障工程
  • OA-with-OS-xxxxx存放基于freertos操作系统的避障工程
    • OA-with-OS -integrated-ver中存放下面方案一与方案三综合后的项目,具体使用方案一还是方案三可以条件编译
    • OA-with-OS-lidar-ver中存放方案一的项目工程
    • OA-with-OS -mmwave-ver中存放方案三的工程
  • 各个工程相互独立,分别烧录均可运行

避障方案

注意这里的传感器只是本人在开发过程中使用到的传感器型号,仅供参考;使用其他传感器只需改一下串口协议即可!

  • 方案一:激光雷达1个+舵机1个:舵机带动激光雷达转动,扫描障碍物(已实现√){成本:300元}
  • 方案二:仅使用一个单发单收天线毫米波雷达(无法测角,仅能测量船头方向的较大较远的障碍物)(已实现√){成本:500~1000元}
    • 不建议此方案
  • 方案三:仅使用一个单发多收天线毫米波雷达(可以测角,待测试){成本:1200以上}
  • 方案四:正前方安装一个毫米波雷达+两侧各一个激光雷达(可提高避障识别范围,但成本高){1200+200 * 2}
  • 方案五:船头5个角度各安装一个激光雷达,共5个{成本:1000元}
  • 方案六:正前方安装一个毫米波雷达与一个激光雷达,两侧各一个激光雷达{1200+2 * 200}
    • 24Ghz毫米波适合测量远距离障碍物,对近距离障碍较无力。
    • 77Ghz\79Ghz对近距离障碍物较有效。
  • 方案七:步进电机+毫米波或激光雷达,步进电机作为转动结构;
    • 步进电机在工业机械臂、3D打印机等转动结构上应用的很多,比舵机稳定、精确。这里只是一个构思方案。

已实现方案的硬件配置

  • 方案一:
    • 激光雷达1个:北醒® TFmini Plus,单线防水串口雷达。价格230左右一个。
    • 舵机1个(配合激光雷达进行扫描):普通舵机即可,控制协议为pwm:周期20ms,占空比0.5ms~2.5ms
  • 方案二[不建议]:
    • 单发单收天线毫米波雷达1个
    • 实验传感器:英泰雷® S2毫米波雷达,24Ghz无测角,范围1~100m。价格800。买了一个做测试,达不到宣称的效果。
  • 方案三:
    • 单发多收天线毫米波雷达1个
    • 实验传感器:纳雷科技SP70C毫米波雷达,24Ghz可测角大约100度,范围0.1~40m。价格1200.
  • 控制板:STM32F103RCTx

软件开发环境

  • STM32使用HAL库编写(兼容性强)
  • 硬件管脚配置使用STM32Cube MX(如果会使用HAL库的话用不用这个无所谓)
  • 注:避障由于有比导航更高的优先级,可以考虑上操作系统,例如freertos。

二. 避障算法说明

1.基本说明

  1. 目前此避障模块仅初步完成,还未与主处理器或导航算法进行融合。可以将其视为一个避障小车。
  2. 由于船的作业条件比较复杂,需要考虑水汽等影响。经过测试,虽然超声波模块理论可行,但实际上超声波的数据非常不稳定,舍弃。
  3. 激光雷达效果和超声波模块基本类似,但是激光雷达数据稳定,在天气晴朗的情况下效果很好;缺点是容易受水汽影响。
  4. 毫米波雷达比较理想,单天线毫米波雷达可以探测多个障碍物的距离、速度数据;多天线的毫米波可以在此之上输出障碍物的角度数据。但是一般使用24Ghz毫米波雷达的电磁波波长为约13cm,也就是说基本直径在13cm以内的障碍物它是监测不到的,从而水汽、下雨天对其影响不大;其次毫米波雷达一般对大型、比较远距离的障碍物反应灵敏,比如道路上的汽车等,对近距离、小型障碍物反应不够灵敏。要想避免这些问题,需要使用高频,波长更短的毫米波雷达。一般使用77Ghz的。但其成本非常高,一台77Ghz毫米波雷达售价为3000/4000左右;同时如果想要输出障碍物的角度信息则需要多天线毫米波雷达,其售价同样高昂(3000/5000RMB)
  5. 目前基于成本与性能考虑,采取的是激光+舵机方案,同时也在开发毫米波方案,采取条件编译。

2.避障思路(激光雷达+舵机方案)

  1. 激光雷达架设在舵机上,让舵机围绕船头正前方左右对称地旋转扫描,共20个旋转位置(对应舵机控制的高电平时间0.5ms~2.5ms)
  2. 每个旋转位置等效的看作一个激光雷达输出结果,也就是说将舵机+激光雷达等效的看作是20个激光雷达。
  3. 对20个输出结果进行加权平均,最后合成为5个数据,分别对应左、左前、前、右前、右,5个方向。
  4. 总之就是用旋转的一个激光雷达模拟成5个不同角度的激光雷达。相当于搭了个框架;
  5. 以后就算激光+舵机不好用,也可以考虑用5个或者3个固定位置的激光可以达到基本一样的避障效果。
  6. 计划:测试好了毫米波之后试试能不能用毫米波一下子模拟[左前、前、右前]三个方向的激光雷达。

3.避障函数输出

  1. 经过封装,避障检测函数可以输出一个5元数组,分别对应上面提到的5个方向的距离数据
  2. 避障反应函数可根据上面的数组做出相应的反应,例如:当中间三个方向没有检测到障碍物时可以通行。
  3. 避障反应函数可以直接调用电机控制函数,在检测到障碍物时即时作出反应。

4.STM32资源对应表

板载资源、引脚 对应传感器、外围设备接口
TIM3 CH1 舵机pwm信号线(方案一)
TIM3 CH2 左电机ENA
TIM3 CH3 右电机ENA
USART1 与电脑连接,调试显示串口
USART2 激光雷达串口(方案一)
USART3 毫米波雷达串口(方案三)
PC6/7/8/9 电机驱动板IO1/2/3/4

5.方案三的避障参数(变量名称可能会改变)

  1. 障碍物识别距离x:距离在x以内的障碍物会被避障算法视为有效,以外的物体将无视
  2. 紧急倒车距离y:若有距离小于y的物体存在,则紧急倒车
  3. 识别扇形限度z:设定物体识别的有效扇形弧度。算法将会把z划分为五个区域进行避障规划。如果雷达经常会出现障碍物信息跳变的情况,建议把此值设大,例如5*60
  4. 加权帧数frames,障碍物存在判定门线threshold:frames用来设定避障算法综合的帧数,threshold必须小于等于frames,用来设定当frames帧中如果有threshold个帧之内都检测到了障碍物,则确认障碍物存在。这两个参数用来过滤掉跳变数据以及杂波。例如:frames=10,threshold=5,则避障算法会等待接收一共10个帧,其中如果有大于等于5帧中都检测到了障碍物存在,则确认该障碍物存在。

三. 其他说明

部分开发下位机过程中的开发日志以及手册均已存放在下面地址

Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

简介

无人船避障模块,使用激光雷达或毫米波作为避障监测传感器挂载在一块STM32F103协处理器上使用 展开 收起
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C
1
https://gitee.com/Matreshka15/USV_obstacle_avoidance.git
git@gitee.com:Matreshka15/USV_obstacle_avoidance.git
Matreshka15
USV_obstacle_avoidance
USV_obstacle_avoidance
master

搜索帮助