Использование компьютерного трехмерного при разработке робототехнических моделирования систем

М. В. Красное: ИСПОЛЬЗОВАНИЕ КОМПЬКТЕРИОГО ТРЕХМЕРНОГО МОДЕЛИРОВАНИЯ ПРИ РАЗРАБОТКЕ РОБОТОТЕХНИЧЕСКИХ СИСТЕМ

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

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

ПЕРЕЧЕНЬ ССЫЛОК

1. Дубровин В.И., Степаненко A.A., Чузов В.В. Программный комплекс медицинской диагностики // Физика и радиоэлектроника в медицине и биотехнологии: Материалы iii международной научно-технической конференции PRMB'98. - Владимир: ВлГУ,1998, С. 251-252

2. Дубровин В.И., Романова Л.Ю., Верховецкая И.Л., Дейнега Р.В. Автоматизированная система анализа биологических ритмов // Физика и радиоэлектроника в медицине и биотехнологии: Материалы iii международной научно-технической конференции PRMB'98. - Владимир: ВлГУ,1998,С. 252-253

3. Кантор В.Я. и др. Нелинейная кардиобиомеханика левого желудочка. М.: Наука, 1994. - 208 с.

4. Дубров/н В., Романова Л. Програмна реал1зац1я математичних моделей в кардюбюмеханиш // Досв1д розробки i застосування САПР в мтроелектроници Матер1а-ли п'ято!' мiжнародноí науково-техшчно!' конференцп CADSM'99. - Л^в, Державний ушверситет "Л^вська полтехшка", 1999, С.191.

5. Турчак С.В. Основы численных методов. - М.: Наука., 1989. - 278 с.

6. Подбельский В.В. Язык С++. М.: Финансы и статистика. 1996. - 556 с.

7. Сван Т. Освоение Borland C++ 5. К.: Диалектика.,1996. -305 с.

8. Нортон П., Йао П. Программирование на Borland C++ в среде Windows. К.: Диалектика., 1993. - 456 с.

Надшшла 13.09.99

УДК 681.3.069

ИСПОЛЬЗОВАНИЕ КОМПЬЮТЕРНОГО ТРЕХМЕРНОГО МОДЕЛИРОВАНИЯ ПРИ РАЗРАБОТКЕ РОБОТОТЕХНИЧЕСКИХ СИСТЕМ

М. В. Краснов

В статье рассмотрен опыт разработки CAD-системы для моделирования робототехнических систем, раскрываются технические вопросы использования графической библиотеки OpenGL в среде Delphi.

In the article considered experience of development CAD-systems for robot system modeling, are revealled technical aspects of using a graphic library OpenGL in Delphi ambience.

Компьютерное моделирование позволяет уменьшить сроки разработки робототехнических систем и удешевить процесс проектирования, поскольку современный уровень развития компьютерной техники позволяет до материального воплощения проектируемой системы моделировать ее работу. Инструментом, позволяющим получить точную модель робототехнической системы, является трехмерное (3D) моделирование, благодаря которому разработчик имеет идентичную копию разрабатываемой установки на экране монитора.

В настоящее время отрасль компьютерного 3D моделирования переживает бурный подъем вследствие массовой доступности инструментов трехмерной графики -современный персональный компьютер среднего класса обладает ресурсами, позволяющими в реальном времени моделировать поведение сложных систем. Тем не менее, в робототехнической отрасли пока имеются лишь единичные примеры промышленного использования 3D

моделирования.

Задачей данной работы является разработка системы автоматизированного проектирования автоматов установки уплотнений, реалистично моделирующей ее работу и позволяющей проектировщику автоматов определять оптимальные параметры системы применительно к конкретному заданию на проектирование.

К разрабатываемой САБ-системе проектирования автоматов установки уплотнений предъявлены следующие технические требования:

- низкая требовательность системы к аппаратным ресурсам компьютера - система должна функционировать на персональных компьютерах среднего класса с наиболее распространенной конфигурацией;

- размеры системы должны быть минимальными;

- легкая переносимость - система для своего функционирования не должна требовать установки каких-либо дополнительных программных средств, кроме операционной системы.

Функциональные требования заключаются в том, что система должна позволять:

- задавать различные законы движения элементов исследуемой системы;

- исследовать процессы взаимодействия элементов при жестких и податливых ударах;

- устанавливать оптимальные режимы работы автомата;

- определять и устанавливать адаптивные средства доориентации;

- определять предельные углы перекосов и относительного смещения осей или соединяемых деталей.

Наиболее распространенной операционной системой сегодня является Windows 9X, установленная на большинстве персональных компьютеров, поэтому эта операционная система взята в качестве платформы разработки.

В состав операционной системы Windows входят модули графической библиотеки OpenGL, открывающей разработчику доступ к самым совершенным технологиям компьютерной графики и ставшей графическим стандартом для CAD-систем.

Эта графическая библиотека взята за основу при разработке CAD-системы проектирования автоматов по установке металлизированных уплотнений и сопрягаемых деталей. OpenGL поставляется в составе операционной системы, прямым использованием ее достигается независимость разрабатываемой системы от дополнительных программных средств. Разработанная система является полноценной программой, а не аними-рованным изображением, способна реагировать на действия пользователя и менять свое поведение по ходу работы. При этом получаемые построения отличаются высоким качеством изображения.

Графическая библиотека OpenGL поставляется в виде динамических библиотек, поэтому использование ее является языковонезависимым, функции DLL-библиотек доступны в любой среде программирования. Автором разработки в качестве инструмента разработки взята популярная система программирования Delphi, располагающая высокоскоростным компилятором, что оптимально влияет на сроки разработки. Поскольку литература и справочные материалы по использованию OpenGL основываются на использовании языка C++, автором самостоятельно разработана технология подключения и использования этой графической библиотеки в проектах системы программирования Delphi.

Основной модуль системы предназначен для создания окна приложения, основы графических построений. Для получения наивысших показателей скорости работы и уменьшения размера откомпилированного кода приложение создается с использованием низкоуровневых операций, основанных на функциях Windows API. Благодаря

этому размер откомпилированного кода удалось уменьшить минимум в 6 раз по сравнению с кодом, основанном на визуальных средствах Delphi.

Для увеличения скоростных характеристик работы приложения приоритет процесса приложения устанавливается максимальным. Приложение запускается в полноэкранном режиме, традиционном для модулей, активно использующих графику.

Приведенная ниже программа иллюстрирует используемые приемы и может быть использована другими разработчиками для собственных нужд. Программу необходимо записать в файл OpenGLMin.dpr и откомпилировать в среде Delphi версии не ниже третьей (подключается модуль OpenGL). Откомпилированный модуль необходимо запускать вне среды Delphi. Программа окрашивает окно приложения, используя функции OpenGL.

Разработанная автором система реализована на основе проиллюстрированных здесь методов. Благодаря их использованию основной модуль системы имеет размер менее 60 КБайт, что невозможно добиться при использовании традиционных для визуальных систем программирования RAD-технологий.

После запуска приложения на экране появляется высококачественное изображение трехмерной модели автомата установки уплотнений. Изображение изменяется с течением времени: происходит вращение рабочего стола, подается деталь, устанавливается уплотнение и т.д.

На рис. 1 приведен один из кадров получаемого "фильма".

Рисунок 1 - Иллюстрация работы схемы

78

"Радюелектрошка, шформатика, управлшня" № 2, 1999

М. В. Красное: ИСПОЛЬЗОВАНИЕ КОМПЬКТЕРИОГО ТРЕХМЕРНОГО МОДЕЛИРОВАНИЯ ПРИ РАЗРАБОТКЕ РОБОТОТЕХНИЧЕСКИХ СИСТЕМ

PROGRAMM OpenGLMin;

MèHèM3AbH3fl OpenGL - nporp3MM3 ****************

USES

Messages, Windows, OpenGL; CONST

AppName = 'OpenGL_Min'; VAR

Window : HWnd; Message : TMsg; WindowClass : TWndClass; dc : HDC; hrc : HGLRC;

// данные формата пикселей

// заполнение полей структуры нулем

// размер структуры // номер версии

// битовые флаги // режим для изображения цветов // число битовых плоскостей буфера цвета // размер буфера глубины (ось 2) // тип плоскости

// запрос системе о формате // установление формата

// контекст окна // сообщения // класс окна // контекст устройства

// контекст воспроизведения // для контекста воспроизведения необходимо установить формат пикселей PROCEDURE SetDCPixelFormat; var

pfd : TPixelFormatDescriptor; nPixelFormat : Integer; Begin

FillChar(pfd, SizeOf(pfd), 0); With pfd do begin

nSize := sizeof (TPixelFormatDescriptor); nVersion := 1;

dwFlags := PFD_DRAW_TO_WINDOW or

PFD_SUPPORT_OPENGL; iPixelType := PFD_TYPE_RGBA; cColorBits := 16; cDepthBits := 32; iLayerType := PFD_MAIN_PLANE; end;

nPixelFormat := ChoosePixelFormat (dc, @pfd); SetPixelFormat (dc, nPixelFormat, @pfd); End;

// оконная функция

function WindowProc (Window : HWnd; Message, WParam : Word;

LParam : LongInt) : LongInt; stdcall; Begin case Message of

wm_Create: // создание окна

begin

// окно - максимизировать

SendMessage(Window, WM_SYSCOMMAND, SC_MAXIMIZE, 0);

dc := GetDC (Window); // получить контекст устройства

SetDCPixelFormat; // установить формат пикселей

hrc := wglCreateContext (dc); // создать контекст воспроизведения OpenGL

end;

wm_Paint: // рисование окна

begin

wglMakeCurrent (dc, hrc); // установить текущий контекст воспроизведения

функции графики OpenGL glClearColor (0.75, 0.5, 0.5, 1.0); // опредить цвет фона

glClear (GL_COLOR_BUFFER_BIT); // установить цвет фона

wglMakeCurrent (dc, 0); // удалить контекст воспроизведения

end;

wm_Destroy : PostQuitMessage (0); // закрытие приложения

end; // case

WindowProc := DefWindowProc (Window, Message, WParam, LParam); End; BEGIN

// приоритет процесса - наивысший

SetPriorityClass (GetCurrentProcess(), HIGH_PRIORITY_CLASS); FillChar(WindowClass, SizeOf(WindowClass), 0); WindowClass.lpfnWndProc := @WindowProc; WindowClass.lpszClassName := AppName;

RegisterClass (WindowClass); Window := CreateWindow (AppName, AppName, ws_Visible or ws_PopUp, 0, 0, 0, 0, 0, 0, HInstance, nil); ShowWindow (Window, CmdShow); UpdateWindow (Window); While GetMessage (Message, 0, 0, 0) do begin

TranslateMessage (Message); DispatchMessage (Message); end;

END.

// регистрация класса окна // создание окна // окно без рамки и без границ

// отрисовка окна

// цикл обработки сообщений

Для ускорения отрисовки использована технология наложения текстуры - вместо прорисовки повторяющихся изображений прокладок на изображение цилиндра накладывается растровое изображение.

Пользователь имеет возможность задавать оптические свойства материала деталей автомата, выбирать точку зрения, из которой осуществляется построение видового экрана, рассматривать поведение системы с произвольной точки зрения. Также у пользователя имеется возможность произвольно задавать пространственные, цветовые и оптические характеристики источника света. При необходимости установленные значения параметров системы записываются в файл и при следующем сеансе работы системы считываются - изображение отрисовывается в удобном для пользователя режиме.

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

Схема на рис. 2 иллюстрирует структуру программного комплекса.

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

Для сокращения времени проектирования системы разработан инструментарий генерации ОрепСЬ-про-грамм, позволяющий по каркасной модели объектов автоматически генерировать код подпрограммы, подклю-

чаемый в основную программу проекта. Пакет программ на языке AutoLisp позволяет пользователю выбрать необходимые примитивы чертежа, созданные в AutoCAD, и автоматически генерировать OpenGL-программу для построения соответствующего полигона. Это позволяет визуально проектировать узлы и детали системы и планировать их взаимное пространственное расположение, что значительно ускоряет процесс разработки. Для получения информации можно связаться с автором (pksapr@kc.ru).

Ос но i: ные мо длг.тти с нс тины

Исполнимый модуль

• создание окна при пожени^

• гиодитаченн» библиотек Open&L32DLL и И,Ш2.DLL;

• шдншчашб библиотеки biiiRCDLL;

• обработка coo6ii*HHSwm_Timer -изменение параметров системы с течением Еременннперернсожа мена;

• обработка coo6iitHHEwm_Paint-перерасчет тфостранственного распо поженил 0бъеЕГ0Е и сгрис ожа нового с осто-яниямоде ПЕщуетлой системы;

• реакцияна дейггЕнягюпьзоЕагеля -обработка с ообщенни, с Еязаннык с клавиатур ой и мышьв .

фшпгшиы britRC

ЁнЁПМ0Т№1

пространственные характеристики источника света -координаты нкшравпенне, оптические кар акте рис тики источника светаи детален моде гаф^емой систему процед>ра инициализации источника света; процедура уиган» ней значений характеристик источника СЕе-таи деталей системы е новые значения.

Мщуш,неБпняншранафункцшншжкп. см юты

ДннИ|1П(( к и Енёпкотаса AddFirm * диалоговые omi ееод4-еыеод4 ггаретгат-рови хараетергатакснсгемь!; * процедуры контроля ееоднмык данных; Днн1Г|1тш к и ¿нй пн(| т в: i Hdp * mp ах очный материал о работе с at столой; * диалоговое окно "About?'.

Рисунок 2 - Блочная схема системы

В продолжение работы предполагается внесение возможности моделирования поломок и изменения габаритов узлов системы. Предполагается подключение графического редактора для снятия непосредственно с чертежа проектируемого изделия габаритных параметров узлов системы.

Иадшшла 05.04.99

80

"Радюелектронжа, ¡нформатика, управлшня" № 2, 1999