NotifyObject doesn't simulate anything in the robotic system or environment. Instead it is used to manage the simulation itself. Specifically, Notify is used to trigger updates by various robotic elements each cycle.
NotifyObject.tcl is sourced in RoboSystem.tcl and is then available to any of the files TheRobot.tcl, TheOperatorInterface.tcl, TheField.tcl, or TheSimulationPanel.tcl. Any object's update may be called every cycle by subscribing to the Notify object called Cycle.
::Notify::Subscribe Cycle ::someobject::update someobjectname
Since ::Notify:: is not a Robot or OI element it has no GUI view.
There are three proc[edures] in NotifyObject.tcl. The first few lines of each proc lists the parameters required.
  # ::Notify::new creates new notify object. This object implements the
  # Observer pattern as described in "Design Patterns" by Gamma,
  # Helm, Johnson, Vlissides.
proc new { {NotifyName} } \
{
  # NotifyName = Unique name for the ::Notify::.
The parameter NotifyName is a constant. It is referenced when you use ::Notify::Subscribe or ::Notify::Publish
  # Register the object in the Notify objectlist.
  # Return the notifyname.
proc Subscribe { {NotifyName} {objecthandler} {objectname} } \
{
  # NotifyObject = Name for this notify object.
  # objecthandler = Method for updating $objectname.
  # objectname = name of object to update.
Subscribes to be notified of updates.
  # Update all objects that have been registered for NotifyObject.
proc Publish { {NotifyName} } \
{
  # NotifyObject = Name for this notify object.
All subscriptions are notified to update.
The robot defined in TheField.tcl will need to be updated every cycle. We can arrange for this by subscribing to Cycle. In TheField:
::Notify::Subscribe Cycle ::Playingfield::Robot_update OurBot
Now every cycle, when "::Notify::Publish Cycle" is called from RoboSystem.tcl, OurBot will get its update call.