# 4. SimulationΒΆ

In this chapter we introduce the simulation tool, Veranda, and cover the basic elements to simulate robot motion. Veranda is a two dimensional simulator. It was designed to have a low barrier to entry and overall ease of use. Veranda uses Box2D, a 2D physics engine for more realistic interactions between objects. It is not intended for very high precision work (and does not support 3D). For those applications, we suggest Gazebo (see appendix).

Following the overview and examples with Veranda, we will cover some standard techniques in simulation. It is very helpful to understand what is going on inside the simulator. It also is very useful to know how to create your own simulation when none of the current simulation tools will suffice. Before we get going on the simulation tools, an overview of SciPy is done to get everyone up to speed.

- 4.1. Why simulate?
- 4.2. SciPy and Mathematics
- 4.3. Vectors and Matrices
- 4.4. Linear Algebra
- 4.5. Two Link Simulation Example in Python
- 4.6. Tutorial: Driving a Robot in Veranda
- 4.7. Simulation of a Differential Drive Robot
- 4.8. Running the Demos
- 4.9. Moving the Differential Drive robot
- 4.10. Simulation with Noise
- 4.11. Tutorial: Placing Obstacles and Sensing in Veranda
- 4.12. The Ground Robot World
- 4.13. MatPlotLib
- 4.14. Graphing parametric functions
- 4.15. Problems