Робот под управлением Linux работает медленно

Это может быть двухсторонний меч. В некотором роде, для случайного пользователя, указание символической ссылки может быть запутанным, в то время как для продвинутого пользователя может быть важно. Может быть, было бы хорошо, если бы у этих файловых браузеров был параметр конфигурации, который мог бы дать им необходимую функциональность. Не уверен, что вы небезопасны. Если вы следуете символической ссылке, это не так, как если бы это был обычный путь. Это дает вам дополнительную гибкость в том, что вы можете изменять каталоги или файлы, которые используются. Это похоже на псевдоним. Несколько имен для одного и того же. Когда вы копируете дерево каталогов, это имеет значение. Вы можете игнорировать все символические ссылки и копировать только все «реальные» каталоги или файлы или копировать символические ссылки в виде символических ссылок, т. Е. Копировать то же самое, или дублировать деревья (или файлы), которые находятся за символическими ссылками, в разные копии.
1
задан 30 October 2014 в 17:00

3 ответа

Это одно из тех приложений, где вы в основном начинаете вычитать, пока не сломаете что-то, а затем отпустите. Например, я не думаю, что ваш робот, скорее всего, использует zeroconf, который является демоном avahi, поэтому удалите его. Вам действительно нужно общение? Или лучше, загрузитесь в однопользовательский режим (добавьте 1 в cmdline ядра), а затем посмотрите, сколько служб вы должны включить, прежде чем ваше приложение начнет работать.

2
ответ дан 24 May 2018 в 02:26
  • 1
    Я делал это медленно. Мы действительно используем mDNS (avahi), чтобы найти наших роботов в случайных сетях, с которыми мы сталкиваемся, когда отправляемся на соревнования, встречи в лигах, лаборатории и дома. Я был бы рад заменить wicd на что-то легко настраиваемое с помощью плоских файлов. Несколько попыток пришло с пустыми руками. Однопользовательский режим - интересная идея, которую я буду исследовать. Благодарю. – Drew Noakes 2 November 2014 в 16:49

В каком делении вы находитесь? Я понимаю, что это может быть не тот ответ, который вы ищете здесь, но для чего-то важного, например, стоящего в течение 10 секунд, я бы пошел со встроенной платформой.

Если у вас есть бюджет пространства / мощности , вы должны подумать о том, чтобы придерживаться чего-то вроде arduino на роботе и программировать какое-то поведение в режиме ожидания с открытым контуром. Вы все еще можете использовать ubuntu на главной плате. Я предлагаю что-то вроде этого:

Имейте ардуино (или подобное), которое получает обычный сигнал сердечного ритма с сервера ubuntu. Если прошло больше интервалов сердцебиения X, arduiono получает контроль и перезагружает сервер Ардуино может напрямую управлять двигателями (или через какой-либо моторный контроллер, которым вы пользуетесь) и выдает команду stand-up, которая позволяет роботу «восстановить» и не получить дисквалификацию, в то время как ваша основная система загружается. Предварительная программа несколько поведение на стойке, возможно, на основе того, каким образом робот сталкивается, а затем выберите один из них на основе акселерометра. Если вы не находитесь в одном из legged подразделений, то просто напишите какой-нибудь дрянной код на ardiuno, чтобы он выглядел как робот что-то делает, пока сервер загружается. Как только система загрузится, он отправит еще одно сердцебиение, и ардуино может освободить управление

. Здесь есть ответы, которые помогут вам улучшить время загрузки (переверните материал пока вы не сломаете его, в основном), но даже тогда, если потеряете po wer - довольно распространенная проблема, что-то вроде этого может быть очень полезно.

2
ответ дан 24 May 2018 в 02:26
  • 1
    Спасибо за ваши мысли. Мы находимся в мануфактурной лиге малыша, поэтому да, они - роботы с длинными ногами размером около 50 см. Аппаратный вспомогательный контроллер на платформе - это Robotis CM-730 , который, я полагаю, может получить источник прошивки (возможно, для его старой версии), поэтому, возможно, там может быть настроено какое-то базовое движение. Это, скорее всего, довольно много работы, хотя это может быть полезно для других вещей, таких как стабильность. – Drew Noakes 4 November 2014 в 00:56

Попробуйте уменьшить буфер хранения до 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

Прокомментируйте, если это помогло или нет. Спасибо.

1
ответ дан 24 May 2018 в 02:26
  • 1
    Не могли бы вы объяснить, для чего эти настройки и почему вы думаете, что это хорошая идея их изменить? – Drew Noakes 2 November 2014 в 16:50
  • 2
    Это настройки ядра для управления памятью. По умолчанию Linux использует большие буферы в течение длительного времени (поэтому, когда происходит сбой питания, вероятность потери данных выше). На форуме Ubuntu я нашел комментарий от кого-то, кто сказал, что созревает по линии, что Windows использует меньший буфер в течение более короткого времени и что он сделал то же самое со своей установкой Ubuntu, и у него была лучшая производительность при загрузке. IMHO, когда буфер большой замораживания возникают при записи 30 Мб или около того сразу на диск, и я искал решение, потому что я хотел слушать музыку из microSDHC-установки. – iugamarian 3 November 2014 в 07:21
  • 3
    Также попробуйте vm.swappiness = 1 уменьшить использование swap (по умолчанию это 60, он слишком сильно использует swap, а это означает медленнее). – iugamarian 3 November 2014 в 07:25

Другие вопросы по тегам:

Похожие вопросы: