Docker (and CI in general) build currently isn't generating protobuf files. Docker image also needs to check that pigpio works.
51 lines
1.7 KiB
Markdown
51 lines
1.7 KiB
Markdown
# PyCar
|
|
|
|
This module is the original project for RC Car control, and as such contains the most functionality.
|
|
|
|
Note that only python 3+ has been tested for support (up to and including python 3.8).
|
|
|
|
## Build
|
|
|
|
Before building with python or Docker, you should generate protobuf code. If you have Java installed, the easiest way to do this is with the :pycar:copyPythonCode gradle task
|
|
|
|
`./gradlew :pycar:copyPythonCode`
|
|
|
|
Build using setup tools.
|
|
The easiest way to build is using the gradle task. This will also generate protobuf code if it hasn't already been generated.
|
|
|
|
`./gradlew :pycar:build`
|
|
|
|
Otherwise you can run:
|
|
|
|
`python setup.py bdist_wheel`
|
|
|
|
### Docker
|
|
|
|
A docker image has been created to ease deployment on the raspberry pi.
|
|
|
|
The docker image is always built on a tag in GitLab CI.
|
|
|
|
Otherwise, the image can be built by running
|
|
|
|
`docker build --build-arg PYPI_USERNAME=$PYPI_USERNAME --build-arg PYPI_PASSWORD=$PYPI_PASSWORD .`
|
|
|
|
or running the gradle task (which will also generate protobuf code)
|
|
|
|
`./gradlew :pycar:buildDocker`
|
|
|
|
## Runtime environment variables
|
|
|
|
There are two key environment variables that should probably be configured at runtime:
|
|
CAR_VEHICLE
|
|
- This variable can have two values, and is used to control whether
|
|
- Possible Values:
|
|
- CAR_MOCK (Default, log changes to stdout)
|
|
- CAR_2D
|
|
- Use gpiozero and pigpio to control steering/throttle servos)
|
|
|
|
CAR_LIDAR
|
|
- This variable controls whether an RPLidar will be used, or a file to load LiDAR scans from.
|
|
- Possible Values:
|
|
- LIDAR_MOCK (Default)
|
|
- {Serial Port}
|
|
- You must have an RPLidar connected via this port to access. For most linux systems such as raspberry pi, this will probably be /dev/ttyUSB0 |