Когда я строил каное (на котором в итоге вылез на воду один раз), мне очень помогла практика ежедневного отчета о том, что сделал и что планирую сделать. Мотивирует и бодрит, а самое главное - не дает сбиться с мысли в ворохе возникающих задач.
Попробую и с этим экземпляром робота сделать то же самое.
План на ближайшие дни:
- Реализовать оба скрипта (собсно, неокортекс и фласк-сервер) в виде сервиса, запускающегося после загрузки RPi.
- Реализовать "ждущий" режим. Сразу после загрузки робот ничего не делает, а ждет команд от пользователя.
- Реализовать в БД отдельную перезаписываемую табличку с текущим состоянием (чтобы не фильтровать последний статус при запросе от веб-интерфейса)
- В ждущем режиме запись статусов в таблицу-журнал статусов и в таблицу текущих статусов осуществляется раз в минуту. Проверка команд производится раз в 10 (или 30 секунд)
- При поступлении любой команды от оператора, система переводится в "боевой" режим: чтение команд - раз в секунду, запись статусов - раз в 10 секунд или после совершения любого активного действия.
- Добавить датчик магнитных полей (компас). Сегодня заберу его из СДЕКа, приехал аж из Красноярска. Сделать отображения данных в веб-интерфейсе.
- Пересчитать ускорение с акселерометра в градусы дифферента (или тангажа, еще не решил 🙂 ) и крена. Отобразить в веб-интерфейсе. ang = np.rad2deg(np.arcsin(g/G))
- Сделать функцию получения силы сигнала вай-фай. Отобразить в веб.
- Привести в божеский вид код для взаимодействия по serial, как со стороны ардуины так и со стороны Питона. А то сейчас очень долго. Выложить этот год на всеобщее обозрение
- Привести в божеский вид веб-интерфейс, чтобы было не стыдно показать здесь (Сейчас - стыдно ))
- Поставить камеру.
- Соединить ардуину и Rpi через GPIO по UART
- Разобраться с GPS (по первости - работал, сейчас отказывается давать координаты. хотя спутники видит, но со слабым отношение сигнала к шуму)
Чуть более далекие перспективы:
- Сделать построение карты на основе всего что есть.
- Сделать построение маршрута из одной точки карты в другую
- Сделать сопоставление текущей карты с ранее построенными
- Сделать возврат в точку с сигналом сети при выходе за пределы дейcтвия вай-фай
- Сделать распознавание препятствий чуть более сложных, чем стены (обрыв, лестница)
Совсем далекие перспективы:
- Сделать другое шасси. Больше. с более мощными моторами (шаговыми). Или с моторами вазовского стеклоочистителя.
- Перейти на
одно кольцо. чтобы править всемиодин аккумулятор на все - про все: тяговый, ардуина, малина. Либо 12 вольт свинец на 7 Ah, либо литий, но его сложнее и стремнее заряжать в режиме самообслуживания (см. след. пункт) - Сделать базу и возможность самостоятельно заряжаться, как робот-пылесос.
- Поставить станок под пистолет (страйкбольный, конечно же)
- Сделать распознавание цели (OpenCV, детекция человека). Когда баловался с этим вопросом, но стало лениво собирать датасет для обучения модели распознавания камуфляжа). Большой вопрос, насколько Малина будет с этим справляться.
- Сделать функцию прицеливания по камере и дальномеру ))