Revision 81b48c66 devices/DiWheelDrive/amiro_map.cpp
| devices/DiWheelDrive/amiro_map.cpp | ||
|---|---|---|
| 182 | 182 |
}else if (!(left || right)) {
|
| 183 | 183 |
// TODO: do we need both? |
| 184 | 184 |
leftDetected = rightDetected = true; |
| 185 |
} |
|
| 185 | 186 |
} |
| 186 | 187 |
|
| 188 |
void AmiroMap::calTravelState(types::position *p1) {
|
|
| 189 |
// Calculate the moved distance from last detected fixpoint |
|
| 190 |
state.dist = calculateDist(p1, &nodeList[state.current].p.arr[state.strategy - 1]); |
|
| 187 | 191 |
|
| 188 |
}
|
|
| 189 |
|
|
| 190 |
|
|
| 191 |
|
|
| 192 |
void AmiroMap::calTravelState() {
|
|
| 193 |
|
|
| 192 |
// Calculate elength if it is 0
|
|
| 193 |
// and if the point of the next node was visited before |
|
| 194 |
if ((state.eLength == 0) && ((state.strategy & nodeList[state.next].visited) == 1)) {
|
|
| 195 |
state.eLength = |
|
| 196 |
calculateDist(p1, &nodeList[state.current].p.arr[state.strategy - 1]);
|
|
| 197 |
} |
|
| 194 | 198 |
} |
| 195 | 199 |
|
| 196 | 200 |
void AmiroMap::checkMap() {
|
| 197 |
|
|
| 201 |
// The check will basically only consist in checking if all nodes |
|
| 202 |
// are connected to following nodes |
|
| 203 |
|
|
| 204 |
for(int i=0; i < nodeCount; i++){
|
|
| 205 |
for(int j=0; j < nodeCount; j++) |
|
| 206 |
if(nodeList[i].edge.arr[j] == 255){
|
|
| 207 |
state.valid = false; |
|
| 208 |
return; |
|
| 209 |
} |
|
| 210 |
} |
|
| 211 |
state.valid = true; |
|
| 198 | 212 |
} |
| 199 | 213 |
|
| 200 | 214 |
|
Also available in: Unified diff