Когда я строил каное (на котором в итоге вылез на воду один раз), мне очень помогла практика ежедневного отчета о том, что сделал и что планирую сделать. Мотивирует и бодрит, а самое главное — не дает сбиться с мысли в ворохе возникающих задач.

Попробую и с этим экземпляром робота сделать то же самое.

План на ближайшие дни:

  1. Реализовать оба скрипта (собсно, неокортекс и фласк-сервер) в виде сервиса, запускающегося после загрузки RPi.
  2. Реализовать «ждущий» режим. Сразу после загрузки робот ничего не делает, а ждет команд от пользователя.
  3. Реализовать в БД отдельную перезаписываемую табличку с текущим состоянием (чтобы не фильтровать последний статус при запросе от веб-интерфейса)
  4. В ждущем режиме запись статусов в таблицу-журнал статусов и в таблицу текущих статусов осуществляется раз в минуту. Проверка команд производится раз в 10 (или 30 секунд)
  5. При поступлении любой команды от оператора, система переводится в «боевой» режим: чтение команд — раз в секунду, запись статусов — раз в 10 секунд или после совершения любого активного действия.
  6. Добавить датчик магнитных полей (компас). Сегодня заберу его из СДЕКа, приехал аж из Красноярска. Сделать отображения данных в веб-интерфейсе.
  7. Пересчитать ускорение с акселерометра в градусы дифферента (или тангажа, еще не решил 🙂 ) и крена. Отобразить в веб-интерфейсе. ang = np.rad2deg(np.arcsin(g/G))
  8. Сделать функцию получения силы сигнала вай-фай. Отобразить в веб.
  9. Привести в божеский вид код для взаимодействия по serial, как со стороны ардуины так и со стороны Питона. А то сейчас очень долго. Выложить этот год на всеобщее обозрение
  10. Привести в божеский вид веб-интерфейс, чтобы было не стыдно показать здесь (Сейчас — стыдно ))
  11. Поставить камеру.
  12. Соединить ардуину и Rpi через GPIO по UART
  13. Разобраться с GPS (по первости — работал, сейчас отказывается давать координаты. хотя спутники видит, но со слабым отношение сигнала к шуму)

Чуть более далекие перспективы:

  1. Сделать построение карты на основе всего что есть.
  2. Сделать построение маршрута из одной точки карты в другую
  3. Сделать сопоставление текущей карты с ранее построенными
  4. Сделать возврат в точку с сигналом сети при выходе за пределы дейcтвия вай-фай
  5. Сделать распознавание препятствий чуть более сложных, чем стены (обрыв, лестница)

Совсем далекие перспективы:

  1. Сделать другое шасси. Больше. с более мощными моторами (шаговыми). Или с моторами вазовского стеклоочистителя.
  2. Перейти на одно кольцо. чтобы править всеми один аккумулятор на все — про все: тяговый, ардуина, малина. Либо 12 вольт свинец на 7 Ah, либо литий, но его сложнее и стремнее заряжать в режиме самообслуживания (см. след. пункт)
  3. Сделать базу и возможность самостоятельно заряжаться, как робот-пылесос.
  4. Поставить станок под пистолет (страйкбольный, конечно же)
  5. Сделать распознавание цели (OpenCV, детекция человека). Когда баловался с этим вопросом, но стало лениво собирать датасет для обучения модели распознавания камуфляжа). Большой вопрос, насколько Малина будет с этим справляться.
  6. Сделать функцию прицеливания по камере и дальномеру ))