- Versioning
- Exception definitions
- Command line flags parsing
- Logging library
- Scripting library
- Message passing
- Realtime services
- Serialization
- Cross compile for Arm64 from X86
- with gcc toolchain
- with clang toolchain
- grapecam
- plot
- Generic plotting API and
plottable
concept - Implement PoC with Qt6 Graphs
- Generic plotting API and
- Record and replay (reference)
- Define behaviour for
experimental
flag indeclare_module
and implement it - Review ecal. Is it an alternative to zenoh?
- delete
/tmp/ctcache-*
and fix linter warnings - update
clang-tidy-cache
. Does it fix linter caching problems?
- Ability to create and destroy publishers and subscribers at will (required for teleop mux)
- CANOpen support
- Teleop controller
- Implement queryable/query API
- Avoid copy in createDataCallback() by using SpliceIterator
- Implement liveliness API
- Implement shared memory API
- Implement caching API
- Define topics for matched example programs in a single place
- Consider implementing pub-sub match callbacks
- Implement PutOptions and subscriber Sample fields
- Support attachments
- Support timestamping
- Resolve how we can combine congestion control, priority and reliability settings in a coherent way to offer fewer choices at the user API layer?
- See discord
- Consider supporting sample kind (put/delete)
- Understand the point of on_drop callback in subscriber and support it if necessary
- Documentation cleanup: examples
- Understand hybrid logical clocks
- Support hybrid logical clocks implementation
- Disk recording and playback for time-series multi-modal data (README)
- Fix zenoh examples: pull, shm pub/sub
- New zenoh examples: Router interceptors (downsampling), authentication, access control, serdes (ZBytes)
- HW IO
- CANopen
- joystick
- midi
- Configure Raspberry Pi5 for low latency. Document it.
- Study
- Robotics at compile time
- cactus-rt on ROS2 interop
- Shared memory
- Single producer multiple consumer queue using externally specified memory (heap or shared memory)
- Consider removing
MPSCQueue
. It's unused. RenameFIFOBuffer
toMPSCQueue
- Math library
- Delay line
- Low pass filter
- Differentiator
- Integrator
- Matrix operations
- Behaviour trees: Consider building from first principles
- FSM: introspectable, visualisable state transition graph using graphviz.
- Introduce RTSan
- Refactor thread class out of realtime and put it in 'grape'
- Insert logging to capture timer overruns in the loop
reinterpret_cast<uintptr_t>
fromconst T*
and then modifying it later is undefined behaviour. Fixprobe::PinConfig::pin
. Considerstd::start_lifetime_as
instead.- replace
grape::realtime::SystemError
withstd::errc
- Study
- 2D Game Engine
- Vulkan in 30 minutes
- Vulkan Tutorial
- Vulkan guide
- Flecs and ECS
- CLoudPeek: Could serve as a starting point for custom viewer
- USD
- glTF with physics extensions
- HW accelerated 3D graphics
- Fix GCC builds
std::expected
not available with -DENABLE_LINTER=ON- sccache breaks build with -DENABLE_CACHE=ON
- Setup configuration presets for developer and CI builds
- Incorporate lessons from https://youtu.be/UI_QayAb9U0
- Fail the CI if clang-format changes code
- Add configuration presets to CMakePresets.json
- Develop github CI build file
- Document the usage in install instructions
- Implement CI build using github workflow
- Integrate cpack to generate artifacts
- Integrate ninjatracing
- Office environment (CO2, temperature, light) dashboard
- Network camera and viewer for industrial monitoring
- Zenoh interop with C++ publisher and Python subscriber, demonstrating data serialisation/deserialisation
- Improvements to
probe::Monitor
(See TODO in README) - MuJoCoPy Bootcamp LQR sim from lesson 13, demonstrating integration of MujoCo, plotting and control
- Rover demonstrating joystick teleop, FPV and mission control
- Implement advanced streaming
- Choose backend for audio/video device handling and stream processing
- Implement AV streaming server and client
- MuJoCo tutorials
- C++23 features: cppcon, cpp weekly
- C++20 features: https://youtu.be/N1gOSgZy7h4
- Practical C++26 Reflection
- Interfaces with C++20 concept: https://concepts.godbolt.org/z/PjGb466cr
- Clean code: https://youtu.be/9ch7tZN4jeI