gtbook
================

<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->

The book can be found at <https://www.roboticsbook.org> and has the
following chapters:

- [Introduction](https://www.roboticsbook.org/intro.html)
- [A Trash Sorting
  Robot](https://www.roboticsbook.org/S20_sorter_intro.html)
  (`discrete`)
- [A Robot Vacuum
  Cleaner](https://www.roboticsbook.org/S30_vacuum_intro.html)
  (`vacuum`)
- [Warehouse Robots in
  2D](https://www.roboticsbook.org/S40_logistics_intro.html)
  (`logistics`)
- [A Mobile Robot with Simple
  Kinematics](https://www.roboticsbook.org/S50_diffdrive_intro.html)
  (`diffdrive`)
- [Autonomous
  Vehicles](https://www.roboticsbook.org/S60_driving_intro.html)
  (`driving`)
- [Autonomous Drones in
  3D](https://www.roboticsbook.org/S70_drone_intro.html) (`drone`)

The structure of gtbook mirrors this organization, and then has a few
more support modules for displaying graphs inside notebooks and for
running the code in the book. The gtbook modules are listed above
alongside the chapter.

## How to use

In the book chapters, we should have a cell that fetches the latest
version using pip:

``` bash
%pip install -q -U gtbook
```

The above automatically installs other libraries on colab, e.g., gtsam
and plotly.

You also needs a cell that imports what you need in a particular
section, for example:

``` python
from gtbook.display import show
from gtbook.discrete import Variables
```

Further usage examples of these and more functions are given in the
module documentation itself.

There are also some command line tools defined in the `cli` module.

## Notes for development

> Mostly for Frank as he adds to the library.

- For version 2 of nbdev in a local conda environment called nbdev2. It
  can be re-created with `conda env create -f environment.yml`.
- I used `conda install -c fastai nbdev` to install nbdev in there as
  well, but the github workflow uses `pip install nbdev` so I can just
  use one channel.
- `pip install -e .` for local install of the remaining modules
  specified in the settings.ini file
- to preview the docs do `nbdev_preview`
- to push a new version, use `nbdev_prepare` and then push.

To release a new version:

- `nbdev_bump_version`
- `nbdev_pypi`
