You could use ``` rosservice call gazebo/delete_model '{model_name: <model_name>}' ``` or something like this ```python from gazebo_msgs.srv import DeleteModel # For deleting models from the environment def del_model( modelName ): # FIXME: Freezes Python, DO NOT USE! """ Remove the model with 'modelName' from the Gazebo scene """ # delete_model : gazebo_msgs/DeleteModel del_model_prox = rospy.ServiceProxy('gazebo/delete_model', DeleteModel) # Handle to model spawner # rospy.wait_for_service('gazebo/delete_model') # Wait for the model loader to be ready # FREEZES EITHER WAY del_model_prox(str(modelName)) # Remove from Gazebo ``` Note: You need to pass `del_model_prox` a `string`, else it will crash. So it is safer to use ```python del_model_prox(str(modelName)) ``` rather than just ```python del_model_prox(str(modelName)) ``` See [gazebo_msgs][1]/]DeleteModel Service][2] > File: gazebo_msgs/DeleteModel.srv > > Raw Message Definition > > ``` > string model_name # name of the Gazebo Model to be deleted > --- > bool success # return true if deletion is successful > string status_message # comments if available > ``` #### References - [gazebo fuerte crashes after calling gazebo/delete_model service][3] - [Deleting Gazebo model causes Python to freeze][4] [1]: https://docs.ros.org/en/noetic/api/gazebo_msgs/html/index-msg.html [2]: https://docs.ros.org/en/noetic/api/gazebo_msgs/html/srv/DeleteModel.html [3]: https://answers.ros.org/question/42398/gazebo-fuerte-crashes-after-calling-gazebodelete_model-service/ [4]: https://answers.ros.org/question/241198/deleting-gazebo-model-causes-python-to-freeze/