# Potential Method
このチュートリアルではPotential Methodについて学びます.
## About Potential Method
### * ポテンシャル法
障害物と目標位置の座標にポテンシャル関数と呼ばれる関数を定義し,その関数の勾配(座標成分ごとの偏微分)から進むべき方向を導出する手法である.
### * ポテンシャル関数
障害物に対しては正無限大,目標位置に対しては負無限大に発散するような滑らかな関数を定義する.
障害物に定義した関数の勾配は,障害物から離れる方向であり,目標位置に定義した関数の勾配は,逆に接近する方向となる.
この関数群の重ね合わせがポテンシャル場となり,ポテンシャル場の勾配(微分)は,障害物から離れ,かつ目標位置へ接近する方向となる.
障害物を回避しながら目標位置へ向かうには,この勾配をその時点でのロボットの目標方向とすれば良い.
<div align="center">
![potential_function](png/potential_function.png)
(1)式:障害物に対してのポテンシャル関数,(2)式:目標位置に対してポテンシャル関数,(3)式:ポテンシャル場,(4)式:ポテンシャル場の勾配
</div>
### * ポテンシャル法の特徴
1. その時点での情報に従って目標方向を導出するため,地形マップ等の事前情報が不要である.
2. 障害物を発見した時点でポテンシャル場が変化するため,リアルタイムに目標経路を変更できる.
3. x,y,…等の座標成分別に勾配を導出するため,三次元空間への適用が容易に行える.
<div align="center">
![potential_method](png/potential_method.png)
</div>
## Program description
### * PathGenerator
生成するためのセンサーデータなどを取得やその情報から経路を生成するプログラム[(コード)](src/path_generator.cpp)
#### 2つのクラス
* MySubscribers
センサー情報やオドメトリをサブスクライブするクラス.
* PathGenerator
MySubscribersクラスを継承したクラスでセンサー情報やオドメトリをPotentialMethodクラスの関数に与えることで経路生成を行う.
### * PotentialMethod
ポテンシャル場の生成やポテンシャル法による経路を生成するプログラム[(宣言](include/potential_method/potential_method.h),[定義)](src/potential_method.cpp),
### ポテンシャル関数
ポテンシャルの最大値と最小値をそれぞれ1,-1とするため以下の式にした.
<div align="center">
![pf1](png/p1.png)
![pf2](png/p2.png)
</div>
## How to Use
```bash
$ roslaunch potential_method path_generator.launch
```
rvizの2D Nav Goalで目標位置を決定すると,経路生成を開始します.
# Reference
[ポテンシャル法によるロボット製品の障害物回避技術の開発](https://www.mhi.co.jp/technology/review/pdf/511/511040.pdf)
没有合适的资源?快使用搜索试试~ 我知道了~
【运动规划算法项目实战】Artificial Potential Field算法(附ROS C++代码)
共17个文件
png:4个
cpp:4个
json:2个
需积分: 5 11 下载量 3 浏览量
2023-09-26
15:49:43
上传
评论 1
收藏 322KB ZIP 举报
温馨提示
代码对应博客专栏《运动规划算法项目实战》系列文章。人工势场算法(Artificial Potential Field Algorithm)是一种常用的路径规划方法,它借鉴了物理学中的势能概念,通过模拟力的作用来引导机器人的移动。
资源推荐
资源详情
资源评论
收起资源包目录
potential_method.zip (17个子文件)
potential_method
.DS_Store 6KB
include
potential_method
potential_method.h 3KB
CMakeLists.txt 8KB
.vscode
c_cpp_properties.json 2KB
settings.json 224B
src
potential_method.cpp 7KB
virtual_environment
robot_pose_broadcaster.cpp 2KB
virtual_environment.cpp 8KB
path_generator.cpp 7KB
png
potential_function.png 27KB
potential_method.png 266KB
p1.png 4KB
p2.png 4KB
package.xml 3KB
launch
path_generator.launch 928B
README.md 3KB
config
rviz
potential.rviz 6KB
共 17 条
- 1
资源评论
Travis.X
- 粉丝: 1422
- 资源: 11
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 论文(最终)_20240430235101.pdf
- 基于python编写的Keras深度学习框架开发,利用卷积神经网络CNN,快速识别图片并进行分类
- 最全空间计量实证方法(空间杜宾模型和检验以及结果解释文档).txt
- 5uonly.apk
- 蓝桥杯Python组的历年真题
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
- 林周瑜-论文.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功