Cognitive / spatial mapping
17 Nov 2008, 11:03 AMThe human brain has the ability to construct representations of space and store them. This spatial mapping ability is used in many processes. For instance navigation uses representations of routes, objects, distances, locations and directions. This is called cognitive mapping. The exact principles of cognitive mapping are unknown, such as the absence of an accurate description of distance perception.
Right now, I am working on building a simulation of a virtual agent in a 3D environment capable of doing basic cognitive mapping. The aim is to get the agent to learn paths and navigate between rooms.
Building the 3D world
I looked around a lot to find a simple 3D engine which would fit my purpose of building a 3D environment comprising of a few rooms and doors.
I tried JPCT (java) which looked promising but completely lacked support resources and a good documentation. Crystal Space (C++), I found to be too big and complex for my purpose. Same with JMonkeyEngine(java). At last, I came across Irrlicht (C++) an amazingly compact and immensely powerful 3D engine that has a huge community, plenty of support resources, good documentation and even a java binding called Jirr. I have nothing but words of praise for Irrlicht.
After fiddling around a bit with it and modeling my rooms in Anim8or, I finally got the 3D world working, which looks like this:
I am working on the neural side of things, where the the agent has:
- A simple vision system
- Basic colour recognition capabilities
- Basic object (room, door) recognition capabilities
- and the ability to learn instances (doors, rooms) and associate them to be able to navigate.