We use CAN when we talk about general ability and COULD for general ability in the past.
Examples:
Can you play chess?
Ostriches can run very fast.
Their son could swim before he could walk.
In the negative CAN'T is more usual than CANNOT which is very formal.
We often use CAN and COULD with verbs for mental processes and senses.
Examples:
I couldn't decide.
Can you remember her name?
We could hear a cat, but we couldn't see it.
I can smell onions.
Other verbs used like this include: believe, feel, guess, taste, understand.
We use BE ABLE TO (not CAN or COULD) in these phrasal modal structures: in infinitives, in gerunds, after modals, in the perfect.
Examples:
They want to be able to practise.
She left without being able to talk to the teacher.
I won't be able to finish.
He hasn't been able to study.
We don't use BE ABLE TO in the Continuous.
We sometimes use AM/IS/ARE ABLE TO instead of CAN for general ability in formal situations.
We use WAS/WERE ABLE TO (not COULD) for the achievement of something difficult in the past.
Examples:
Is the child able to tie his or her shoelaces without help?
We had a flat tyre, but we were able to fix it and carry on.
We can use COULDN'T to say something difficult was not achieved.
Example:
We couldn't fix it.
We use COULD (not CAN or BE ABLE TO) + the perfect = to talk about an ability or opportunity not used.
Example:
He could have done very well, but he was lazy.
Note the difference between I was able to win (= I won) and I could have won (= I didn't win).
from Oxford Practice Grammar by George Yule (Advanced)