Algorytmy interpolacji skokowej i ich implementacje

Oprogramowanie symulacyjne

Autor tematu
bmajkut
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 1
Posty: 284
Rejestracja: 02 lis 2012, 18:59
Lokalizacja: Wrocław

Algorytmy interpolacji skokowej i ich implementacje

#1

Post napisał: bmajkut » 07 mar 2015, 12:41

Witam,
już w kilku tematach pisałem, że chciałbym stworzyć własny mikroprocesorowy sterownik NC.
Aktualnie jestem na etapie analizy istniejących algorytmów interpolowania odcinków oraz łuków.
Znalazłem kilka opracowań w internecie, w google books nawet trzy ciekawe książki niestety tam jest ograniczenie co do ilości przeczytanych stron.
Jeden z algorytmów zaimplementowałem w języku C# i stworzyłem prostą aplikację która ma służyć wizualizacji działania algorytmu.
Obrazek
Algorytm interpoluje skokowo odcinek. Można regulować rozdzielczość. Teraz jeden skok w osi X lub Y to jedna jednostka, można zmniejszyć do 0.1 jednostki ale wtedy nie będzie widać przebiegu wygenerowanej ścieżki.
Wadą tego algorytmu wg mnie jest fakt że w jednym kroku poruszamy się tylko w jednej osi, a przecież w ploterze 2D czy 2,5D itd. można na raz wykonać skok w dwóch i więcej osiach i wtedy poruszamy się po skosie. To jest główny argument, by szukać czegoś lepszego. W trakcie poszukiwań natknąłem się na Algorytm Bresenhama, który służy do rasteryzacji krzywych płaskich. W swoim działaniu przewiduje on "poruszanie" się po skosie.
Czy ktoś zna jakieś bogate opracowania, książki cokolwiek gdzie są może opisane algorytmy które się wykorzystuje w takich zastosowaniach? A może powinienem kombinować i szukać własnej metody?

Kolejną kwestią bardzo ważną już na początku rozważań nad budową i zaprogramowaniem takiego sterownika są przyśpieszenia. Z zaimplementowaniem samego przyśpieszenia nie będzie większego problemu, ale problemem natomiast fakt że oba algorytmy dają w wyniku listę kroków które trzeba wykonać i w których osiach no i nie bardzo wiem co się dzieje w przypadku kiedy w jednej mam wygenerować taki przebieg kroków:
1; 1; 1; 1; 0; 0; 0; 1; 1; 1; 1; 0; 1; 0; 1; 0; - losowy przykład
Czy z przyśpieszeniem i zmianą prędkości mam wtedy do czynienia kiedy w jednym ciągu mam więcej niż jeden krok?
Jak to jest z różnymi prędkościami w dwóch osiach? Jak to ze sobą zgrać?
Z góry dzięki za wszelką pomoc



Tagi:

Wróć do „Oprogramowanie symulacyjne”