Перейти к содержимому
Chebuya

Дроноферма

Рекомендуемые сообщения

4 часа назад, Alex сказал:

 Не факт, конечно, что сработает, но попробуй.

Решил попробовать у себя на основной сборке, помогло.
Собирает всю картошку.
Обновил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, BrightYC сказал:

Решил попробовать у себя на основной сборке, помогло.
Собирает всю картошку.
Обновил.

и летает тоже правильно? нет уже странных движений?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Только что, Alex сказал:

и летает тоже правильно? нет уже странных движений?

Странные движения всегда были, какие-то покачивания. Понятия не имею что это, слип надо побольше делать скорее всего

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
7 минут назад, BrightYC сказал:

Странные движения всегда были, какие-то покачивания.

ну то скорее всего подлагивания майна или рендера. Сбиваться с пути и что-то пропускать дрон уже не должен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
11 час назад, Doob сказал:

А что если задействовать PID регулятор? Если можно получить скорость, ускорение и расстояние, зачем тогда надеяться на непредсказуемое время майна?

А как применить PID регулятор в условиях, когда есть возможность получить лишь длины векторов смещения и скорости? Направления же векторов скорости и ускорения могут и не совпадать. Кроме того в формулах присутствует нелинейность из-за ограничения максимального значения скорости.

 

Можно повторить физику движений дрона на Lua. Это позволит на каждом тике знать вектор скорости и точное положение дрона.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
9 часов назад, BrightYC сказал:

Странные движения всегда были, какие-то покачивания.

Похоже на автоколебания около целевой точки. Если я верно понял этот код, дрон не остановится никогда:

Скрытый текст

      val toTarget = Vec3.createVectorHelper(targetX - posX, targetY - posY, targetZ - posZ)
      val distance = toTarget.lengthVector()
      val velocity = Vec3.createVectorHelper(motionX, motionY, motionZ)
      if (distance > 0 && (distance > 0.005f || velocity.dotProduct(velocity) > 0.005f)) {
        val acceleration = math.min(targetAcceleration, distance) / distance
        velocity.xCoord += toTarget.xCoord * acceleration
        velocity.yCoord += toTarget.yCoord * acceleration
        velocity.zCoord += toTarget.zCoord * acceleration
        motionX = math.max(-maxVelocity, math.min(maxVelocity, velocity.xCoord))
        motionY = math.max(-maxVelocity, math.min(maxVelocity, velocity.yCoord))
        motionZ = math.max(-maxVelocity, math.min(maxVelocity, velocity.zCoord))

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

PID поможет поделить перемещение на управляемые отрезки.

Хотя тут можно обойтись простой логикой - взять двоичный/троичный поиск, на каждый отрезок задавать свою скорость - чем ближе к цели, тем меньше. С ускорением аналогично. При расхождении во времени делать поправку.

Такой алгоритм используется в космических аппаратах при линейных маневрах. А в атмосфере, да еще и с корректировкой курса уже нужен PID.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Doob сказал:

 

Меня в целом устраивает мой вариант, но разве он поможет избежать лагов майна?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 25.04.2019 в 00:43, eu_tomat сказал:

Это позволит на каждом тике знать вектор скорости и точное положение дрона.

*Забивание гвоздей микроскопом*
Это просто ферма картошки или другой культуры=)

Мне не нужна абсолютная точность.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, BrightYC сказал:

*Забивание гвоздей микроскопом*

Это просто ферма картошки или другой культуры=)

Фанаты Forestry то же самое говорят о дроноферме=)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, eu_tomat сказал:

Фанаты Forestry то же самое говорят о дроноферме=)

Дрон стоит сущие копейки, если не считать жемчуги эндера =) 
Нужно всего 1 память, процессор и 2 инвентаря

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Чтобы дрон не пролетал мимо, надо проверять скорость как здесь https://github.com/DrManganese/OpenComputers-Projects/blob/master/Farming Drone/farm.lua

while drone.getOffset() > 0.7 or drone.getVelocity() > 0.7 do

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 27.04.2019 в 12:13, BrightYC сказал:

Дрон стоит сущие копейки, если не считать жемчуги эндера =) 
Нужно всего 1 память, процессор и 2 инвентаря

Так от усложнения программы стоимость дрона тоже не изменится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Небольшой порт под самого дешевого робота (в начале игры дрона делать дорого) и работа по лкм/пкм

У робота нужно иметь инвентарь, процессор и память, по желанию солнечная панель.

https://raw.githubusercontent.com/BrightYC/Other/master/robofarm.lua

Изменено пользователем BrightYC

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...