pangolin简单学习 一
来源:互联网 发布:svm算法原理 编辑:程序博客网 时间:2024/06/01 14:58
0.1. 资料
泡泡机器人
github example
opengl中摄像机的位置,观察的方向
gluLookAt函数
0.2. 使用说明
使用这个gluLookAt矩阵坐标观察矩阵可以很高效地把所有世界坐标变换为观察坐标LookAt矩阵
find_package(Pangolin REQUIRED)include_directories(${Pangolin_INCLUDE_DIRS})target_link_libraries(pangolin_test ${Pangolin_LIBRARIES})
Github 下有个example有一些例子,简单的参照着写,复杂的估计需要查opengl.
0.3. HelloPangolin
#include <iostream>#include <pangolin/pangolin.h>int main(int argc, char **argv){ //创建一个窗口 pangolin::CreateWindowAndBind("Main",640,480); //启动深度测试 glEnable(GL_DEPTH_TEST); // Define Projection and initial ModelView matrix pangolin::OpenGlRenderState s_cam( pangolin::ProjectionMatrix(640,480,420,420,320,240,0.2,100), //对应的是gluLookAt,摄像机位置,参考点位置,up vector(上向量) pangolin::ModelViewLookAt(0,-10,0.1,0,0,0,pangolin::AxisNegY) ); // Create Interactive View in window pangolin::Handler3D handler(s_cam); //setBounds 跟opengl的viewport 有关 //看SimpleDisplay中边界的设置就知道 pangolin::View &d_cam = pangolin::CreateDisplay().SetBounds(0.0,1.0,0.0,1.0,-640.0f/480.0f) .SetHandler(&handler); while(!pangolin::ShouldQuit()) { // Clear screen and activate view to render into glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); d_cam.Activate(s_cam); // Render OpenGL Cube// pangolin::glDrawColouredCube();\ //坐标轴的创建 pangolin::glDrawAxis(3); //点的创建 glPointSize(10.0f); glBegin(GL_POINTS); glColor3f(1.0,1.0,1.0); glVertex3f(0.0f,0.0f,0.0f); glVertex3f(1,0,0); glVertex3f(0,2,0); glEnd(); //把下面的点都做一次旋转变换 glPushMatrix(); //col major std::vector<GLfloat > Twc = {1,0,0,0, 0,1,0,0 , 0,0,1,0 ,0,0,5,1}; glMultMatrixf(Twc.data()); //直线的创建 const float w = 2; const float h = w*0.75; const float z = w*0.6; glLineWidth(2); glColor3f(1.0,0,0); glBegin(GL_LINES); glVertex3f(0,0,0); glVertex3f(w,h,z); glVertex3f(0,0,0); glVertex3f(w,-h,z); glVertex3f(0,0,0); glVertex3f(-w,-h,z); glVertex3f(0,0,0); glVertex3f(-w,h,z); glVertex3f(w,h,z); glVertex3f(-w,h,z); glVertex3f(-w,h,z); glVertex3f(-w,-h,z); glVertex3f(-w,-h,z); glVertex3f(w,-h,z); glVertex3f(w,-h,z); glVertex3f(w,h,z); glEnd(); glPopMatrix(); // Swap frames and Process Events pangolin::FinishFrame(); } return 0;}
0.4. Plot data with ros
参照SimplePlot, !pangolin::ShouldQuit()
换成ros::ok()
,就可以
参照SimpleDisplay, 可以做出选项配置
阅读全文
0 0
- pangolin简单学习 一
- SLAM学习之Pangolin安装
- Pangolin代码中的一处错误
- build pangolin 时遇到的的一处 link错误
- 简单算法学习一
- 【Python】简单学习(一)
- Pangolin install
- pangolin install
- easyUI简单学习(一)
- Volley简单学习使用一
- httpclient简单学习(一)
- 简单链式编程学习(一)
- 简单算法学习笔记一
- 简单的Git学习一
- SQL注入及Pangolin(穿山甲)学习(第一次接触并了解,内容缘自百度,未实践)
- SQLMap Pangolin环境搭建
- Try Pangolin(1)
- Try Pangolin(3) - Display
- 关于less
- NOIP2017普及组题解
- open pluggable db 出现的错误
- 1072. 开学寄语(20)——C语言
- 自己动手写泛型dao
- pangolin简单学习 一
- Android 使用CMake 编译NDK
- 轮播图实战
- 方法
- Cent OS 7 添加 EPEL Nux Dextop ELRepo等源
- 工厂模式
- ZCMU1261
- 素数
- linxu 驱动 DEVICE_ATTR和device_create_file 学习实例