Rover written with RUST
Assigning process to fixed CORE #
2025.11.12 21:10
Forcing specific program to run on particular core # (Simple way, less professional)
taskset -c 3 ./PasUDSServer
taskset -c 1 target/debug/vo_livecam
taskset -c 2 python3 yolo_service.py
The "Pro" Robotics Way: isolcpus
taskset forces your program to stay on a core, but it doesn't stop Linux from interrupting that core to check emails or run system updates.
To get Hard Real-Time performance for your VO, you can tell Linux to never touch specific cores unless you explicitly tell it to.
-
Edit Grub: sudo nano /etc/default/grub
-
Modify
GRUB_CMDLINE_LINUX_DEFAULT: Addisolcpus=1,2,3to the end of the line. Example:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash isolcpus=1,2,3" -
Update Grub and Reboot: “sudo update-grub”,then“sudo reboot”
After rebooting:
-
Linux will ONLY use Core 0 for everything (system, GUI, mouse, etc.).
-
Cores 1, 2, and 3 will sit at 0% usage doing absolutely nothing.
-
You MUST use
taskset -c 1 ./vo_livecamto run your program on Core 1. -
Result: Your VO engine will have 100% of that core's attention with zero interruptions from the OS. This is ideal for the stability of your odometry.