Это одно из тех приложений, где вы в основном начинаете вычитать, пока не сломаете что-то, а затем отпустите. Например, я не думаю, что ваш робот, скорее всего, использует zeroconf, который является демоном avahi, поэтому удалите его. Вам действительно нужно общение? Или лучше, загрузитесь в однопользовательский режим (добавьте 1 в cmdline ядра), а затем посмотрите, сколько служб вы должны включить, прежде чем ваше приложение начнет работать.
В каком делении вы находитесь? Я понимаю, что это может быть не тот ответ, который вы ищете здесь, но для чего-то важного, например, стоящего в течение 10 секунд, я бы пошел со встроенной платформой.
Если у вас есть бюджет пространства / мощности , вы должны подумать о том, чтобы придерживаться чего-то вроде arduino на роботе и программировать какое-то поведение в режиме ожидания с открытым контуром. Вы все еще можете использовать ubuntu на главной плате. Я предлагаю что-то вроде этого:
Имейте ардуино (или подобное), которое получает обычный сигнал сердечного ритма с сервера ubuntu. Если прошло больше интервалов сердцебиения X, arduiono получает контроль и перезагружает сервер Ардуино может напрямую управлять двигателями (или через какой-либо моторный контроллер, которым вы пользуетесь) и выдает команду stand-up, которая позволяет роботу «восстановить» и не получить дисквалификацию, в то время как ваша основная система загружается. Предварительная программа несколько поведение на стойке, возможно, на основе того, каким образом робот сталкивается, а затем выберите один из них на основе акселерометра. Если вы не находитесь в одном из legged подразделений, то просто напишите какой-нибудь дрянной код на ardiuno, чтобы он выглядел как робот что-то делает, пока сервер загружается. Как только система загрузится, он отправит еще одно сердцебиение, и ардуино может освободить управление. Здесь есть ответы, которые помогут вам улучшить время загрузки (переверните материал пока вы не сломаете его, в основном), но даже тогда, если потеряете po wer - довольно распространенная проблема, что-то вроде этого может быть очень полезно.
Попробуйте уменьшить буфер хранения до 4 МБ. В файле /etc/sysctl.conf write:
vm.dirty_bytes = 4194304 vm.dirty_background_bytes = 1048576
также может сократить время записи до 3 секунд
vm. dirty_expire centisecs = 300 vm.dirty_writeback_centisecs = 300
Прокомментируйте, если это помогло или нет. Спасибо.