<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def cmd_genobstacles(self, args):
        '''genobstacles command parser'''
        usage = "usage: genobstacles <start|stop|restart|clearall|status|set>"
        if len(args) == 0:
            print(usage)
            return
        if args[0] == "set":
            gen_settings.command(args[1:])
        elif args[0] == "start":
            if self.have_home:
                self.start()
            else:
                self.pending_start = True
        elif args[0] == "stop":
            self.stop()
            self.pending_start = False
        elif args[0] == "restart":
            self.stop()
            self.start()
        elif args[0] == "status":
            print(self.status())
        elif args[0] == "remove":
            latlon = self.module('map').click_position
            if self.last_click is not None and self.last_click == latlon:
                return
            self.last_click = latlon
            if latlon is not None:
                closest = None
                closest_distance = 1000
                for a in self.aircraft:
                    dist = a.distance_from(latlon[0], latlon[1])
                    if dist < closest_distance:
                        closest_distance = dist
                        closest = a
                if closest is not None:
                    self.aircraft.remove(closest)
                else:
                    print("No obstacle found at click point")
                    
        elif args[0] == "dropcloud":
            self.cmd_dropobject(Weather())
        elif args[0] == "dropeagle":
            self.cmd_dropobject(BirdOfPrey())
        elif args[0] == "dropbird":
            self.cmd_dropobject(BirdMigrating())
        elif args[0] == "dropplane":
            self.cmd_dropobject(Aircraft())
        elif args[0] == "clearall":
            self.clearall()
        else:
            print(usage)