智能机器人课程设计报告.docx
《智能机器人课程设计报告.docx》由会员分享,可在线阅读,更多相关《智能机器人课程设计报告.docx(9页珍藏版)》请在冰豆网上搜索。
智能机器人课程设计报告
天津师范大学
计算机与信息工程学院
课程设计报告
课程名称:
机器人设计
设计题目:
专业:
信息工程
班级:
08
(1)班
组别:
学生姓名:
吴雪萍学号:
08509205
起止日期:
2011年3月1日~2011年7月1日
指导教师:
刘岩恺梁景莲
同组人员:
课程设计题目
机器人设计实验
姓名
吴雪萍
学号
08509205
班级
08信息
(1)班
班级
专业
信息工程
组别
组长
组员
指导教师
刘岩恺梁景莲
课程设计目的
设计家庭组机器人和机器人行走
课程设计环境
Vc++
课程设计任务和要求
用C++语言设计一个颜色识别的程序和一个机器人行走程序
课程设计内容描述:
1.绪论
通过学习机器人设计2课程,学会了家庭组机器人和足球机器人的一些理论知识。
了解了机器人方向识别,动手调试了全景摄像头和前置摄像头,设置了场地、球门、白线、足球等的颜色数值。
2.颜色识别的产生
结合梁老师给的人脸识别程序,通过改变人脸模型建立颜色识别程序。
3.平台的选择及搭建
根据刘老师给的参考资料,首先安装了DirectX9.0SDK和VisualC++软件,然后一步步的按照老师所给的步骤,先建立基本界面,接着编制串口通讯控制机器人的程序,读取距离传感器信息等,最后得出了机器人行走程序如下。
课程设计源程序:
机器人行走
//VoyTestDlg.cpp:
implementationfile
//
#include"stdafx.h"
#include"VoyTest.h"
#include"VoyTestDlg.h"
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//CAboutDlgdialogusedforAppAbout
classCAboutDlg:
publicCDialog
{
public:
CAboutDlg();
//DialogData
//{{AFX_DATA(CAboutDlg)
enum{IDD=IDD_ABOUTBOX};
//}}AFX_DATA
//ClassWizardgeneratedvirtualfunctionoverrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupport
//}}AFX_VIRTUAL
//Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg:
:
CAboutDlg():
CDialog(CAboutDlg:
:
IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
voidCAboutDlg:
:
DoDataExchange(CDataExchange*pDX)
{
CDialog:
:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg,CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
//Nomessagehandlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//CVoyTestDlgdialog
CVoyTestDlg:
:
CVoyTestDlg(CWnd*pParent/*=NULL*/)
:
CDialog(CVoyTestDlg:
:
IDD,pParent)
{
//{{AFX_DATA_INIT(CVoyTestDlg)
m_nPort=0;
//}}AFX_DATA_INIT
//NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32
m_hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
voidCVoyTestDlg:
:
DoDataExchange(CDataExchange*pDX)
{
CDialog:
:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CVoyTestDlg)
DDX_Text(pDX,IDC_PORT,m_nPort);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CVoyTestDlg,CDialog)
//{{AFX_MSG_MAP(CVoyTestDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_OPEN,OnOpen)
ON_BN_CLICKED(IDC_FORWARD,OnForward)
ON_BN_CLICKED(IDC_BACKWARD,OnBackward)
ON_BN_CLICKED(IDC_TURELEFT,OnTureleft)
ON_BN_CLICKED(IDC_TURERIGHT,OnTureright)
ON_BN_CLICKED(IDC_BRAKE,OnBrake)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//CVoyTestDlgmessagehandlers
BOOLCVoyTestDlg:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
//Add"About..."menuitemtosystemmenu.
//IDM_ABOUTBOXmustbeinthesystemcommandrange.
ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX<0xF000);
CMenu*pSysMenu=GetSystemMenu(FALSE);
if(pSysMenu!
=NULL)
{
CStringstrAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if(!
strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);
}
}
//Settheiconforthisdialog.Theframeworkdoesthisautomatically
//whentheapplication'smainwindowisnotadialog
SetIcon(m_hIcon,TRUE);//Setbigicon
SetIcon(m_hIcon,FALSE);//Setsmallicon
//TODO:
Addextrainitializationhere
returnTRUE;//returnTRUEunlessyousetthefocustoacontrol
}
voidCVoyTestDlg:
:
OnSysCommand(UINTnID,LPARAMlParam)
{
if((nID&0xFFF0)==IDM_ABOUTBOX)
{
CAboutDlgdlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog:
:
OnSysCommand(nID,lParam);
}
}
//Ifyouaddaminimizebuttontoyourdialog,youwillneedthecodebelow
//todrawtheicon.ForMFCapplicationsusingthedocument/viewmodel,
//thisisautomaticallydoneforyoubytheframework.
voidCVoyTestDlg:
:
OnPaint()
{
if(IsIconic())
{
CPaintDCdc(this);//devicecontextforpainting
SendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(),0);
//Centericoninclientrectangle
intcxIcon=GetSystemMetrics(SM_CXICON);
intcyIcon=GetSystemMetrics(SM_CYICON);
CRectrect;
GetClientRect(&rect);
intx=(rect.Width()-cxIcon+1)/2;
inty=(rect.Height()-cyIcon+1)/2;
//Drawtheicon
dc.DrawIcon(x,y,m_hIcon);
}
else
{
CDialog:
:
OnPaint();
}
}
//Thesystemcallsthistoobtainthecursortodisplaywhiletheuserdrags
//theminimizedwindow.
HCURSORCVoyTestDlg:
:
OnQueryDragIcon()
{
return(HCURSOR)m_hIcon;
}
voidCVoyTestDlg:
:
OnOpen()
{
//TODO:
Addyourcontrolnotificationhand