Skip to content
This repository has been archived by the owner on Jul 6, 2020. It is now read-only.

Runtime v2 #745

Draft
wants to merge 76 commits into
base: master
Choose a base branch
from
Draft

Runtime v2 #745

wants to merge 76 commits into from

Conversation

jonathan-j-lee
Copy link
Member

@jonathan-j-lee jonathan-j-lee commented Mar 7, 2020

Closes #341, closes #361, closes #609, closes #611, closes #642, closes #661, closes #714

  • Updated builds for hibike, dawn, and shepherd (including eslint . --fix for Dawn)
  • Replaced ad-hoc shell scripts for Runtime deployment with Docker
  • Runtime performance improvements:
    • Shared memory for sensor/gamepad IPC
    • msgpack for reduced packet sizes and less network load (updated Dawn-Runtime communication)
    • Cython (compiled) extension for accelerating packet serialization/deserialization
  • More documentation, testing, measurement of test coverage
  • Code autoformat
  • Command-line tools for interfacing with Runtime
  • Inter-robot communication to allow for greater coordination and more interesting strategies. Every robot can broadcast arbitrary MessagePack-serializable data to all allies, which can be read from a receive queue. This traffic is routed through Shepherd so that payload sizes/rates can be monitored and, if necessary, throttled.
  • Detailed structured logs, which are published over TCP

Detailed notes can be found in the documentation.

jonathan-j-lee and others added 30 commits March 6, 2020 15:06
Updated Makefile

Added .dockerignore
Laying out services

Using structlog

Added basic ZMQ connection
Added logging configuration

Added e-stop

Fixed duplicate multiprocess start call
Fixed device structure usage

Added device loading

Added running build with ZMQ
Prepared Nodejs to Runtime SDK methods

[Runtime] Added the toByteArray method, and changed socket type to request from pair

[Runtime] Implemented basic RPC protocal and RuntimeClient methods.

[Runtime] Added Documentation to methods in RuntimeClient

[RUNTIME] implemented runtime client with ZMQ 6.0.0
Started device library

Using DRAFT sockets again
Added read loop

Implemented most of packet parsing

Can read sensor UIDs

Added device schema loading

Began documenting sensor initialization

Implemented device write

Implemented device data

Added write frequency estimation
Added handling for device aliases

Reworked schema configuration and validation

Implemented working execution loop with signal

Implemented Robot.run

Added separate studentapi module

Can run coding challenges
Implemented alias commands

Added RADIO/DISH initialization

Can send and receive UDP packets in DawnServer

Started Dawn send loop

Implemented datagram client watchdog timer

Refactored into ConnectionManager

Added gamepad write

Added datagram server statistic logging
Can send gamepad inputs from Dawn
Can connect and read from gamepads in studentcode
Fixing some linter issues

Added linting functionality

Added timeout for Robot.run

Added support for Robot.set_value
Removed ansible

Retry all services instead of individual ones

Can receive device status updates in executor

Close shared memory before unlinking
Added DeviceMapping for broker to access devices

Created separate SmartSensorStructure and UDP update

First driving robot
Added unimportable student code tests
Restart broker on proxy failure

Started documenting supervisor, using runtimeclient in fctool
Added log captures for most services

Provide all coding challenge answers, finished rtcli
Shepherd/springcleaning (#713)

* removed a bunch of last years files, but there is more to go

* removed old coding challenges

* forgot this one too

* deleted dummy files

* Removed outdated headers in Utils.py

* almost everything is in an evergreen state

* fix utils to pass linter

* some stuff I missed in shepherd.py

* fixed final stuff for linter in Code.py

cd into provisioning before using vagrant (#711)

* cd into provisioning before using vagrant

* Fixed install script run command (previously hung up unexpectedly)

* Updated CODEOWNERS

update chrommunal (#719)

Removed old scripts and files (#730)

update readme with lint fix instructions (#731)
…ery error. Has a corner case that causes an error, but has not shown up after testing against student code
Added autopep8, autoformatted code
@jonathan-j-lee jonathan-j-lee added enhancement Runtime pri:high High priority improvements. documentation style perf Performance improvements. python Pull requests that update Python code labels Mar 7, 2020
@jonathan-j-lee jonathan-j-lee added this to the Runtime Rewrite milestone Mar 7, 2020
@jonathan-j-lee jonathan-j-lee self-assigned this Mar 7, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
documentation enhancement perf Performance improvements. pri:high High priority improvements. python Pull requests that update Python code Runtime style
Projects
None yet
2 participants