YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Russian subtitles

← 06-38 Implementing Slam

Get Embed Code
4 Languages

Subtitles translated from English Showing Revision 1 created 12/26/2012 by ayten.abzal91.

  1. Так что теперь мы узнали все о Линейной GraphSLAM,
  2. и это совсем немного - и это действительно просто.
  3. Каждый раз, когда здесь есть ограничение
  4. Исходное положение, движение или измерения
  5. мы берем это ограничение и добавляем что-то к Omega, Xi.
  6. И то, что мы добавляем это само ограничение,
  7. но оно умножается на фактор силы.
  8. Там нет ничего другого, кроме 1 / сигма
  9. неопределенность в движении или в измерениях.
  10. А потом, когда мы закончили с этим сложением
  11. Мы просто вычисляем этого
  12. и находим наш лучший возможный путь
  13. и вместе с MAP всех ориентиров.
  14. Разве это не что-то? Разве это не круто?
  15. Так что давайте нырнем и вы запрограммируете свой собственный реальный пример робота.
  16. Это довольно сложная обобщение того, что мы только что видели.
  17. Я даю вам среду, в которой можно указать
  18. количество ориентир, которые существуют,
  19. количество временных шагов для запуска робот,
  20. world_size, measurement_range - это
  21. диапазоны, в котором роботы могли бы увидеть ориентир
  22. если это дальше, чем это - он просто не увидит ее;
  23. motion_noise, measurement_noise,
  24. и параметр расстояние.
  25. Расстояние указывает, как быстро робот движется с каждым шагом.
  26. А потом я даю вам функцию, которая делает данные.
  27. Он принимает все эти параметры и выводит поле данных
  28. который содержит последовательность движений и последовательность измерений.
  29. Код комментирует на точный формат данных.
  30. Теперь я хочу, чтобы вы запрограммировали функцию, SLAM,
  31. что вводит данные и различные важные параметры
  32. и выводит мой результат - последовательность подсчитанных поз,
  33. PATH Робота, и подсчитанные позиции ориентир.
  34. Это действительно сложно для программирования.
  35. Она основана на математике которую я дал вам.
  36. координаты
    Робота теперь х и у координаты.
  37. Измерения различия в х и у
  38. так что вам придется дублировать вещи для х и у вещей.
  39. Я сам, поместил их все в одну большую матрицу,
  40. но вы могли бы поместить их в 2 отдельные матрицы, если вы того пожелаете.
  41. Вы должны применить все, что мы узнали до сих пор,
  42. в том числе значение один с нашим measurerment_noise
  43. и один с нашим motion_noise.
  44. Эти должны быть эквивалентными, в данном случае - но они могут быть разными.
  45. И тогда вы должны запустить SLAM
  46. и вернуть мне структуры данных результата.
  47. Я также поставляю вам print_result routine
  48. так что вы можете пойти и посмотреть, как результат должен выглядеть.
  49. Здесь пример шаблона - который не работает
  50. который выводит все правильные форматы,
  51. но он старается не выполнять вычисления, которые я хочу, чтобы вычислили.
  52. Вы должны довести это до жизни
  53. и превратить это в удивительной SLAM шаблон
  54. так что, когда вы запустите ее, вы получите тот же результат, что я делаю
  55. для примера здесь,
  56. где есть вычисленное PATH
  57. и вычисленные позиции ориентир.
  58. Есть одна последняя вещь, которую я хотел бы знать
  59. Я предполагаю, что исходное положение робота
  60. будет в центре мира.
  61. Так что это набор из 100
  62. и это будет 50/50--или здесь он печатается как 49,999,
  63. Но это так же, как 50.
  64. Таким образом, вы должны поставить в ограничения
  65. который устанавливает начальную позу робота
  66. в центре мира.