keep in mind that you should have at least 2GB of free space on your hard drive otherwise the OS can crash (if it runs out of swap file space) and/or you will have problems creating/copying/etc files. best practise is to have 20% of your filesystem free.
if you didn't fill it up "yourself" the only other possibility is if you have a log file that grew out of control and consumed massive amounts of disk space. you'll need to find the file(s) and delete them. you may have to do so from the command shell in Terminal.
anyways, first download omni disksweeper and find out what file(s) are the culprits (I'm assuming they're log files).