A* ALGORITHM BASICS FOR PATH FINDING A* , widely used known form of best-first search & path planning algorithm nowadays in mobile robots,games. this is the function for A*, f(n) = g(n) + h(n) g ( n ) is the cost of the path from the start node to n , and h ( n ) is a heuristic function that estimates the cost of the cheapest path from n to the goal This will find cheapest f(n) value in neighbor nodes to archive goal node. check below image A to B path finding with g(n),h(n),f(n) value In the final level check below image Now we will check the Algorithm // A* Search Algorithm 1. Initialize the open list 2. Initialize the closed list put the starting node on the open list (you can leave its f at zero) 3. while the open list is not empty a) find the node with the least f on the open list, call it "q" b) pop q off the open list c) generate q's 8 successors
when you use while loops in your codeing with delay function (in nodemcu),
you must face this error Soft WDT reset.
lets see a example
//////example/////////
int motor = D1;//5; // LED pin
int encoder = A0;//4; // push button is connected
void setup() {
Serial.begin(9600);
pinMode(motor, OUTPUT); // declare LED as output
pinMode(encoder, INPUT);
}
void loop() {
Serial.println(analogRead(encoder));
while(analogRead(encoder)>=400){
digitalWrite(motor, HIGH);
Serial.println(analogRead(encoder));
}
digitalWrite(motor, LOW);
}
when you run like this code you will face below prblms
Soft WDT reset
ctx: cont
sp: 3ffef120 end: 3ffef390 offset: 01b0
>>>stack>>>
3ffef2d0: feefeffe feefeffe feefeffe feefeffe
3ffef2e0: 40219851 00000004 3ffe835c 33383980
3ffef2f0: 40219af3 00000004 3ffe835c 0000018f
3ffef300: 3ffee338 00000004 3ffe835c 00000000
3ffef310: 40212d38 00000000 3ffee338 40201ee1
3ffef320: 3ffe8468 000003d7 3ffee338 40201fcb
3ffef330: 00000000 000003d7 40203358 3ffe8360
3ffef340: 40201126 3ffe835c 3ffee338 40201ff4
3ffef350: feefeffe 3ffe835c 3ffe8360 40201cb5
3ffef360: 00000000 00000000 00000001 3ffee35c
3ffef370: 3fffdad0 00000000 3ffee354 40202184
3ffef380: feefeffe feefeffe 3ffee370 40100114
<<<stack<<<
? )�
if you got like this error you can easily fix it
add
dealy(0);
inside the loop .
example
int motor = D1;//5; // LED pin
int encoder = A0;//4; // push button is connected
void setup() {
Serial.begin(9600);
pinMode(motor, OUTPUT); // declare LED as output
pinMode(encoder, INPUT);
}
void loop() {
Serial.println(analogRead(encoder));
while(analogRead(encoder)>=400){
digitalWrite(motor, HIGH);
Serial.println(analogRead(encoder));
delay(0); //added here
}
digitalWrite(motor, LOW);
delay(2);
}
Thank you guys if you want to ask anything leave with a comment.
Yeah! Thanks man!
ReplyDeletedoesn't work
ReplyDelete