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/