Jump to content

    

Rst7

Модераторы
  • Content Count

    4544
  • Joined

Community Reputation

0 Обычный

About Rst7

  • Rank
    Йа моск ;)
  • Birthday 12/08/1973

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

25946 profile views
  1. Конечно. Заводите у блока N флагов broadcast (N - количество портов). Порт, в который пришел широковещательный пакет, выставляет все флаги в 1, кроме собственного, и засовывает этого номер блока в fifo всем остальным портам. Каждый порт после отправки содержимого блока сбрасывает в 0 только флаг, соответствующий своему номеру и проверяет, если все флаги стали равны 0, то отправляет блок в список свободных. Если не все флаги равны 0, то с блоком ничего не делается. Освободит его последний, кто его передал.
  2. Moderator: К сожалению, кое-кто не внял предупреждению. R/O на неделю.
  3. Moderator: Посты с офтопиком (а сравнение производительности в данной теме - офтопик) убраны. Потрудитесь соблюдать правила, ибо в следующий раз будут наказания.
  4. Уважаемый, у Вас тоже явная проблема в общении. И бан в гугле выписан, как я посмотрю. И во внимательности и вообще в способности ориентироваться в RFC, относящихся к TCP, например. Потому что есть еще RFC1122 "Requirements for Internet Hosts -- Communication Layers". Ну и так желаемый Вами пруф - https://tools.ietf.org/html/rfc1122#page-101 И вообще там раздел 4.2 говорит очень многие вещи, которых нет в RFC793.
  5. Причем тут протокол? Еще раз. а) Абсолютное большинство современных MIDI-гитар отдают ноты на отдельных струнах, используя номер канала. Без этого нет смысла по нынешним временам. б) Современные VST-синтезаторы (да и железные синтюки тоже) умеют работать, например, в режиме "использовать данные из таких-то каналов". Но при этом никто не мешает на другие каналы повесить другой синтезатор/семплер. в) MIDI-маршрутизация в современных DAW весьма разнообразна, и жесткие привязки Mono/Poly/Omni - это никому не нужно.
  6. Не надо понтов. Причем тут Mono, если дальше Вы по надобности действуете - можно, например, в DAW повесить один синтюк на три верхних струны, другой - на три нижних.
  7. А текст по ссылке Вы читали? Это такая же вырожденная точка. Когда на их рисунке внешняя рамка (outer gimbal) близка к 90 градусам, то нужен очень быстрый переброс 4й рамки для устранения блокировки. Это как раз когда cos A(outer) становится близок к 0.
  8. Что-то чем дальше в лес, тем вообще какой-то туман с этой четвертой осью. А можете вообще ссылку на какое-нибудь описание предоставить (именно про четырехосвевые дела с удержанием в перпендикуляре к рамке 2)? А то я что-то совсем разучился в гугл, ничего не могу найти.
  9. У Вас и с тремя рамками есть возможность двигаться в любом направлении. Три угла Эйлера (суть положения трех рамок) однозначно определяют положение тела в пространстве. Еще раз, не путайте проблему блокировки гироскопа с проблемой позиционирования рамок. Блокировка гироскопа из-за того, что моменты вращения он сам создает, и на наружные рамки они передаются через внутренние, а значит в вырожденных точках там просто момент не может передаться. А у Вас - собственное позиционирование, каждую рамку Вы крутите отдельно. Можно крутить из любого положения в любое без проблем и без всяких четвертых рамок.
  10. Да ничего Вы не теряете. Просто в этом случае положение одной рамки не оказывает влияния на положение тела. Как только Вы выходите из этой вырожденной точки, то положение этой рамки опять определяет положение тела. Все. Если Вы попадете в вырожденную точку, покрутите рамку, которая не влияет на тело, а потом уйдете из точки, то Вам придется быстро вернуть эту рамку в нужное положение.
  11. Да. Но что-то у меня теперь вообще сомнения в том, что четвертая рамка Вам нужна. Дело в том, что состояние gimbal lock - оно актуально только тогда, когда вращающие моменты приложены к внутреннему телу. Если Вы сами вращаете рамки, то вы можете установить их в любое положение, никакой блокировки не произойдет. Вопрос только в том, что при приближении к вырожденным точкам (там где ориентация одной из рамок может быть произвольной) непонятно, куда крутить эту самую рамку. Ну так ответ простой - не крутить ее никуда, когда оба аргумента функции atan2 при вычислении угла становятся очень близки к 0 - просто в этом месте прекращаете управлять этим мотором.
  12. Ладно, я так понял, у Вас там не гироскоп внутри, а наоборот Вы сами хотите вращать произвольно внутреннее тело. Тогда все с точностью до наоборот. Из нужной Вам DCM, определяющей положение тела в пространстве относительно Земли, вы получаете угол a2. Мотор a4 устанавливаете a4=a2+pi/2. Затем DCM поворачиваете на угол pi/2-a2. Потом достаете из повернутой DCM углы a1 и a3, они и будут нужными углами соответствующих моторов. А мотор a2 устанавливаете в pi/2.
  13. Еще раз. У Вас есть 4 энкодера. Углы a1, a2, a3, a4. a4 - это угол самой внешней рамки. Мотором вы удерживаете эту рамку, чтобы A2 был равен 90 градусов. Потом преобразуете углы a1, a2, a3 в обычную матрицу поворота - https://ru.wikipedia.org/wiki/Матрица_поворота#Выражение_матрицы_поворота_через_углы_Эйлера И затем поворачиваете ее вокруг последней оси, на угол a4 (именно поэтому там тоже нужен энкодер). a2 можно не измерять, а заменить на 90 градусов, если Вы уверены в точности удержания. Но лучше измерить.
  14. Если в этом варианте, крутя мотором самые наружные оси Вы будете удерживать 90 градусов в отмеченных осях, то вроде будет так, как надо: При любом повороте второй от наружной рамки угол будет определяться только положением наружной рамки. Вот сейчас у Вас на картинке угол в отмеченных осях - 0, а надо крутить мотором наружную рамку, пока не станет 90. И все вроде. Энкодер, PID-регулятор, мотор - и вперед ;)