当前位置:网站首页>[path planning] RRT adds dynamic model for trajectory planning
[path planning] RRT adds dynamic model for trajectory planning
2022-07-04 23:48:00 【Chinchilla slightly】
After adding a moving object in the previous article , You can consider adding a dynamic model to this moving object , Then the trajectory planning is carried out according to the dynamic model .
Ideas
My idea of this dynamic model is to refer to the vector method used in open source flight control to specify the speed direction , Use S Curve to plan the speed trajectory , The final effect looks ok .
S curve
Here you can catch up on the speed in open source flight control S Knowledge of curve Planning , The general idea is : Guaranteed acceleration , Continuous speed , Change the speed with a fixed acceleration . The overall effect is : First, add the acceleration with constant acceleration a Add to the maximum acceleration a_max, Time is T1, Then run at constant acceleration T2 Time , Then, the acceleration is increased from a_max Reduced to 0. here PIX4 An annotation diagram is also given in the source code of :
Someone on the Internet drew a clearer picture , Let me borrow it :
according to PIX4 Thought , The whole speed tracking process is divided into three time stages T1,T2,T3.T1 In the stage, the acceleration is increased at the set acceleration speed ,T2 The phase is constant acceleration ,T3 In the stage, the acceleration decreases with a negative constant acceleration until 0. We can judge which stage we are in every cycle , You can control . The final goal of this algorithm is that the final acceleration is 0 When , Just the speed reaches the target .
The time and end speed of each stage are high school knowledge , It's easier to deduce , And there are also source code and online analysis for reference , I feel no need to waste any more space , You can deduce it by yourself
The general procedure steps are :
1) Calculate when the acceleration is 0 Track speed at
2) The acceleration is 0 The difference between the end speed and the target speed determines the acceleration direction
3) Calculation T1,T2,T3 Each length of time
4) Determine the current time period according to the time interval of the control cycle , And then generate acceleration and velocity
according to S The way of the curve , I wrote a function , Incoming maximum acceleration , Maximum acceleration , Current acceleration , Current speed , Target speed , Control cycle T, The acceleration and speed control quantity of the next cycle can be generated :
Test it , The approximate speed of its generation S The effect of the curve is like this :
In fact, the effect is not bad . Then you can use this speed S Curve function to pull the model on the trajectory .
Traction track
In the previous article , We have used RRT Search for critical path points , Then use the fifth order Bessel to smooth the curve , Each track point of the smooth curve can be obtained , So we can set up a Reach the area , For example 10 Is a circle of radius , The radius of reaching the target trajectory point 10 The track point is reached within , Then switch to the next track point for traction . Traction can be used vector The way , This is also a more convenient way for me :
We know the target trajectory point , Therefore, we can follow the target trajectory points Calculate the remaining distance , Then we can use the calculated remaining distance , Take the maximum speed as the goal before reaching a certain remaining distance , Near the end , Just make some plans to slow down , This is a decision-making problem , Not part of this chapter :
Of course , This is a simple speed decision , It does not affect the subsequent results .
Then the target acceleration and velocity are generated , We can decompose it into xy The partial acceleration and the partial velocity in the axial direction xy The acceleration of the axis , Speed , Position control .
Final effect , I recorded a simple video :
RRT+ Bessel + Motion model trajectory
In this way, the overall effect is much more fun .
边栏推荐
- Illustrated network: what is gateway load balancing protocol GLBP?
- Financial markets, asset management and investment funds
- 快解析——好用的内网安全软件
- Jar batch management gadget
- Basic points of the game setup of the points mall
- 【js】-【排序-相关】-笔记
- Application of fire fighting system based on 3D GIS platform
- MariaDB's Galera cluster application scenario -- multi master and multi active databases
- Using fast parsing intranet penetration to realize zero cost self built website
- Robot reinforcement learning synergies between pushing and grassing with self supervised DRL (2018)
猜你喜欢
端口映射和端口转发区别是什么
[IELTS reading] Wang Xiwei reads P4 (matching2 paragraph information matching question [difficult])
The caching feature of docker image and dockerfile
Font design symbol combination multifunctional wechat applet source code
A mining of edu certificate station
ICML 2022 | 3dlinker: e (3) equal variation self encoder for molecular link design
"Xiaodeng" domain password policy enhancer in operation and maintenance
壁仞科技研究院前沿技术文章精选
多回路仪表在基站“转改直”方面的应用
In June, the list of winners of "Moli original author program" was announced! Invite you to talk about the domestic database
随机推荐
同事的接口文档我每次看着就头大,毛病多多。。。
[Taichi] change pbf2d (position based fluid simulation) of Taiji to pbf3d with minimal modification
The difference between cout/cerr/clog
C语言中sizeof操作符的坑
【js】-【动态规划】-笔记
What is the difference between port mapping and port forwarding
Significance of acrel EMS integrated energy efficiency platform in campus construction
Combien de temps faut - il pour obtenir un certificat PMP?
高配笔记本使用CAD搬砖时卡死解决记录
如何在外地外网电脑远程公司项目?
Instructions for go defer
Cross domain request
Application of multi loop instrument in base station "switching to direct"
用快解析内网穿透实现零成本自建网站
ScriptableObject
Chinese verification of JS regular expressions (turn)
JS 将伪数组转换成数组
跨域请求
The pit of sizeof operator in C language
基于三维gis平台的消防系统运用