## Integrating path planning module

After spending 3 days wandering (aimlessly?) trying to make my code implementing boost library works, we decide to simplify it and minimize the using of the library 😦

Now the code is working but I hate it because it’s so not fancy, not implementing OOP and far from design pattern! But the must important thing is that it works, giving us the map representation in graph. Next is represent the visited node and heuristic values in graph. And at the same time I plan to revise the code. Either digging more deeper into the boost library, or developing my own library! A simple but sufficient library of my own! 😉 (as if there’s still plenty of time left, hi hi hi)

Advertisements

## Generating graph for grid map

Vertex list and edge list have been generated and these are graph representations for correlated maps.

n = 4

n = 10

n = 20

Next to do: generating more attributes for the graph (different colors, boldness, numbers, for indicating occupancy status)

• #### Budi Rahardjo 6:59 pm on July 31, 2008 Permalink | Reply

wow. beautiful graphs!

next would be (1) different visual representation for node that is occupied; (2) indicator representing the occupancy value; (3) different representation for edges that are not available for traversing; (4) current robot’s location; (5) sequence of graphs as the robot travels; (6) …

that’s too much already …

• #### soni 7:03 pm on July 31, 2008 Permalink | Reply

how can you generate the graph?
i mean, the way you did that.
it is automatic, isn’t it?
do we just put the number of vertex, and the graph generated automatically?

• #### chikaradirghsa 7:10 pm on July 31, 2008 Permalink | Reply

@BR: keep us in track with the to do list! show us directions! please!!! 😀

@soni: yes, by changing the n value (suppose the grid map is a 4×4 map then n = 4) then the corresponding graph will be generated automatically.

wow!

w o w !

WOW!!!

• #### waskita 5:37 pm on August 1, 2008 Permalink | Reply

I miss something here. What’s the purpose of the graphs ?

• #### chikaradirghsa 8:30 pm on August 1, 2008 Permalink | Reply

@waskita: for representing grid maps and path

• #### waskita 8:31 pm on October 14, 2008 Permalink | Reply

how much has the grid map go so far ?

• #### chikaradirghsa 9:43 pm on October 14, 2008 Permalink | Reply

@waskita: going nowhere 😉
now i’m back doing crypto and leaving those grid maps for a while 😀

## vertex_occupancy_t blallaglalalalahaia…

Creating tag types for properties :

```enum vertex_occupancy_t { vertex_occupancy };
namespace boost {
BOOST_INSTALL_PROPERTY(vertex, occupancy);}```

Use new property tag in the definition of properties:

`typedef property<vertex_occupancy_t, int> Occ;`

Create a typedef for the Graph type, bidirectionalS means undirected graph:

`typedef adjacency_list<vecS, vecS, bidirectionalS, Occ> GraphCG;`

Get the property map for vertex indices:

`typedef property_map<GraphCG, vertex_occupancy_t>::type StatusVertex;`

Declaring the graph object:

```GraphCG g(num_vertices);
StatusVertex status = get(vertex_occupancy, g);```

Adding the edges to the graph object:

```for (int i = 0; i < num_edges; ++i)
add_edge(edge_array[i].first, edge_array[i].second, g);```

The property maps for these properties can be obtained from the graph via the get(Property, g) function:

```property_map<GraphCG, vertex_occupancy_t>::type occupancy
= get(vertex_occupancy, g);```

Setting occupancy for vertex:

```put(occupancy, 3, 9);
put(occupancy, 9, 3);
occupancy[2] = 7; // you can use operator[] too```

Accesing the vertex set:

```typedef graph_traits<GraphCG>::vertex_iterator vertex_iter;
cout << "vertices(g) occupancy status = ";
pair<vertex_iter, vertex_iter> vp;  //first iterator points to the beginning,
//second iterator points "past the end" of the vertices
for (vp = vertices(g); vp.first != vp.second; ++vp.first)
cout << status[*vp.first] << " ";```

• #### BigBan 8:33 pm on August 16, 2008 Permalink | Reply

Oh, Thanks! Really amazing. Greets.

## Customizing Properties

Defining my own properties tags to be added to the vertex, edge and graph.

We have agreed that the information about occupancy of obstacle in the map will be stored in the vertices.

## Still…

converting grid map into a graph representation and configuring the data structure.

## Graph Library – A First Trial

Have explored a bit through the graph library. Have read some documentation here, and here. The example worked fine.

The library is using template. Need to learn more about it. Maybe from this book. Now reading this and this.

Next task: developing a representation of simple grid-map in graph.

• #### tetangga sebelah 12:36 pm on July 16, 2008 Permalink | Reply

wah buku yang itu egak banyak jelasin Template bu, karena template itu illegal citizen of C++.

c
Compose new post
j
Next post/Next comment
k
Previous post/Previous comment
r
Reply
e
Edit
o
Show/Hide comments
t
Go to top
l
Go to login
h
Show/Hide help
shift + esc
Cancel