According to Wikipedia :
Controller object - a non-user interface object that is responsible for receiving or processing a system event.
From Using UML and Templates :
What is the first object outside the user interface layer that first receives and coordinates ("controls") the system?
Controllers in all directions - whether in MVC or GRASP or EAA Templates - are all about how to get input and respond to events.
I conceptualize this very literally: think of a video game controller. 
It responds to input events - pressing user buttons. He doesn’t necessarily know what to do when you press a button, but at least he gets an event.
Looking at the controller, you can easily understand what system events are, that is, what input data it reacts to and how the user interacts with the system. On a Nintendo controller, it’s obvious that system events are:
- Press
A - Press
B - Press
X - Press
Y - Press
↑ - Press
↓ - Click
→ - Click
← - Press
L - Press
R
If we took all these events and built a software controller to deal with them, it would be an MVC controller: all these events are connected to the physical controller presented to the user - this is a “view” if you will. But there is a second level of input events for most video games, where the mashing button is mapped to specific system operations. For example, if you play Scorpion in Mortal Kombat 2, pressing ← ← B triggers one of your special moves. In this case, the system may require different controllers that deal with these different types of events:

Here, the NES Button Controller is an MVC controller that will monitor the state of user interface elements, for example, remembering which buttons were pressed in which order. Depending on the state of the application (see Application Controller - another one!) The NES Button Controller will respond to certain button combinations by calling methods on other controllers - for example, the Scorpion Controller - which are the controllers of the used case.
The important thing is that by looking at the design of these controller objects, you can quickly and easily list the system events to which they respond.
In general, in the end, the MVC controller is still a kind of GRASP controller, since its methods, as a rule, represent system events that respond to user input. But there are other GRASP controllers that are not MVC controllers: use Case controllers. A GRASP-based Case controller can respond to system events, such as "the user creates a new sale," while the MVC controller will respond to events such as "the system receives a PUT request for /sales/new " or "a java.awt.event.ActionEvent fires` ".