Задать вопрос
  • Можно ли использовать датчик mpu9250 для измерения положения робота в пространстве?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Обычно такие задачи решаются с помощью фильтра Калмана. Но вам этого датчика будет недостаточно для вашей задачи. Акселерометры не показывают абсолютных координат, они дают только скорость изменения скорости. Для получения координат надо дважды интегрировать ускорение, а при этом быстро накапливается ошибка, ведь нет способа ее устранить.
    Для устранения ошибок используют дополнительную информацию о положении робота. К примеру можно поставить энкодеры на колёса, тогда сведения о перемещении вы будете получать не только от интегрирования ускорений, но и от вращения колёс. При этом вы никак не решаете проблему ошибки, вознкающей з-за проскальзывания колёс.
    Вообще, фильтр калмана довольно гибкий инструмент, он подразумевает построение модели перемещения вашего робота и фильтрует поток информации с датчиков в соответствии с тем, насколько близко их показания соответствуют модели перемещения.
    Грубо говоря, например, будут приняты с малым коэффициентом показания датчиков, которые говорят, что робот внезапно дёрнулся влево с большой скоростью и ускорением, которое очень маловероятно для математической модели перемещения вашего робота. А вот показания. которые близки к тому, что предсказывает модель, будут приняты с коэффициентом, близким к единице.
    Прочитайте про фильтр Калмана, подумайте какие еще датчики можно прикрутить к вашему роботу кроме акселерометров и гироскопов, которые, безусловно, способны помочь, но их будет не достаточно для навигации робота в локальной системе координат.
    Самый точный способ - это маркировать робота инфракрасным или любым другим светодиодом и находить его камерой, подвешенной над сценой. Так вы получите достаточно точную локализацию и относительно дешево.
    Можно оставить на робота сканирующий оптический пассивный радар (фотодиод в трубочке на вращающейся башне), а маячки разместить на местности. Так робот вращая своей башней (с энкодером дляопределения угла поворота относительно корпуса робота) и регистрируя модулированные уникальные сигналы от маячков. сможет триангулировать и доуточнять своё положение. Даже двух разнесенных маячков, если они не на одной линии с роботом, достаточно для очень неплохой точности локализации.
    Бывает, что на местности активные маячки разместить проблематично, тогда используются пассивные маркеры - яркие конусы, QR-коды, контрастные метки. Тогда на робота надо ставить камеру. таком случае добиться можно еще бОльшей точности локации, но в ущерб сложности и ресурсоемкости бортового оборудования.

    В следующий раз боле еразвернуто описывайте свою задачу. Тут либо спрашивающий потрудится описать (не)лишние детали своей задачи, либо отвечающим надо целую книгу писать, чтобы перебрать все возможные варианты.
    Проявляйте уважение к людям, которые вам хотят помочь.
    Ответ написан
    4 комментария
  • Как именно устроены session и cookies?

    @deliro
    1. Нет никакой синхронизации. Сервер может только указать клиенту, что ему нужно установить куку X в значение Y хэдером Set-Cookie и считать с пришедшего на сервер запроса куки (все куки отправляются в каждом запросе на сервер).
    2. Сессии могут храниться на клиенте (signed cookie session). При этом используется подпись куки с помощью HMAC, чтобы данные сессии не могли быть свободно изменены клиентом. Но обычно сессии хранятся на сервере. Тут выбор огромный: от баз данных и key-value хранилищ (Redis, например) до простых файлов. При этом, клиенту посылается кука ID сессии (так сервер идентифицирует юзера), которую злоумышленник может стащить. Таким кукам, дабы защитить юзеров от XSS, ставится флаг HttpOnly, который советует браузеру не давать эту куку скриптам вроде JS. В этом случае, стащить куку получится только завладев браузером, файловой системой юзера или через багу браузера.
    3. Смотри второй ответ. В некоторых случаях - да. Но редко.
    4. Можно передавать значение session id в строке URL (GET - параметром), вроде такого: example.com/some/page/?session_id=2af26905dcf31a1d... Некоторые сервисы используют это, как fallback вариант, однако, он очень небезопасен, т.к. любой XSS или простой безобидный JS вроде Яндекс.Метрика видит весь URL. Так что, посылаем юзера включать куки.
    Ответ написан
    4 комментария