Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Программа управления роботом боксером.↑ ⇐ ПредыдущаяСтр 5 из 5 Содержание книги Поиск на нашем сайте
Данный программный код, размещенный на жестком диске записывается на MicrosoftVisualBasicExpress 2010. Arduinostart ImportsSystem ImportsSystem.IO.Ports 'Arduino end
ImportsSystem.Text ImportsMicrosoft.Research.Kinect.Nui Imports Coding4Fun.Kinect.Wpf
NamespaceSkeletalTracking
''' <summary> ''' Interaction logic for MainWindow.xaml ''' </summary> PartialPublicClassMainWindow Inherits Window
' Arduino start PublicShared _continue AsBoolean PublicShared _serialPortAsSerialPort PublicSharedScreenMaxXAsInteger = 180 PublicSharedScreenMaxYAsInteger = 180
' Arduino end
PublicSubNew()
InitializeComponent()
EndSub
'Kinect Runtime PrivatenuiAsNew Runtime
PrivateSubWindow_Loaded(ByVal sender AsObject, ByVal e AsRoutedEventArgs)
'Initialize to do skeletal tracking nui.Initialize(RuntimeOptions.UseSkeletalTracking)
' #Region "TransformSmooth" 'Must set to true and set after call to Initialize nui.SkeletonEngine.TransformSmooth = True
'Use to transform and reduce jitter Dim parameters = NewTransformSmoothParametersWith {.Smoothing = 0.8F,.Correction = 0.3F,.Prediction = 0.4F,.JitterRadius = 1.0F,.MaxDeviationRadius = 0.5F}
nui.SkeletonEngine.SmoothParameters = parameters
' #End Region
'add event to receive skeleton data AddHandlernui.SkeletonFrameReady, AddressOfnui_SkeletonFrameReady
'' Arduino start ArduinoSetSerial() ArduinoOpenSerial() ' Arduino end EndSub
PrivateSubnui_SkeletonFrameReady(ByVal sender AsObject, ByVal e AsSkeletonFrameReadyEventArgs)
DimallSkeletonsAsSkeletonFrame = e.SkeletonFrame
'get the first tracked skeleton Dim skeleton AsSkeletonData = (_ From s InallSkeletons.Skeletons _ Wheres.TrackingState = SkeletonTrackingState.Tracked _ Select s).FirstOrDefault()
'TechBitar: The original Microsoft code was missing the "Not" which resulted in crashes. IfNot skeleton IsNothingThen 'set position
SetEllipsePosition(headEllipse, skeleton.Joints(JointID.Head), JointID.Head) SetEllipsePosition(leftEllipse, skeleton.Joints(JointID.HandLeft), JointID.HandLeft) SetEllipsePosition(rightEllipse, skeleton.Joints(JointID.HandRight), JointID.HandRight) SendToArduino(skeleton.Joints(JointID.HandLeft), JointID.HandLeft) SendToArduino(skeleton.Joints(JointID.HandRight), JointID.HandRight) EndIf
EndSub
PrivateSubSetEllipsePosition(ByVal ellipse AsFrameworkElement, ByVal joint As Joint, ByVal JID AsJointID)
DimscaledJoint = joint.ScaleTo(ScreenMaxX, ScreenMaxY, 0.5F, 0.2F)
Canvas.SetLeft(ellipse, scaledJoint.Position.X) Canvas.SetTop(ellipse, scaledJoint.Position.Y)
EndSub
PrivateSubSendToArduino(ByVal joint As Joint, ByVal JID AsJointID)
DimscaledJoint = joint.ScaleTo(ScreenMaxX, ScreenMaxY, 0.5F, 0.2F)
If JID = JointID.HandRightThen HRKinectX.Text = scaledJoint.Position.X HRKinectY.Text = scaledJoint.Position.Y
EndIf
If JID = JointID.HandLeftThen HLKinectX.Text = scaledJoint.Position.X HLKinectY.Text = scaledJoint.Position.Y EndIf
' Arduino start ArduinoSendByte(scaledJoint.Position.X, scaledJoint.Position.Y, 1, JID) ' Arduino end
EndSub
PrivateSubWindow_Closed(ByVal sender AsObject, ByVal e AsEventArgs)
'Cleanup nui.Uninitialize()
EndSub
PrivateSubArduinoSetSerial() DimArduinoComAsString = ComPort.text _serialPort = NewSerialPort() _serialPort.PortName = "COM" + Trim(ComPort.text) _serialPort.BaudRate = 9600 ' _serialPort.Parity = 0 _serialPort.DataBits = 8 ' _serialPort.StopBits = 1 _serialPort.Handshake = 0 _serialPort.ReadTimeout = 500 _serialPort.WriteTimeout = 500
EndSub PrivateSubArduinoOpenSerial() IfNot _serialPort.IsOpenThen _serialPort.Open() Else MsgBox("ARDUINO: SERIAL PORT CANNOT BE OPENED") EndIf _continue = True EndSub
PrivateSubArduinoCloseSerial() If _serialPort.IsOpenThen _serialPort.Close() EndIf EndSub
PrivateSubArduinoSendByte(ByValkinect_xAsSingle, ByValkinect_yAsSingle, ByValkinect_zAsSingle, ByValkinect_jAsInteger) Dim x, y, z, j AsByte Dimsx, syAsSingle DimHowOftenAsInteger ComStatus.Text = "NA"
x = Math.Abs(CByte(kinect_x)) y = Math.Abs(CByte(kinect_y)) z = CByte(kinect_z) j = CByte(kinect_j) x = x DimArduinoBuffer() AsByte = {x, y, z, j} If _serialPort.IsOpenThen ComStatus.Text = "OK" _serialPort.Write(ArduinoBuffer, 0, ArduinoBuffer.Length) EndIf EndSub
EndClass
EndNamespace
Заключение В ходе бакалаврской работы была разработка система управления робота для тренировок по боксу. В систему управления вошли: WAFER-OT-Z670, KinectforWindows, ArduinoUNO. Были выполнены следующие задачи: Был проведен поиск аналогов, в данной сфере робототехнике. Найденные аналоги были изучены и проанализированы по мере имеющейся информации.Разработка алгоритма работы системы была разработана и выполнена в программном обеспечении MicrosoftVisio.Разработка функциональной схемы была разработана и выполнена в программном обеспечении MicrosoftVisio. После нахождения и анализа аналогов был проведен сравнительный анализ систем управления, в ходе которой, выяснились плюсы и минусы данной бакалаврской работы. В ходе выполнения бакалаврской работы, был проведен сравнительный анализ встраиваемых одноплатных компьютеров, который показал правильность выбора WAFER-OT-Z670.Была также разработана и построена структурная схема системы управления в программе MicrosoftVisio. Также, было необходимо разработать технологический процессситемы управления. Выполнение данной задачи происходило в программе MicrosoftVisio. После разработки, технологический процесс был подробно описан. Создание 3d модели конструкции для Kinect было выполнено в программе KOMPAS 3D.
Список литературы 1. Горелик А.П., Методы распознавания. - М.: Высшая школа, 2008 г. 2. Ким Н.В., Обработка и анализ изображений в системах технического зрения. – М.: МАИ, 2009 г. 3. Хорн Б., Минский М., Психология машинного зрения/Пер. с англ. – М.: Мир, 2007 г. 4. Новейшие тенденции и перспективы развития систем машинного зрения. 5. Системы технического зрения -http://www.microsoft.com/ru-ru/default.aspx. 6. Обзор kinect for windows sdk [Электронный ресурс] // Режим доступа: http://habrahabr.ru/post/151131./ 7. Обзор kinect for windows sdk [Электронный ресурс] // Режим доступа: http://habrahabr.ru/post/150955/. 8. Ким Н.В., Обработка и анализ изображений в системах технического зрения. – М.: МАИ, 2009 г. 9. Клевалин, В. А. Системы технического зрения в промышленной робототехнике / В. А. Кле- валин, А. Ю. Поливанов // Мехатроника, автоматизация, управление. – 2010. – № 9. 10. Клевалин, В. А. Цифровые методы распознавания в системах технического зрения про- мышленных роботов / В. А. Клевалин, А. Ю. Поливанов // Мехатроника, автоматизация, управле- ние. – 2008. – № 5. 11. РЕФЕРАТ на тему:Процесори фірми Microchip. [Электронный ресурс] // Режим доступа: http://rushkolnik.ru/docs/10/index-18528.html. 12. Универсальная научно-популярная энциклопедия «Кругосвет» 1997-2015 [Электронный ресурс] // Режим доступа: http://www.krugosvet.ru /enc/ nauka_ i_ tehnika/matematika/ALGORITM.html. 13. Алгоритмы и программы структурного метода обработки данных / В.В. Александров, Н.Д. Горский. – Ленинград: Наука, 1983. 208 с. 14. 3d with kinect / J. Smisek, M. Jancosek, T. Pajdla // Computer vision workshops (ICCV Workshops), 2011 IEEE International conference on, 2011, P. 1154 – 1160. 15. KinectFusion: real-time 3D reconstruction and interaction using a moving depth camera / S. Izadi, D. Kim, O. Hilliges, D. Molyneaux, R. Newcombe, P. Kohli, J. Shotton, S. Hodges, D. Freeman, A. Davison, A. Fitzgibbon // UIST '11 Proceedings of the 24th annual ACM symposium on user interface software and technology, 2011, P. 559 – 568. RGB-D mapping: using depth cameras for dense 3d modeling of indoor environments / P. Henry, M. Krainin, E. Herbst, X. Ren, D. Fox // Proc. of international symposium on experimental robotics (ISER), 2010, P. 15. 16. Tracking-based non-parametric background-foreground classification in a chromaticity-gradient space / C. Cuevas, N. Garcia // Image Processing (ICIP), 2010 17th IEEE International Conference on, 2010, P. 845 – 848. 17. Learning OpenCV: computer vision with the OpenCV library / G. Bradski, A. Kaehler // O'Reilly Media, 2008, P. 580. 18. Разработка и исследование методов захвата, отслеживания и распознавания динамических жестов [Текст]: автореф. дис. … канд. техн. наук / А.Н. Алфимцев. – Москва: МГТУ им. Н.Э. Баумана, 2008. – 18 с. 19. Hand gesture recognition with depth images: A review / J. Suarez, R. Murphy // RO-MAN, 2012 IEEE, P. 411 – 417, 2012. 20. Интерфейс бесконтактного человеко-машинного взаимодействия на основе данных сенсора дальномера. [Электронный ресурс] // Режим доступа: http://www.ugatu.ac.ru/assets/files/documents/dissov/07/2014/KotyuzhanskiiLA/Kotyuzhanskii.pdf#1.
|
||||
Последнее изменение этой страницы: 2016-04-21; просмотров: 187; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.221.66.64 (0.007 с.) |