diff --git a/README.md b/README.md index 1f0c74479..2c7c908ac 100644 --- a/README.md +++ b/README.md @@ -70,8 +70,8 @@ The source code for this demo is available in the [examples/cu_rp_balancebot](ex 2. **Runtime generation**: The current implementation works for up to middle size robots (~a couple dozen of tasks). 3. **Log reader**: You can reread the logs generated by Copper from your robot, sim or resim. 4. **Structured log reader**: debug logs are indexed and string interned at compile time for maximum efficiency. -5. **Components**: We have a grwing number of drivers, algorithms and standard interfaces, if you have implemented a new - compnent, ping us and we will add it to the list! +5. **Components**: We have a growing number of drivers, algorithms and standard interfaces, if you have implemented a new + component, ping us and we will add it to the list! 6. **log replay / resim**: You can deterministically replay/resim a log. If all you tasks are deterministic, you will get the exact same result as a real log on the robot or from the sim. 7. **Simulation**: We have a simple simulation environment to test your robot without a real robot. @@ -231,19 +231,17 @@ examples/cu_caterpillar examples/ros_caterpillar ``` -You can them out either just logging on a desktop or with GPIOs on a RPi and you should see a couple order of magnitude -difference in performance. +You can try them out by either just logging on a desktop, or with GPIOs on a RPi. +You should see a couple order of magnitude difference in performance. -Copper has been design for performance first. Not unlike a game engine we use a data oriented approach to minimize latency +Copper has been designed for performance first. Not unlike a game engine, we use a data oriented approach to minimize latency and maximize throughput. ### Safety -As Copper is written in Rust, it is memory safe and thread safe by design. It is also designed to be easy to use and to -avoid common pitfalls. +As Copper is written in Rust, it is memory safe and thread safe by design. It is also designed to be easy to use and avoid common pitfalls. -As we progress on this project we plan on implementing more and more early warning to help you avoid "the death by a -thousand cuts" that can happen in a complex system. +As we progress on this project we plan on implementing more and more early warnings to help you avoid "the death by a thousand cuts" that can happen in a complex system. ### Release Notes @@ -258,11 +256,11 @@ You can find the release notes [here](https://github.com/copper-project/copper-r Here are some of the features we plan to implement next (in ~order of priority), if you are interested in contributing on any of those, please let us know!: -- [ ] **Parallel Copper Lists**: Today Copper is monothreaded; this should enable concurrent Copper Lists to be executed +- [ ] **Parallel Copper Lists**: Today Copper is single-threaded; this should enable concurrent Copper Lists to be executed at the same time with no contention. - [ ] **ROS/DDS interfacing**: Build a pair of sink and source to connect to existing ROS systems, helping users migrate their infra bit by bit. -- [ ] **Extensible scheduling**: Enables a way to give hints to copper to schedule the workload +- [ ] **Extensible scheduling**: Enables a way to give hints to copper to schedule the workload. - [ ] **Modular Configuration**: As robots built with Copper gain complexity, users will need to build "variations" of their robots without duplicating their entire RON file. - [ ] **Distributed Copper**: Currently, we can only create one process. We need proper RPC filtering copper lists per