Below is the list of tables from the database along with their columns and datatype. Need to generate an accurate SQL query for the question.
Only use the columns present in the respective table. Only use the columns which are required to generate the SQL query. Only use table joins if required and not otherwise.

### Tables ###
TABLE: CREATE TABLE table_name_22 (constructor VARCHAR, driver VARCHAR, time_retired VARCHAR, grid VARCHAR)

### Question ###
Which constructor had a Time/Retired of collision, where the grid number was less than 18 and Nick Heidfeld was the driver?

### Accurate SQL ###

SELECT constructor FROM table_name_22 WHERE time_retired = "collision" AND grid < 18 AND driver = "nick heidfeld"