AI Robotics AI Engineer
An AI Robotics AI Engineer designs and implements the intelligence layer for robotic systems, specializing in integrating cutting-…
Skill Guide
The disciplined practice of architecting and implementing systems where computational correctness is strictly coupled with deterministic timing constraints, using C++ for the performance-critical real-time core and Python for tooling, simulation, and high-level orchestration.
Scenario
Build a system that reads data from a simulated sensor (e.g., via `/dev/urandom` or a simple GPIO simulation) at a fixed 1 kHz frequency and logs it to a file with precise timestamps, ensuring no samples are missed.
Scenario
Create two separate processes: a C++ real-time controller that computes a control signal at 100 Hz based on incoming commands, and a Python process that sends user commands and receives the controller's output for monitoring. The latency of the command path must be deterministic.
Scenario
Develop a ROS2 (Robot Operating System) node where the core feedback control loop is executed in a deterministic real-time thread, while the node's ROS2 interface (publishers, subscribers, services) is handled in a standard, non-real-time context.
C++ is used for the real-time critical path. Python is used for simulation, data analysis, visualization, and orchestrating non-real-time components. Boost and ZeroMQ provide robust, deterministic inter-thread and inter-process communication primitives.
For Linux-based systems, PREEMPT_RT provides soft real-time capabilities. For hard real-time requirements on microcontrollers, use a certified RTOS. Xenomai co-kernel provides stronger determinism for specific use cases.
`ftrace` and `perf` are essential for analyzing kernel and user-space scheduling and cache misses. `cyclictest` is the gold standard for measuring system-level interrupt and scheduling latency. LTTng provides detailed event tracing for complex system analysis.
CMake is the standard for building C++ projects with complex dependencies. Use Docker containers to ensure reproducible build environments. Yocto/Buildroot are used to create customized, minimal Linux images for embedded targets.
1 career found
Try a different search term.