资讯详情

视觉SLAM十四讲课后答案-ch1

1.如何在 Ubuntu 在哪里安装软件(命令界)?1)apt-get 安装方法;普通安装:sudo apt-get install XXX修复安装:sudo apt-get -f install XXX重新安装:sudo apt-get -f reinstall XXX2)dpkg方式的安装sudo dpkg -i package_name.deb安装的地方通常安装在//usr/bin目录下(默认安装路径(鸟哥)P789)2. linux 什么是环境变量?如何定义新的环境变量?环境变量:环境变量是操作系统中具有特定名称的对象,它包含一个或多个应用程序将使用的信息; 永久性变量(系统级)对所有用户都有效:这种变量对系统中的所有用户都有效,所有用户都可以使用这种变量。作用范围是整个系统。设置方式: 用vim在/etc/profile将我们想要的环境变量添加到文件中export指令添加环境变量当然,这个文件只在root(超级用户)可以修改。我们可以修改它。etc目录下使用ls -l查看本文件的用户和权限【注】:添加后新的环境变量不会立即生效,除非会立即生效source /etc/profile 该文件将生效。否则,它只能在下次重新进入用户时生效。永久性变量(用户级)对单个用户有效:只针对当前用户,和上面一样,但不需要etc下面进行添加,直接在.bash_profile文件底部使用export添加。

定义新的环境变量:export PATH=$PATH:/要添加的路径或者 export PATH=/要添加的路径$PATH注意PATH后没有空格这里 .bashrc和.bash_profile原则上,在设置此类环境变量时,可以在任何两个文件中添加。~/.bash_profile是交互式login方式进入bash shell运行。~/ .bashrc是交互式non-login方式进入bash shell运行。两者的设置大致相同。就是.bash_profile用户登录时只读取一次文件而.bashrc每次打开终端进行新的会话都会读取。临时有效的环境变量(仅适用于当前shell有效):这种环境变量只针对当前的环境变量shell有效。当我们退出登录或关闭终端并重新打开时,环境变量就会消失。是临时的。 直接使用export指令添加。 3. linux 根记录的记录结构是什么? 3 记录的途。/下面有bin :二进制可执行文件,如许多用户使用的命令dev: 包括终端设备在内的设备文件USB任何连接到系统的设备root :srv :服务数据srv代表服务。包含与服务器特定服务相关的数据。例如,/srv/cvs包含cvs相关的数据usr:源代码包括二进制文件、库文件、文档和二级程序。usr/bin二进制文件包含用户程序。如果你在/bin中找不 用户二进制文件,到/usr/bin看目录。at、awk、cc、less、scp。boot :etc:运行程序所需的配置文件lost foundoptrunsysvar:变量文件lib: 库文件mediaproc:进程信息sbin :tmpvmlinuz4. 假设我要给 a.sh 加上可执权限,输了什么命令?改变权限, chmodr:4 w:2 x:1chmod 111 a.sh在不知道档案原有权限的情况下,此时,使用chmod a x filename,程序可以有执行权限。5. 假设我要将 a.sh ?件的所有者改成 xiang:xiang,该输什么命令?变更档案所有者, chownchown xiang:xiang a.sh1. SLAM 会在哪些场合中?到??少列举三个?向。加强实际应用动态场景、语义地图、多机器人合作2.SLAM 定位与建图有什么关系?为什么在定位的同时需要建图?定位:机器人必须知道自己在环境中的位置;建图:机器人必须记录环境中特征的位置(如果知道自己的位置);机器人在未知环境中从未知位置移动,在移动过程中根据位置估计和地图定位自己,同时在自己定位的基础上建立增量地图,实现机器人的独立定位和导航。3. SLAM 发展历史如何?我们可以把它分成哪个阶段?1985-1990:, Chatila 和Laumond (1985) and Smith et al. (1990)同时提出建图和定位; 单传感器为外部传感器:早期:声呐(Tardós et al. 2002; Ribas et al. 2008);后期:激光雷达(Nüchter etal. 2007; Thrun et al. 2006);相机(Se et al. 2005; Lemaire et al. 2007; Davison 2003;Bogdan et al. 2009);GPS(Thrun et al. 2005a);二、多传感器融合分为三个阶段:初始阶段:20世纪80年代发展阶段90年代快速发展阶段4. 列举三篇在 SLAM 经典的领域奉献。1.Smith, R.C. and P. Cheeseman, On the Representation and Estimation of Spatial Uncertainty. International Journal ofRobotics Research, 1986. 52. Se, S., D. Lowe and J. Little, Mobile robot localization and mapping with uncertainty using scale-invariant visuallandmarks. The international Journal of robotics Research, 2002. 213. Mullane, J., et al., A Random-Finite-Set Approach to Bayesian SLAM. IEEE Transactions on Robotics, 2011三、CMake 练习解题思路:1)建立一个mycmake然后建立/文件夹test3文件夹,然后在其中建立子目录build文件和src文件和libhello文件,hello.cpp,hello.h放入libhello中,useHello.cpp放入src中,

编写顶层CMakeLists.txt文件如下:  project(hello)     add_subdirectory(src)  add_subdirectory(libhello)  set(CMAKE_BUILD_TYPE "Release")     src中的CMakeLists.txt文件如下:  include_directories(${PROJECT_SOURCE_DIR}/libhello)  set(APP_SRC useHello.cpp)  set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)  add_executable(sayHello ${APP_SRC})  target_link_libraries(sayHello libhello)     libhello中的CMakeLists.txt文件如下:  set(LIB_SRC hello.cpp)  add_definitions("-DLIBHELLO_BUILD")  add_library(libhello SHARED ${LIB_SRC})  set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)  set_target_properties(libhello PROPERTIES OUTPUT_NAME "sayHello")

2. 此时,我们不急于直接运行 ORB-SLAM让我们先来看看它的代码结构。ORB-SLAM2 是一个cmake 工程,所以可以从 CMakeLists.txt 了解它的组织方式。 ORB-SLAM2 代码目录下的 CMakeLists.txt,回答问题:(a) ORB-SLAM2 编译的结果是什么?有多少库文件和可执行文件?可执行文件和库文件的编译:可执行文件6个和1个库文件(b) ORB-SLAM2 中的 include, src, Examples 三个文件夹的内容是什么?include文件包含各种所需的头文件;src文件包含各种源文件src/System.ccsrc/Tracking.ccsrc/LocaMapping.ccsrc/LoopClosing.ccsrc/ORBextractor.ccsrc/ORBmatcher.ccsrc/FrameDrawer.ccsrc/Converter.ccsrc/MapPoint.ccsrc/KeyFrame.ccsrc/Map.ccsrc/MapDrawer.ccsrc/Optimizer.ccsrc/PnPsolver.ccsrc/Frame.ccsrc/KeyFrameDatabase.ccsrc/Sim3Solver.ccsrc/Initializer.ccsrc/Viewer.ccEaxmples中包含有RGB-D文件夹,Stereo文件夹, Monocular文件夹这三个文件夹下具体的东西都在下面的程序中,不再赘述。# Build examples set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/Examples/RGB-D) add_executable(rgbd_tumExamples/RGB-D/rgbd_tum.cc)target_link_libraries(rgbd_tum ${PROJECT_NAME}) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/Examples/Stereo) add_executable(stereo_kittiExamples/Stereo/stereo_kitti.cc)target_link_libraries(stereo_kitti ${PROJECT_NAME}) add_executable(stereo_eurocExamples/Stereo/stereo_euroc.cc)target_link_libraries(stereo_euroc ${PROJECT_NAME})  set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/Examples/Monocular) add_executable(mono_tumExamples/Monocular/mono_tum.cc)target_link_libraries(mono_tum ${PROJECT_NAME}) add_executable(mono_kittiExamples/Monocular/mono_kitti.cc)target_link_libraries(mono_kitti ${PROJECT_NAME}) add_executable(mono_eurocExamples/Monocular/mono_euroc.cc)target_link_libraries(mono_euroc ${PROJECT_NAME}) (c) ORB-SLAM2 中的可执行文件链接到了哪些库?它们的名字是什么?libDBoW2.so和libg2o.so这两个库;${PROJECT_SOURCE_DIR}/Thirdparty/DBoW2/lib/libDBoW2.so${PROJECT_SOURCE_DIR}/Thirdparty/g2o/lib/libg2o.so

标签: cvs系列视觉传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台