机器人路径规划演示平台设计 下载本文

内容发布更新时间 : 2024/5/9 13:15:24星期一 下面是文章的全部内容请认真阅读。

山东建筑大学毕业论文

}

机器人控件颜色设置:

void CRobotViewView::showRobotPoint(int x,int y) { // }

CDC *pDC=GetDC(); CBrush brush;

brush.CreateSolidBrush(RGB(112,207,119)); pDC->SelectStockObject(brush); pDC->SelectObject(brush); pDC->Ellipse(x-15,y-15,x+15,y+15);

运行程序,如图图3.5所示:

图3.5 机器人的界面显示

4. 目标点设置 程序实现:

void CMainFrame::OnGoalPoint() { }

// TODO: Add your command handler code here point=3;

- 28 -

山东建筑大学毕业论文

void CMainFrame::OnUpdateGoalPoint(CCmdUI* pCmdUI) { }

// TODO: Add your command update UI handler code here pCmdUI->Enable(flag);

目标点颜色设置:

void CRobotViewView::showGoalPoint(int x, int y) {

CDC *pDC=GetDC(); // }

CBrush brush;

brush.CreateSolidBrush(RGB(254,247,107)); pDC->SelectStockObject(brush); pDC->SelectObject(brush); pDC->Ellipse(x-15,y-15,x+20,y+15);

该程序段的作用就是设置目标点的位置和目标点颜色的设置,有彩色颜色的设置可知,目标点的颜色为黄色。

程序运行,如图3.6所示:

- 29 -

山东建筑大学毕业论文

图3.6 目标点的界面显示

5. 路径规划演示平台运行 相关程序段:

void CMainFrame::OnBegin()

{ CRobotViewApp* myapp=(CRobotViewApp*)AfxGetApp(); CMainFrame* mainframe=(CMainFrame*)myapp->m_pMainWnd; // }

CBlockView* treeview=(CBlockView*)mainframe->m_wndSplitter_Horizontal.GetPane(0,0); CRobotViewView* robotview=(CRobotViewView*)mainframe->m_wndSplitter_Vertical.GetPane(0,0); treeview->MToControl(); Pathplan *path=new Pathplan(); path->plan(M);

path->setRobotPos(robotview->m_robotPointy*12/HEIGHT,robotview->m_robotPointx*20/WIDTH); path->pathPlanAll(robotview->m_goalPointy*12/HEIGHT,robotview->m_goalPointx*20/WIDTH); path->GetVmap(VirtualMap); best=path->GetPath();

Route* route=(Route*)mainframe->m_wndSplitter_Horizontal.GetPane(1,0); route->DrawRoute();

// TODO: Add your command handler code here UpdateData(false);

运行程序,如图3.7、3.8所示

- 30 -

山东建筑大学毕业论文

图3.7 运行界面

图3.8 路径规划最优路径显示

3.3.2 机器人路径规划的VC++实现 1 程序段及函数功能介绍 (1) 程序段介绍

程序是用VC++6.0软件编写,一共包含6个.cpp文件,.cpp文件如下所示:

BlockDlg.cpp、BlockView.cpp、Mainfrm.cpp、Pathplan.cpp、RobotViewView.cpp和Route.cpp

各部分功能如下面介绍: BlockDlg.cpp:障碍物参数设置

- 31 -