bluerobotics / bluerobotics/BlueOS

Ardupilot loop timings improvement

Open
#1,161 2 comments 0 reactions 0 assignees View on GitHub
ardupilot-manager enhancement P3 - Low priority
Dominant language
Vue
Stars
453
Forks
151
Avg merge
1d 3h
Merged PRs (30d)
174

Description

Add to ArdupilotManager.py ardupilot launch cmdline: `--cpu-affinity 3`

Add to /boot/cmdline : `isolcpus=3 nohz_full=3`

ideas from here: https://www.suse.com/c/cpu-isolation-practical-example-part-5/

Moving the interrupts didn't seem to help.

This makes the last CPU exclusive for ardupilot.
Preliminar tests looked decent, though not ground-breaking:

Before:

![image](https://user-images.githubusercontent.com/4013804/193629878-1cd71288-e08c-4ea4-b931-ca02467185b7.png)

After:

![image](https://user-images.githubusercontent.com/4013804/193627766-3ff07c9a-1a6b-46a5-92bf-eaf3beb222af.png)

For this to be implemented we need:
- [ ] Ardusub 4.1.1
- [ ] A way of changing command line depending on the firmware in ArdupilotManager.py
- [ ] A way of changing cmdline.txt

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.