Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Программа управления роботом боксером.

Поиск

Данный программный код, размещенный на жестком диске записывается на 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.188.137.209 (0.007 с.)