There are, I believe, a couple of ways of going about both the representation of the object for collisions and the handling of collisions.
Firstly, Panda includes a set of collision solids (such as spheres); these are probably (although I stand for correction on this) better choices than model-based collision geometry, the detection being, I suspect, a bit more robust. In particular, you may find that you can use collision spheres more often than you think (for example, if creatures only really move in two dimensions, then spheres may well work better and be more efficient than geometry that more accurately represents the creatures, since most of that geometry has little real relevance).
These objects you create yourself and manually add to the scene graph, I believe.
On the other hand, you can also tag geometry generated in your modeller to be collision geometry. For efficiency reasons, this should probably be rather less detailed, using rather fewer polygons, than the visual representation of the object that it is supposed to provide collisions for. In most cases I sincerely doubt that you’ll notice the difference unless you’re looking for it (and possibly little, if at all, then).
This type of geometry is automatically added to the scene graph as collision geometry when the model is loaded and added to the scene graph, I believe.
In other words, the answer to question two is “either: it depends on your desires”, I would say.
In terms of handling collisions, I suggest looking at collision handlers. If you just want to keep objects out of walls, floors and each other, then I suggest the CollisionHandlerPusher, which takes a reference to the object to be pushed in the event of a collision (such as the player actor, when setting up the collisions of the player’s collision geometry).
Don’t forget to add your “active” collision objects to your traverser!
Finally, have you read over the collision detection section of the manual? It might help you to figure out how to do things. I recommend starting off by implementing just what you asked for as an example, in this case using Panda’s collision primitives, specifically CollisionSphere and CollisionPlane, and keeping the former from passing the latter with a CollisionHandlerPusher.
Finally, note that the manual includes examples of collision detection, as I recall - those might be of use to you.