Alright, well I'll assume you know to use triggers and what not then.
First you're going to need to place locations along the path your waves will travel across. Let's say for simplicities sake that we'll use 3 locations: the start of the path, a single turn in the path and the end of a path.
Once you have these placed, open your trigger menu and create triggers that will order your units across the path. It should look something like this:
Conditions
ALWAYS
Actions
ORDER ALL ANY UNIT OWNED BY (computer player) AT 'START' TO 'TURN'
ORDER ALL ANY UNIT OWNED BY (computer player) AT 'TURN' TO 'END'
PRESERVE TRIGGER
There are other ways to do this, but this is the easiest in my opinion.
Next, we'll create our waves. Let's say we want them to come every time a countdown timer reaches '1'. We'll use a death count variable to keep track of what level we're on. Create a trigger to set a countdown timer at the beginning of the game and then set it up like this:
CONDITIONS:
'Player x' has suffered at most 0 deaths of 'counter' (use whichever player/unit you want for this)
Countdown Timer is at most 1 second
ACTIONS:
Create x 'wave 1' at location 'start'
set countdown timer to 1 minute
Set deaths for 'player x' for unit 'counter' to '1'
CONDITIONS:
'Player x' has suffered at most 1 deaths of 'counter'
Countdown Timer is at most 1 second
ACTIONS:
Create x 'wave 2' at location 'start'
set countdown timer to 1 minute
Set deaths for 'player x' for unit 'counter' to '2'
CONDITIONS:
'Player x' has suffered at most 2 deaths of 'counter'
Countdown Timer is at most 1 second
ACTIONS:
Create x 'wave 3' at location 'start'
set countdown timer to 1 minute
Set deaths for 'player x' for unit 'counter' to '3'
These triggers will spawn your waves every time the counter reaches '1', reset the counter and increase the death count so the next trigger will run when the countdown timer is done.
If anything needs to be clarified, just ask.