monoslam,scenelib,spcaview
来源:互联网 发布:云端软件 知乎 编辑:程序博客网 时间:2024/05/17 23:46
scenelib 只支持1394 camera.不支持usb camera.
1394 camera主要用于工业相机.目前工业相机的常用接口有camera link, GigE, USB3.0, 1394等. PoE power over eth
编译scenelib的过程 源码和安装指导见http://www.doc.ic.ac.uk/~ajd/Scene/index.html
monoSlam研究。glow104和vw34,作为scenelib依赖库,需要首先安装。
遇到vw34安装问题。qt配置。修改configure.ac文件中qt选项为xno。重新./bootstrap ./configure即可。
ifdef _VWDEBUG
exit is not a member of std 在VW/Image/imagebase.h中报错。方法是,添加#include<cstdlib>
memcpy is not declared in this scope. 解决办法:修改<string>为<cstring>
'free' was not declared in this scope. 解决办法添加<cstdlib>
用VS的NMAKE构建,不会报错,但是用GNU MAKE构建,就会报错。GeomObjects/point3d.cpp:88: error: ‘VW::Point3D VW::operator+(const VW::Point3D&, const VW::Point3D&)’ should have been declared inside ‘VW’
解决办法:记得不仅class里面要有friend声明,namespace里面也要有声明
解决方法:for all these errors, all the friend functions must be added outside the class declaration like this:
解决:std::ostream operator<< should have been declared inside 'xxx'
各种问题总结:I cannot compile configure scritpt of VW34
安装libXext dev。发现已经安装过了。但是仍然报错missing。无奈只能修改./configure文件,添加libXext.a文件所在的目录到搜索目录范围内,解决此问题。
It properly needs a re-write the config files. http://ubuntuforums.org/showthread.php?t=1252423
double drand48(void);error: 'drand48' was not declared in this scope 解决办法:添加cstdlib库
typeid 使用前必须包含 <typeinfo> 按照错误提示添加。
找不到GL/glu.h头文件。搜索/usr/include目录,找到GL目录下面,确实没有glu.h头文件。转而安装libglu-dev库。
找不到GL/glut.h头文件。搜索/usr/include目录,找到GL目录下面,确实没有glut.h头文件。sudo apt-get install freeglut3-dev。
编译MonoSlamglow。arch -k 选项错误,需要删除。
-lVWFireware 找不到。
spacaview在ubuntu上的移植
Couldn't get videodevice capability 修改控制命令字, 参照v4l和v4l2的命令字对应表
http://blog.csdn.net/ecocn/article/details/8077028
用的v4l,调用ioctl(fd, VIDIOCGCAP , &vcap),程序出错,如下:
<div><span class="pun" style="color:#66660;">错误信息:</span><span class="pln" style="color:#000000;">VIDIOCGCAP </span><span class="typ" style="color:#66066;">Invalid</span><span class="pln" style="color:#000000;"> argument</span></div>
<div><span style="font-family:Arial,Liberation Sans,DejaVu Sans,sans-serif;"><span style="line-height:18px"><span class="lit" style="color:#06666;line-height:25px;">1.</span><span class="pun" style="color:#66660;line-height:25px;">我头文件使用的</span><span class="com" style="color:#8800;line-height:25px;">#include</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="str" style="color:#0880;line-height:25px;"><linux/videodev.h></span><span class="pun" style="color:#66660;line-height:25px;">,替换为</span><span class="com" style="color:#8800;line-height:25px;">#include</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="str" style="color:#0880;line-height:25px;"><linux/videodev2.h></span><span class="pun" style="color:#66660;line-height:25px;">,也就是使用</span><span class="pln" style="color:#000000;line-height:25px;">V4L2</span><span class="pun" style="color:#66660;line-height:25px;">;</span></span></span></div><div><span style="font-family:Arial,Liberation Sans,DejaVu Sans,sans-serif;"><span style="line-height:18px"><span class="lit" style="color:#06666;line-height:25px;">2.</span><span class="pun" style="color:#66660;line-height:25px;">然后</span></span></span><span style="line-height:22px"><span class="pln" style="color:#000000;line-height:25px;">ioctl</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">fd</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> </span></span><span style="line-height:22px"><span class="pln" style="color:#000000;line-height:25px;">VIDIOCGCAP</span></span><span style="line-height:22px"><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="pun" style="color:#66660;line-height:25px;">&</span><span class="pln" style="color:#000000;line-height:25px;">vcap</span><span class="pun" style="color:#66660;line-height:25px;">)改为</span></span><span class="pln" style="color:#000000;">ioctl</span><span class="pun" style="color:#66660;">(</span><span class="pln" style="color:#000000;">fd</span><span class="pun" style="color:#66660;">,</span><span class="pln" style="color:#000000;">VIDIOC_QUERYCAP</span><span class="pun" style="color:#66660;">,</span><span class="pln" style="color:#000000;"> </span><span class="pun" style="color:#66660;">&</span><span class="pln" style="color:#000000;">vcap</span><span class="pun" style="color:#66660;">)。</span></div>
注意有点并没有对等的功能. http://www.linuxtv.org/downloads/legacy/video4linux/API/V4L2_API/spec/ch08s01.html
V4L2 has no equivalent of theVIDIOCGPICT
and VIDIOCSPICT
ioctl and struct video_picture. The followingfields where replaced by V4L2 controls accessible with theVIDIOC_QUERYCTRL
,VIDIOC_G_CTRL
and VIDIOC_S_CTRL
ioctls:
servfox version: 1.1.3 date: 11:12:2005 (C) mxhaard@magic.fr
Not a JPEG webcam sorry Abort !
<span class="pun" style="color:#66660;"></span><span class="pln" style="color:#000000;">VIDIOC_QUERYCAP</span><span class="pun" style="color:#66660;"></span>Couldnt get videopict params with VIDIOCGPICT
移植spcaview&gspca&servfox搭建网络视频服务器 http://blog.chinaunix.net/uid-20698426-id-136226.html
软件架构:
Spcaview 调试v4l2
The VW34 library used by MonoSLAM provides an abstraction to the manipulation of image source, either from file sequences or video capture device.
The related code can be found at VW34/VWGLOW/Interface folder. Refering to VW34/VWFirewire
I added an interface named VWUSBCam, which calls functions in libspcav4l and added VWUSBCam interface to MonoSLAMGlow/monoslamglow*. Now theUSB camera works for MonoSLAM!
编译spcaview 过程,参考以下blog, 問題1和2均遇到且用此方法可以解决,但3没有遇到。
ubuntu 13.04 搭建spcaview http://blog.csdn.net/lxp90/article/details/24987723
1、常规的安装SDL,安装方法
安装SDL:
Ubuntu已经包含SDL库,所以通过几个简单的命令就可以安装,比windows还傻瓜!
sudo apt-get install libsdl1.2-dev(比较大,10M左右)
附加包:
sudo apt-get install libsdl-image1.2-dev
sudo apt-get install libsdl-mixer1.2-dev
sudo apt-get install libsdl-ttf2.0-dev
sudo apt-get install libsdl-gfx1.2-dev
安装完成之后,在目录/usr/include中,就会有个SDL文件夹,里面包含了所需要的头文件。
2、安装spcaview
(1)解压
(2)make
错误1:没有<linux/videodev.h> 头文件
解决1:#include <linux/videodev2.h>
#include <libv4l1-videodev.h>
任何.c的报错,都用以上解决方法,
错误2:“BASE_OPRATE****”
解决2:进入xx.c
宏定义 #define BASE_OPRATE*** 198
谷歌解决的。
错误3:
/usr/bin/ld: spcaview.o: undefined reference to symbol 'pthread_create@@GLIBC_2.1'
/usr/bin/ld: note: 'pthread_create@@GLIBC_2.1' is defined in DSO /lib/i386-linux-gnu/libpthread.so.0 so try adding it to the linker command line
/lib/i386-linux-gnu/libpthread.so.0: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make: *** [spcaview] Error 1
解决3:
gcc -DUSE_SDL -O2 -DLINUX-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT spcaview.o utils.o tcputils.o picture.o encoder.o huffman.o marker.o quant.o avilib.odpsh.o shc.o shclib.o audioin_devdsp.o SDL_audioin.o -lm -L/usr/lib/i386-linux-gnu -lSDL -lpthread -o spcaview
添加红色的部分。。
- monoslam,scenelib,spcaview
- monoSLAM
- 【转】SLAM和MonoSLAM
- Testing Davison's MonoSLAM
- MATLAB Implementation of MonoSLAM
- Testing Davison's MonoSLAM
- 【转】SLAM和MonoSLAM
- SLAM和MonoSLAM
- SLAM和MonoSLAM
- MonocularSlam之SceneLib介绍及其使用说明
- SpcaView & SpcaTools Howto
- SpcaView & SpcaTools Howto
- spcaview源码详解
- servfox和spcaview移植
- spcaview.c解析
- ubuntu 13.04 搭建spcaview
- How to debug SceneLib with Eclipse and How to install SceneLib 1.0 on Ubuntu 10.04
- 转:Testing Davison's MonoSLAM
- VS2010项目引用了DLL文件,也写了Using,但是编译时提示:未能找到类型或命名空间名称
- log4j+slf4j迁移到log4j2+slf4j (Servlet3.0)
- 每天一个linux命令(15):tail 命令
- C语言——文件分类
- JQPAGINATION分页插件实践
- monoslam,scenelib,spcaview
- quick Cocos2d-x lua 八方向摇杆代码实现
- 数据结构之---C语言实现图的十字链表存储表示
- Snail—UI学习之弹出按钮选择项UIActionSheet
- [Cocoa]_[初级]_[NSTableView之自定义NSImageButtonCell]
- JavaScript replaceall 方法
- 聊天工具条
- hdoj1213 How many tables?(并查集)
- Java(07—29)学习总结