roboforum.ru

Технический форум по робототехнике.

3d сканирование. Возможно ли HQ?

Re: 3d сканирование. Возможно ли HQ?

OBN_RacerMan » 11 июн 2019, 23:57

Если про калибровочную таблицу - то был сделан один скан таблицы в "композитном" режиме, и добавлен в список. Затем просто была поставлена галка "расширенного режима" и сразу стали видны оба исходных кадра скана - они также были сохранены.
А по скану тройника - там были использованы сканы по такому же принципу (сначала делался скан АВ, потом из него же получались - А1+В1). Но всего было сделано несколько сканов. Затем они объединялись по группам (левая модель из сканов типа АВ, правая - из сканов А1+В1). Затем две этих группы совмещённых сканов поставил рядом и произвёл им финальное слияние (т.е. настройки слияния одинаковые на 100%).
А вот ниже это уже "полнокруговой" скан тройника.
Но конкретно по нему есть оговорки - из-за "древности" моего домашнего компа USB3.0 камеры подключенные через доп .плату USB3.0 PCI-E работают в разрешении максимум 800*600"60fps.
Но! Данные камеры не имеют режима интерполяции (т.е. при уменьшении разрешения в настройках менее 5Мп - они просто используют лишь часть матрицы), и физически имеют минимальное разрешение 1280*1024 (но вот всё что ниже - уже интерполируется - и это как раз такой случай).
Вложения
220v_800x600.jpg
Сделано в режиме 0.5Мп (но с оговорками)

Re: 3d сканирование. Возможно ли HQ?

difo » 12 июн 2019, 17:43

Очень приличные сканы .
Боюсь спросить .Во сколько же обошёлся SL-2 .Там же ценник солидный .

Re: 3d сканирование. Возможно ли HQ?

OBN_RacerMan » 12 июн 2019, 19:45

У меня всё натуральный "самопал". Проектор LED-DLP 1280*800 с двумя камерами 5Мп и объективами к ним - вышло в 50к. Софт, разумеется, "цельнотянутый" для личного использования :-)

Re: 3d сканирование. Возможно ли HQ?

difo » 12 июн 2019, 23:00

Все как всегда .С миру по нитке ..........


Прописали программу для ардуино .Под мой стол .
Буду завтра пробовать .


Код: Выделить всёРазвернуть
[code]
const int relPin = 13;


void setup() {

  Serial.begin(9600);

  pinMode(relPin, OUTPUT);

  digitalWrite(relPin, HIGH); //установить начальное состояние реле - выключено (?)

}
void loop() {

  static boolean do_scan = true; //можно сканировать

  static int counter = 0;

  if (do_scan) {

    digitalWrite(relPin, LOW); //включить реле (?)

    delay(22000); //время поворота

    digitalWrite(relPin, HIGH); //выключить реле (?)
    counter++;
    if (counter == 12) {

      counter = 0; //обнулить счетчик

      do_scan = false; //хватит сканировать

      //

      // тут могла быть команда(ы) для подачи звукового сигнала

      //

    } else {

      Serial.println("S"); //подать команду на сканирование

      delay(40000); //время сканирования

    }

  }

}
[/code]

Re: 3d сканирование. Возможно ли HQ?

OBN_RacerMan » 12 июн 2019, 23:22

difo писал(а):Прописали программу для ардуино .Под мой стол .
Буду завтра пробовать .

А это под какую Ардуину? Я вот думаю что, в принципе, как-то смогу использовать часть от Ciclop-a (там, вроде, Nano стоит). Отключить лазеры и оставить только привод стола.
Но вот родная программа управления им (Horus) уж больно стрёмная там (и без подключения камеры не запустится)

Re: 3d сканирование. Возможно ли HQ?

difo » 12 июн 2019, 23:58

Абсолютно без разницы .Будет работать с любой ардуиной или подобной платой .
Завтра попробую .

Re: 3d сканирование. Возможно ли HQ?

difo » 16 июн 2019, 11:57

Последний вариант программы .Все работает .
Цикл запускается кнопкой . (GND)—[ резистор 10 КОм ]—(buttonPin)—[ кнопка ]—(+5V)
Код: Выделить всёРазвернуть
const int relPin = 12;
const int buttonPin = 9;
const int zummerPin = 10;

boolean debounce(int pin);
void beep_beep();

void setup() {
  Serial.begin(9600);
  pinMode(relPin, OUTPUT);
  pinMode(zummerPin, OUTPUT);
  pinMode( buttonPin, INPUT);
  digitalWrite(relPin, HIGH);
}

void loop() {
  static boolean do_scan = false;
  static int counter = 0;

  if (debounce(buttonPin)) { //состояние нажатой кнопки = HIGH
    do_scan = true;
  }

  if (do_scan) {
    digitalWrite(relPin, LOW);
    delay(22000);
    digitalWrite(relPin, HIGH);

    counter++;

    if (counter == 13) {
      counter = 0;
      do_scan = false;
      beep_beep();
    } else {
      Serial.println("S");
      delay(40000);
    }
  }
}
boolean debounce(int pin) {
  boolean state;
  boolean previousState = digitalRead(pin);
  for(int counter = 0; counter < 10; counter++) {
    delay(1);
    state = digitalRead(pin);
    if( state != previousState) {
      counter = 0;
      previousState = state;
    }
  }
  return state;
}

void beep_beep() {
  ; //тут будет пищалка
}

Re: 3d сканирование. Возможно ли HQ?

OBN_RacerMan » 09 авг 2019, 14:17

difo писал(а):Последний вариант программы .Все работает


Нашёл (вроде бы) весьма интересную информацию, как запустить автоматическое сканирование с самодельным поворотным столом в David 5/HP3Dscan (где убрали работу с COM-портом)
3D Scanner Turntable for DAVID5 (now HP 3D Scan)
Исходники.. и куча подробных описаний "что, как и почему".
Только б ещё добавить в интерфейс возможность ручной установки числа поворотов (по исходному тексту там их "жёстко" 40)

P.S. Отличие от более простого способа автоматического сканирования (с использованием встроенного в программу обнаружения изменения в сцене) - тут не надо заранее замерять время на сканирование, чтобы указать его поворотному столу, т.е. с этой примочкой следующий скан будет автоматически сделан только после окончания предыдущего (в независимости от затраченного на скан времени).

P.P.S. Сейчас на работе, потому особо проверить-то и не могу. А просто при запуске скрипта ошибка вываливается (и, разумеется, в скомпилированном exe-шнике тоже)... а я ж не программер... буду, конечно, "копать" потихонечку..

Re: 3d сканирование. Возможно ли HQ?

OBN_RacerMan » 11 авг 2019, 17:58

Попробовал переделать найденный код под имеющуюся у меня плату HE3D от сканера Ciclop.
Какая-то реакция на нажатие цифры "2" присутствует (в мониторе COM-порта идёт ответ "S", как и задано в программе, и мотор выдаёт заданное количество "щелчков" (но не крутится)). Самое непонятно, что залив тестовый скетч stepper_oneRevolution.ino из библиотеки Arduino я также получаю треск а не вращение... :-(

Код: Выделить всёРазвернуть
#include <Stepper.h>

const int stepsPerRevolution = 200;  // change this to fit the number of steps per revolution

// initialize the stepper library on pins 8 through 11:
// Stepper myStepper (stepsPerRevolution, 8, 9, 10, 11);
// Stepper myStepper (stepsPerRevolution, 2, 3, 4, 5);
// Stepper myStepper = Stepper (200, 8, 9, 10, 11);
Stepper myStepper (stepsPerRevolution, 10, 8, 9, 11);

int stepCount = 0;         // number of steps the motor has taken

void setup() {
     Serial.begin(9600);   // open serial port
   //  myStepper.begin();       // create with the default frequency 1.6KHz
       myStepper.setSpeed(1); // 1 rpm
   //  myStepper.step(20, FORWARD, MICROSTEP);  // take a step to initialize position
       myStepper.step(10); // take a step
       delay(250);           // settle mechanics for 250 ms
     // myStepper->release();   // turn off current
  }
void loop() {
  static int counter = 0;
  if(Serial.available()>0) // is there any unread serial data?
    {
    char ch = Serial.read();    // read a character from the serial port
    Serial.print("echo");
    Serial.println(ch); // echo back so that it is displayed in DAVID debug console
    if (ch == '2')              // is it the character for the number 2?
      {
      counter = counter + 1;    // increment the scan count
    //  myStepper.step(20, FORWARD, MICROSTEP); // take a step
        myStepper.step(10); // take a step
        delay(250);           // settle mechanics for 250 ms
      //  myStepper->release();   // turn off current
        if (counter == 200)    // we have performed a full rotation
        {
          counter = 0;      // reset for next scan
        }
      else
        {
        Serial.println("S"); // Tell DAVID to do another Scan
        }
      }
    }  // end Serial.available
  }


P.S. Я там свои "всяко экспериметные" коды закомментировал (вдруг пригодится, в процессе)

Re: 3d сканирование. Возможно ли HQ?

Начинающий » 11 авг 2019, 19:41

Треск вместо вращения у шаговиков обычно идет, когда их слишком быстро разгоняют, когда слишком быстро пытаются вращать идут пропуски шагов, выраженные в периодическом потрескивании и уменьшении скорости, а потом ее плавном нарастании, я бы посмотрел в сторону постоянной
const int stepsPerRevolution = 200
она у вас должна быть такой сколько шагов ваш шаговик делает за один оборот, или можно поэкспериментировать с ней, но тогда лучше будет кусок
Код: Выделить всёРазвернуть
if (counter == 200)    // we have performed a full rotation
        {
          counter = 0;      // reset for next scan
        }
      else

заменить на
Код: Выделить всёРазвернуть
if (counter == stepsPerRevolution)    // we have performed a full rotation
        {
          counter = 0;      // reset for next scan
        }
      else

чтоб каждый раз не менять все в коде и как следствие облегчить себе жизнь.
Еще на сколько я помню когда баловался с мотором от HDD где 3 пина и одна точка заземления, пока не пустил сигналы через 3 полевика от внешнего источника питания 12В от ардуинки категорически работать не хотело только жужжал от вибрации, видимо тока не хватало, впрочем это конечно на свой страх и риск. В вашем случае если решитесь, можно будет сигнал подавать от ардуинки через китайский модуль для управления шаговиками, наподобие такого https://ru.aliexpress.com/item/32474582 ... 33edCsuyGg но это опять же на свой страх и риск.

Re: 3d сканирование. Возможно ли HQ?

OBN_RacerMan » 12 авг 2019, 01:21

Начинающий писал(а):Треск вместо вращения у шаговиков обычно идет, когда их слишком быстро разгоняют

Я уже, походу, решил эту проблему... пришлось, правда, заломать микросхеме "пины за спину".. и тогда она созналась, что коварные китайцы в плате HE3D заставили её работать через нестандартные пины... :D
когда я, после долгих тырканий и туда и сюда стал перебирать пины, то нашёл вариант, когда мотор вдруг стал крутиться.. хоть и в одну сторону... потом подобрал комбинацию, когда он с тем же кодом стал крутиться в другую сторону... потом... в общем потом тестовый скетч заработал как и положено - немного покрутить в одну сторону, потом немного в другую и т.д. Ну а далее осталось вписать в финальный скетч "выбитые чистосердечным признанием" нужные номера пинов (и в нужном порядке! (в другом расположении с этой платой не заработает!!)).
Теперь осталось выяснить, почему Deviare не "ловит" программу в момент, когда она заканчивает "порцию" скана и не запускает автоматически следующую итерацию скрипта (пока приходится каждый раз нажимать вручную кнопку в скрипте, после чего поворачивается стол, а курсор автоматически "переползает" в позицию кнопки "сканировать" и нажимает её)

Re: 3d сканирование. Возможно ли HQ?

OBN_RacerMan » 14 авг 2019, 11:45

Итак, моих знаний не хватило на то, чтобы сделать полную автоматизацию процесса, как в статье :( у меня это так и не вышло (надеюсь - пока). Что-то никак не хочет (или что-то не даёт) скрипту нормально зацепиться за программу, и отслеживать производимые ею действия.
Посему на данном этапе я лишь немного модернизировал код программы, и вывел запуск скрипта на продолжение сканирования на кнопку "s".
Теперь, включив сканер в режим Manual Scan Sequence / Free Motion (также можно выбрать Horizontal Turns или Manual Turntable (тут ещё можно сказать программе угол, на который поворачивается стол при сканировании)) я нажимаю один раз кнопку "Scan" в окне скрипта, а далее остаётся только нажимать "s" после каждого этапа сканирования. У автора было запрограммировано на 40 сканов за сессию, я ограничил 10-ю (мне так проще было указать число шагов для мотора :-) )

Re: 3d сканирование. Возможно ли HQ?

OBN_RacerMan » 01 дек 2019, 02:12

В ожидании приезда новой, достаточно дорогой камеры, решил что-нибудь ещё отсканировать. В этот раз выбор пал на мои старые радиомонтажные кусачки:
wire cutters_01.jpg
"Исходник"
wire cutters_03.jpg
Результат

Re: 3d сканирование. Возможно ли HQ?

moscow » 01 дек 2019, 09:28

Лаконично!

OBN_RacerMan писал(а):новой, достаточно дорогой камеры


А что за камеру ждёшь? Если не секрет.
Каким софтом сканируешь?

Re: 3d сканирование. Возможно ли HQ?

OBN_RacerMan » 01 дек 2019, 17:05

moscow писал(а):А что за камеру ждёшь? Если не секрет.
Каким софтом сканируешь?


Камеру вот такую заказал (пока одну, на пробу). По сравнению с нынешними камерами (которые все пять кучей стОят примерно столько же) - она дорогая :roll:

Софт - единственно "доступный" для работы с no-name камерами - HP3Dscan (бывший David Laserscanner)


Rambler\'s Top100 Mail.ru counter