摘 要 根據工業機器人運動軌跡模擬的需要,應用OpenGL和3DSMAX等軟件相互配合,在3DSMAX中建立其模型,應用VC++設計運動模擬系統,在該系統中讀取該工業機器人的模型參數,根據工業機器人運動的關系,實現它的運動軌跡模擬。
關鍵詞 工業機器人;運動軌跡;模擬
中圖分類號:TP242 文獻標識碼:A 文章編號:1671-7597(2014)06-0022-01
1 工業機器人三維模型
OpenGL的三維圖形功能比較強大,不僅能夠設置光照、材質,并且提供各種用途的函數。工業機器人的模型具體實現過程及部分程序代碼如下為:首先在CRenderView類中添加一個成員函數:mySolidCylinder(GLdouble radius, GLdouble height, int n_div),該成員函數用于實現機器人模型的功能,然后再在CRenderView類中添加一個成員函數DrawMyrobot(),該函數用來繪制機器人本體,機器人的各個關節位置都按照D-H方法進行設置,模型具體代碼如下:
GLfloat red_ambient[] = { 0.2f, 0.0f, 0.0f };//環境光
GLfloat red_diffuse[] = { 0.5f, 0.0f, 0.0f };//擴散光
然后設定材質函數glMaterialfv,將定義的材質設定為繪制物體的材質:
glMaterialfv( GL_FRONT, GL_AMBIENT, red_ambient);
glMaterialfv( GL_FRONT, GL_DIFFUSE, red_diffuse );
3DSMAX中的Chunk的基本單元在構建模型中起到重要的作用,可在VC++基礎類庫中定義專門用來讀入和重繪的類,比如定義Class 3DSload,在該類中定義顏色結構、頂點結構和主函數等用于建立工業機器人的3DS模型。
2 模擬系統界面的介紹
工業機器人模擬系統是一個具有交互式的界面,人機可以很好地交互,具有工具欄和菜單欄,工具欄即為菜單欄的圖標式說明,該系統工具欄主要圖標的說明:
1)模型導入圖標:是實現該系統與其它三維造型軟件聯系的接口,點擊該圖標,系統會彈出一個打開文件的窗口,文件的后綴名默認為.3ds,點擊“打開”按鈕即可在該系統中顯示由外部3d軟件所繪制的3d模型。
2)基本設置圖標:可實現對系統的背景顏色、光照,及模型的顯示方式(點化式、線框式、面填充式,默認為面填充式)進行設置。
3 工業機器人模型的裝配
實現工業機器人的運動模擬,則要把機器人裝配好,保證模擬的正確進行,在DrawWithOpenGL()函數中重繪機器人模型時必須嚴格按照機器學中D-H法建立機器人各個關節,則相應各個關節的變化矩陣可用OpenGL提供的旋轉變換函數glRotatef(m_R,x,y,z),其中m_R表示旋轉角度,x、y、z,的取值為0或1,取1表示該軸即為旋轉軸。與平移變換函數glTranslatef(m_x,m_y,m_z),其中
三個參數對應三個坐標軸,、、、、、表示關節間的轉換矩陣。
則機器人裝配源程序如下:
void CRenderView::DrawWithOpenGL(GLenum mode)
{ glCallList(1);調用顯示列表繪制機器人基座
由關節1到基座的變換矩陣
glCallList(2);調用顯示列表繪制機器人第一個關節
…
由關節6到關節5的變換矩陣
glCallList(7);
}
4 工業機器人軌跡模擬的實現
運動軌跡模擬可以在兩種不同的空間進行模擬,由工業機器人軌跡規劃所提供的軌跡規劃算法,運用C++的程序編程方法,編寫如下的程序:
BOOL Industryrobot::Angle() //定義一個角度類
{CMyRoate *angle;
CRenderView *pView;
angle =MyComputeReverse(CMyGpoint pt);調用求機器人逆解函數,將插值點位姿轉換為關節角度
th[i][j]= CThInterploation(thata0[i],thata[i],totletim1,(j+1)*stime);
CThInterploation 為三次多項式插值函數,其中angle0為初始關節角度,angle為終點關節角度,totletim運行的時間,(j+1)*stime表示當前時間[1]。
pView->therecord[i][j]=th[i][j]; 將插值所得角度存取到視類關節存取數組中。
軌跡規劃部分程序代碼如下:
void CLineInter::LInterpolation(CMyGpoint gpt[], float V, float ts)
其中CMyGpoint gpt[]插補點位姿,V插補速度,ts插補時間間隔。
如圖1是工業機器人末端從初始位置經中間點該點位姿為,運動到終點該點位姿,設置模擬運行時間4秒,每隔0.025秒進行一次采樣,可以得到運動的軌跡。
圖1 三次多項式軌跡模擬圖
5 結束語
該模擬系統創造了用戶和機器人進行交互的虛擬環境,對于檢測、設計機器人或者想看它運行的軌跡等,操作人員在該模擬系統可以清晰觀摩到機器人的運動狀況及其軌跡等,從而可以選擇最佳的運動軌跡或者設計策略,對于工業生產有一定的實際意義。
參考文獻
[1]萬三國.機械手拋光技術軌跡規劃及其仿真研究[D].五邑大學,2012.
作者簡介
萬三國(1986-),男,江西余干人,碩士研究生,研究方向:工業自動化。endprint
摘 要 根據工業機器人運動軌跡模擬的需要,應用OpenGL和3DSMAX等軟件相互配合,在3DSMAX中建立其模型,應用VC++設計運動模擬系統,在該系統中讀取該工業機器人的模型參數,根據工業機器人運動的關系,實現它的運動軌跡模擬。
關鍵詞 工業機器人;運動軌跡;模擬
中圖分類號:TP242 文獻標識碼:A 文章編號:1671-7597(2014)06-0022-01
1 工業機器人三維模型
OpenGL的三維圖形功能比較強大,不僅能夠設置光照、材質,并且提供各種用途的函數。工業機器人的模型具體實現過程及部分程序代碼如下為:首先在CRenderView類中添加一個成員函數:mySolidCylinder(GLdouble radius, GLdouble height, int n_div),該成員函數用于實現機器人模型的功能,然后再在CRenderView類中添加一個成員函數DrawMyrobot(),該函數用來繪制機器人本體,機器人的各個關節位置都按照D-H方法進行設置,模型具體代碼如下:
GLfloat red_ambient[] = { 0.2f, 0.0f, 0.0f };//環境光
GLfloat red_diffuse[] = { 0.5f, 0.0f, 0.0f };//擴散光
然后設定材質函數glMaterialfv,將定義的材質設定為繪制物體的材質:
glMaterialfv( GL_FRONT, GL_AMBIENT, red_ambient);
glMaterialfv( GL_FRONT, GL_DIFFUSE, red_diffuse );
3DSMAX中的Chunk的基本單元在構建模型中起到重要的作用,可在VC++基礎類庫中定義專門用來讀入和重繪的類,比如定義Class 3DSload,在該類中定義顏色結構、頂點結構和主函數等用于建立工業機器人的3DS模型。
2 模擬系統界面的介紹
工業機器人模擬系統是一個具有交互式的界面,人機可以很好地交互,具有工具欄和菜單欄,工具欄即為菜單欄的圖標式說明,該系統工具欄主要圖標的說明:
1)模型導入圖標:是實現該系統與其它三維造型軟件聯系的接口,點擊該圖標,系統會彈出一個打開文件的窗口,文件的后綴名默認為.3ds,點擊“打開”按鈕即可在該系統中顯示由外部3d軟件所繪制的3d模型。
2)基本設置圖標:可實現對系統的背景顏色、光照,及模型的顯示方式(點化式、線框式、面填充式,默認為面填充式)進行設置。
3 工業機器人模型的裝配
實現工業機器人的運動模擬,則要把機器人裝配好,保證模擬的正確進行,在DrawWithOpenGL()函數中重繪機器人模型時必須嚴格按照機器學中D-H法建立機器人各個關節,則相應各個關節的變化矩陣可用OpenGL提供的旋轉變換函數glRotatef(m_R,x,y,z),其中m_R表示旋轉角度,x、y、z,的取值為0或1,取1表示該軸即為旋轉軸。與平移變換函數glTranslatef(m_x,m_y,m_z),其中
三個參數對應三個坐標軸,、、、、、表示關節間的轉換矩陣。
則機器人裝配源程序如下:
void CRenderView::DrawWithOpenGL(GLenum mode)
{ glCallList(1);調用顯示列表繪制機器人基座
由關節1到基座的變換矩陣
glCallList(2);調用顯示列表繪制機器人第一個關節
…
由關節6到關節5的變換矩陣
glCallList(7);
}
4 工業機器人軌跡模擬的實現
運動軌跡模擬可以在兩種不同的空間進行模擬,由工業機器人軌跡規劃所提供的軌跡規劃算法,運用C++的程序編程方法,編寫如下的程序:
BOOL Industryrobot::Angle() //定義一個角度類
{CMyRoate *angle;
CRenderView *pView;
angle =MyComputeReverse(CMyGpoint pt);調用求機器人逆解函數,將插值點位姿轉換為關節角度
th[i][j]= CThInterploation(thata0[i],thata[i],totletim1,(j+1)*stime);
CThInterploation 為三次多項式插值函數,其中angle0為初始關節角度,angle為終點關節角度,totletim運行的時間,(j+1)*stime表示當前時間[1]。
pView->therecord[i][j]=th[i][j]; 將插值所得角度存取到視類關節存取數組中。
軌跡規劃部分程序代碼如下:
void CLineInter::LInterpolation(CMyGpoint gpt[], float V, float ts)
其中CMyGpoint gpt[]插補點位姿,V插補速度,ts插補時間間隔。
如圖1是工業機器人末端從初始位置經中間點該點位姿為,運動到終點該點位姿,設置模擬運行時間4秒,每隔0.025秒進行一次采樣,可以得到運動的軌跡。
圖1 三次多項式軌跡模擬圖
5 結束語
該模擬系統創造了用戶和機器人進行交互的虛擬環境,對于檢測、設計機器人或者想看它運行的軌跡等,操作人員在該模擬系統可以清晰觀摩到機器人的運動狀況及其軌跡等,從而可以選擇最佳的運動軌跡或者設計策略,對于工業生產有一定的實際意義。
參考文獻
[1]萬三國.機械手拋光技術軌跡規劃及其仿真研究[D].五邑大學,2012.
作者簡介
萬三國(1986-),男,江西余干人,碩士研究生,研究方向:工業自動化。endprint
摘 要 根據工業機器人運動軌跡模擬的需要,應用OpenGL和3DSMAX等軟件相互配合,在3DSMAX中建立其模型,應用VC++設計運動模擬系統,在該系統中讀取該工業機器人的模型參數,根據工業機器人運動的關系,實現它的運動軌跡模擬。
關鍵詞 工業機器人;運動軌跡;模擬
中圖分類號:TP242 文獻標識碼:A 文章編號:1671-7597(2014)06-0022-01
1 工業機器人三維模型
OpenGL的三維圖形功能比較強大,不僅能夠設置光照、材質,并且提供各種用途的函數。工業機器人的模型具體實現過程及部分程序代碼如下為:首先在CRenderView類中添加一個成員函數:mySolidCylinder(GLdouble radius, GLdouble height, int n_div),該成員函數用于實現機器人模型的功能,然后再在CRenderView類中添加一個成員函數DrawMyrobot(),該函數用來繪制機器人本體,機器人的各個關節位置都按照D-H方法進行設置,模型具體代碼如下:
GLfloat red_ambient[] = { 0.2f, 0.0f, 0.0f };//環境光
GLfloat red_diffuse[] = { 0.5f, 0.0f, 0.0f };//擴散光
然后設定材質函數glMaterialfv,將定義的材質設定為繪制物體的材質:
glMaterialfv( GL_FRONT, GL_AMBIENT, red_ambient);
glMaterialfv( GL_FRONT, GL_DIFFUSE, red_diffuse );
3DSMAX中的Chunk的基本單元在構建模型中起到重要的作用,可在VC++基礎類庫中定義專門用來讀入和重繪的類,比如定義Class 3DSload,在該類中定義顏色結構、頂點結構和主函數等用于建立工業機器人的3DS模型。
2 模擬系統界面的介紹
工業機器人模擬系統是一個具有交互式的界面,人機可以很好地交互,具有工具欄和菜單欄,工具欄即為菜單欄的圖標式說明,該系統工具欄主要圖標的說明:
1)模型導入圖標:是實現該系統與其它三維造型軟件聯系的接口,點擊該圖標,系統會彈出一個打開文件的窗口,文件的后綴名默認為.3ds,點擊“打開”按鈕即可在該系統中顯示由外部3d軟件所繪制的3d模型。
2)基本設置圖標:可實現對系統的背景顏色、光照,及模型的顯示方式(點化式、線框式、面填充式,默認為面填充式)進行設置。
3 工業機器人模型的裝配
實現工業機器人的運動模擬,則要把機器人裝配好,保證模擬的正確進行,在DrawWithOpenGL()函數中重繪機器人模型時必須嚴格按照機器學中D-H法建立機器人各個關節,則相應各個關節的變化矩陣可用OpenGL提供的旋轉變換函數glRotatef(m_R,x,y,z),其中m_R表示旋轉角度,x、y、z,的取值為0或1,取1表示該軸即為旋轉軸。與平移變換函數glTranslatef(m_x,m_y,m_z),其中
三個參數對應三個坐標軸,、、、、、表示關節間的轉換矩陣。
則機器人裝配源程序如下:
void CRenderView::DrawWithOpenGL(GLenum mode)
{ glCallList(1);調用顯示列表繪制機器人基座
由關節1到基座的變換矩陣
glCallList(2);調用顯示列表繪制機器人第一個關節
…
由關節6到關節5的變換矩陣
glCallList(7);
}
4 工業機器人軌跡模擬的實現
運動軌跡模擬可以在兩種不同的空間進行模擬,由工業機器人軌跡規劃所提供的軌跡規劃算法,運用C++的程序編程方法,編寫如下的程序:
BOOL Industryrobot::Angle() //定義一個角度類
{CMyRoate *angle;
CRenderView *pView;
angle =MyComputeReverse(CMyGpoint pt);調用求機器人逆解函數,將插值點位姿轉換為關節角度
th[i][j]= CThInterploation(thata0[i],thata[i],totletim1,(j+1)*stime);
CThInterploation 為三次多項式插值函數,其中angle0為初始關節角度,angle為終點關節角度,totletim運行的時間,(j+1)*stime表示當前時間[1]。
pView->therecord[i][j]=th[i][j]; 將插值所得角度存取到視類關節存取數組中。
軌跡規劃部分程序代碼如下:
void CLineInter::LInterpolation(CMyGpoint gpt[], float V, float ts)
其中CMyGpoint gpt[]插補點位姿,V插補速度,ts插補時間間隔。
如圖1是工業機器人末端從初始位置經中間點該點位姿為,運動到終點該點位姿,設置模擬運行時間4秒,每隔0.025秒進行一次采樣,可以得到運動的軌跡。
圖1 三次多項式軌跡模擬圖
5 結束語
該模擬系統創造了用戶和機器人進行交互的虛擬環境,對于檢測、設計機器人或者想看它運行的軌跡等,操作人員在該模擬系統可以清晰觀摩到機器人的運動狀況及其軌跡等,從而可以選擇最佳的運動軌跡或者設計策略,對于工業生產有一定的實際意義。
參考文獻
[1]萬三國.機械手拋光技術軌跡規劃及其仿真研究[D].五邑大學,2012.
作者簡介
萬三國(1986-),男,江西余干人,碩士研究生,研究方向:工業自動化。endprint