- It has Real time settings which one can apply in a thread,to extract max performance from an RPI.
- With Great power,comes great responsibility
- ROS Noetic is used as a packaging and build system for it.
Requirements:
0. Please Ensure you have the RPI patched with a PREEMPT_RT patch, otherwise you wouldnt be able to apply a RT priority to SCHED_FIFO
- For using this library, your user will need to have root permissions.
- Secondly, to set RT priorities, please set ulimit configs in the following way:
- Add your user to a group, in this example, called "rtprio"
- Give this group root permissions:
sudo groupadd rtprio
sudo usermod -a -G rtprio <username>
sudo chmod 4750 /usr/bin/chrt
- Now you have to configure hard and soft priority limits which the group can use:
- Open /etc/security/limits.conf in an editor of your choice and add the following lines:
<username> hard rtprio 99
<username> soft rtprio 99
- Reference for the above: https://stackoverflow.com/questions/10704983/operation-not-permitted-while-setting-new-priority-for-thread
- One way to programatically change soft and hard limit : https://man7.org/linux/man-pages/man2/getrlimit.2.html