Nietypowa instalacja Linuxcnc.

Dyskusje dotyczące działania obsługi programu LinuxCNC
Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 7874
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Nietypowa instalacja Linuxcnc.

#1

Post napisał: tuxcnc » 24 lis 2019, 23:45

Jak pisałem w innym wątku, zdecydowałem się na zakup mocnego komputera pod oprogramowanie CAD.
Wybór padł w końcu na procesor Ryzen 5 3400G, płytę główną Gigabyte A320M-S2H V2, 2x8GB szybkiej pamięci i ultraszybki dysk Plextor M9Pe SSD na PCIex 3.0 x4.
Mówiąc w skrócie, jest to maszyna za droga i za szybka nie tylko do sterowania obrabiarki, ale też do celów które były dla niej przewidziane.
Od początku mam z tym komputerem same problemy, które jednak systematycznie rozwiązuję, i coraz mniej żałuję tego zakupu. W końcu to nowoczesny komputer i bardzo długo nie będzie wymagał zastąpienia nowszym ...
Pierwszy problem jest taki, że wbudowanej w procesor grafiki Vega 11 nie wspiera kernel starszy niż 5.0, zresztą najnowszy kernel też nie gwarantuje sukcesu, bo jest tylko jednym z wielu warunków do spełnienia.
Stanowczo to ogranicza wybór systemu do zainstalowania.
Ostatecznie po przeszukaniu internetu zdecydowałem się zainstalować Xubuntu 18.04 i zupgradować kernel i Xorg. Instalacja przebiegła bez problemu, a upgrade robi się prostą komendą : apt install --install-recommends linux-generic-hwe-18.04 xserver-xorg-hwe-18.04
Wszystko działa jak powinno i na tym temat można by zakończyć, gdyby nie moja ciekawość ...
Właśnie z ciekawości uruchomiłem z pendrive linuxcnc-2.7-wheezy.
O dziwo uruchomił się na HDMI w rozdzielczości 1920x1080, co zapewne jest przypadkiem, bo xrandr wywala takie same błędy jak w innych starszych dystrybucjach. W każdym razie jakby się uparł, to coś by na nim zdziałał.
Zaskoczył mnie natomiast wynik latecy test, który trzymał się sztywno w okolicach 10 mS (10000 nS).
Ponieważ mieszkam dziesięć kilometrów od miejsca w którym stoją moje obrabiarki, postanowiłem zainstalować Linuxcnc na tej maszynie, aby mieć możliwość testowania oprogramowania czy sprzętu.
Instalacja na osobnej partycji nie wchodziła w grę, bo jak mi się coś przypomni albo przyjdzie do głowy, to chcę mieć wszystko pod ręką a nie rebootować co chwilę komputer.
Znowu po poszukiwaniach w necie, wybór padł na kernel 5.2.21, bo to najnowszy kernel na którego jest patch RT Preempt.
Zasadniczo cała instalacja przebiegła zgodnie z opisem na stronach https://gnipsel.com/linuxcnc/uspace/lubuntu19-rt.html i https://gnipsel.com/linuxcnc/uspace/lin ... 9-emc.html , tylko nazwy plików trochę się różniły, bo Linuxcnc też instalowałem w najnowszej wersji.
WAŻNE. Przy pierwszej kompilacji kernela zrobiłem bawoła, bo podłożyłem config z kernela Ubuntu i zrobiłem make oldconfig. Efekt był taki, że się złapałem za głowę. Jitter skakał do takich wartości jak na przeciętnym laptopie i gdybym nie wiedział co ten sprzęt potrafi, to bym dał se siana. Po dłuższym zastanowieniu zrobiłem jak w linkowanych artykułach, czyli rozpakowałem kernel, spatchowałem, uruchomiłem make xconfig i nie robiłem żadnych zmian. Kernel skompilowany na ustawieniach domyślnych idealny nie jest, jitter potrafi skoczyć jak się da procesorowi za dużo pracy, ale na biegu jałowym nie przekracza 25 ms, czyli można ustawić base_thread na 50000 i mniej wymagający sprzęt obsłużyć ...
Czyli podsumowując, system to Xubuntu 18.04 z kernelem 5.2.21-rt13 i Linuxcnc 2.9.0~pre0.
Powtórzę, że wszystko co zainstaluję ma działać na tym systemie. Jest to warunek z którego nie zrezygnuję.

I wreszcie doszliśmy do tego, po co tyle pisałem, mianowicie liczę na małą pomoc.
Otóż uważam camview-emc za standard, mam go zainstalowanego przy wszystkich maszynach.
Oprócz podglądu z kamery, mam też na frezarce takie przyciski, którymi mogę ustawić obrócony układ współrzędnych w dowolnym punkcie. Żadnych czarów tutaj nie ma, bo przecież jest G10 L2, cała wygoda polega na tym, że się najeżdża kamerką na pierwszy punkt, klika przycisk, najeżdża na drugi punkt, klika przycisk, a resztę formalności załatwia sprytny programik.
No i tutaj jest cały problem. Camview jest to strzsznie kapryśny programik, działa tylko na wybranych wersjach systemu i samego Linuxcnc, a nawet kiedy działa to lubi się zawieszać w najmniej oczekiwanym momencie. Zawsze jego instalacja po upgrade systemu była drogą przez mękę, a od pewnego czasu straciło to kompletnie sens, bo o ile podgląd z kamery da się upchnąć w oknie Linuxcnc, to przycisków już nie jestem w stanie zmusić do działania.
Najzwyczajniej mam dość tej syzyfowej pracy z kiepskim programem nie wspieranym od wielu lat.
Znalazłem inne rozwiązanie, które wcale nowe nie jest, ale wcześniej nie zwróciłem na nie uwagi.
Otóż sprawę podglądu kamery w karcie załatwia wpis w pliku ini :
EMBED_TAB_NAME = Camera
EMBED_TAB_LOCATION = ntb_preview
EMBED_TAB_COMMAND = mplayer -wid {XID} tv://
Jeśli podamy parametry mplayer -wid {XID} tv:// -vf rectangle=-1:2:-1:240,rectangle=2:-1:320:-1 (zamiast łapek jest dwukropek,minus,jeden,dwukropek), to dostaniemy krzyż jak w celowniku. Te cyferki "240" i "320" może być potrzeba zmienić w zależności od użytej kamery, ja u siebie musiałem dodać jeszcze opcję -vo gl2 , bo dostawałem sieczkę, czasem może być potrzebne wyspecyfikowanie urządzenia, na przykład -tv device=/dev/video2 , ale ogólnie to działa, a Mplayer nie jest hobby jednego zapaleńca i nie zostanie nagle porzucony.

Czyli problem podglądu kamery i celownika został rozwiązany.
Pozostaje kwestia zrobienia panelu użytkownika z odpowiednimi przyciskami.
Nie bardzo mam na to czas, a może ktoś byłby zainteresowany stworzeniem takiego rozwiązania.
Nawiasem mówiąc, jako osobny program, mógłby być używany także bez kamery, najeżdżać można czujnikiem, laserem, albo narzędziem, chodzi tylko o to żeby zamiast żmudnych obliczeń i sposobności do popełnienia kosztownego błędu, kliknąć dwa przyciski i mieć z głowy.
Przykładowo na plazmę rzucamy arkusz blachy jak popadnie, najeżdżamy na róg, klikamy pierwszy przycisk, najeżdżamy na brzeg, klikamy drugi przycisk, i możemy puszczać program, bo układ współrzędnych maszyny pokrywa się z układem współrzędnych ciętego arkusza. To tak jakby ktoś nie łapał o co chodzi, bo to znowu żadne czary, tylko rozwiązanie dość powszechnie stosowane.
Jeśli chodzi o same obliczenia, to też jest to trywialnie proste. Trzeba wykorzystać zmienne systemowe (http://linuxcnc.org/docs/2.5/html/gcode ... rameters_a).
Natomiast metodyka jest taka, że klikamy przyciski w dwóch punktach, pierwszy opowiada w USTAWIANYM układzie współrzędnych pozycji (X=0,Y=0), drugi (X>>0,Y=0) (może być też Y>>0,X=0, jeśli ktoś woli).
Wskazanym punktom odpowiadają niezerowe dodatnie wartości X i Y w układzie współrzędnych maszynowych, z których można wyliczyć wartość i kierunek wskazanego wektora.
Mówiąc obrazowo, mając dane dwa dowolne punkty w układzie współrzędnych maszynowych, możemy zbudować trójkąt prostokątny, w którym dwa boki będą równoległe do osi X i Y, a trzeci bok będzie odcinkiem pomiędzy wskazanymi punktami. Wtedy z funkcji trygonometrycznych da się wyliczyć kąt obrotu i wstawić do G10 L2.

A może ktoś się już z takim panelem spotkał ?
No bo przecież nie jest to tak odkrywcze, żeby podejrzewać że nikt tego wcześniej nie robił ...




drzasiek90
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 1
Posty: 1765
Rejestracja: 25 kwie 2016, 11:58
Lokalizacja: Jodlowa
Kontakt:

Re: Nietypowa instalacja Linuxcnc.

#2

Post napisał: drzasiek90 » 25 lis 2019, 10:59

Jeśli pomiar miałby być wykonywany narzędziem/czujnikiem to można do tego wykorzystać gotowca, analogicznie jak dodajemy do LinuxCNC przycisk pomiaru długości narzędzia. Przekopiować gotowca, w pliku wykonywalnym po wciśnięciu przycisku podmienić program na właściwy. Czy takie rozwiązanie nie wystarczy?

Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 7874
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: Nietypowa instalacja Linuxcnc.

#3

Post napisał: tuxcnc » 27 lis 2019, 14:09

Temat kamery i offsetów przeniosłem do wątku ustawianie-g10-l2-kamera-laserem-czujni ... 02946.html

Tutaj zrzut ekranu :
Obrazek

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „LinuxCNC (dawniej EMC2)”