hi.. for my project, i have to create a fitness function for target tracking. the problem is, i dont even know where to start. the project is related to robot behaviour. i've been reading evrything related to it but still, i dont know what should i do first..can you help me?
There are many ways to create such a fitness function, and the choice is critical for the resulting behavior of the controller (I assume you are going with a geometric controller?).
The first choice you have to make is between dynamics and kinematics.
When the fitness function involves dynamics, you can express very "real" values as your fitness function, such as the energy cost to move from the current state to the intercepting state (which you can compute via the action integral), and you can also take into account nearly all the characteristics of your system (kinematics constraints, control saturations, control law, etc..). However, with a dynamics-based fitness function, you have to perform numerical integrations to compute all those things, i.e., you have to simulate the real motion of the robot, which will be very expensive, unless you can make use of some good approximating methods or other closed-form solutions.
When the fitness function involves kinematics, you cannot express as much stuff, i.e., you have to stick to things like time-of-travel or overall displacement, or some other heuristic weighting of the different kinematics errors between your current state and destination state. However, this is dramatically cheaper to compute, as it is often a matter of a few simple matrix-vector calculations and closed-form expressions for the motion interpolation. Constraints are also more limited. You can deal with kinematics constraints (limited motion, limited velocity / acceleration / jerk) but you cannot really directly enforce dynamics constraints such as limited control action or finite energy resources.
I would generally recommend a kinematics-based fitness function, and you can try to see what dynamics constraints (if any) you can manage to approximate or enforce loosely (one possibility is enforcing them lazily). That's going to yield a much more practical and implementable solution.
What exactly is your type of robot? In particular, it makes a big difference whether it is a holonomic robot or a nonholonomic one, and also whether it's a compliant (e.g., aircraft, bi-pedal, etc.) or stiff system (e.g., stiff joints, manipulator, car-like robot, etc.). Stiff systems are very easily and reliably described by kinematics alone, while compliant ones are too affected by dynamics effects (external forces, contacts, slipping, unwanted motions, etc.) which complicates things a lot.
It would also be useful to know in what context you will be using this fitness function. Is it for a simple geometric controller? Is it for a more complicated motion planner? If so, sampling-based or NLP-based? Is it for some sort of machine learning method? ANN? Neuro-controller? A fuzzy law? etc... questions abound!
it is only for a simple geometric controller.. using neural network.. i'm using eyesim to run the simulation.. i think i should go with the kinematic..