1 熟悉Linux
1. 如何在 Ubuntu 中安裝軟件(命令⾏界⾯)?它們通常被安裝在什麼地⽅?
apt-get install 包名
aptitude insatll 包名(包含依賴解決方案)
1.下載的軟件存放位置
/var/cache/apt/archives
2.安裝後軟件默認位置
/usr/share
3.可執行文件位置
/usr/bin
4.配置文件位置
/etc
5.lib文件位置
/usr/lib
2. linux 的環境變量是什麼?我如何定義新的環境變量?
linux的環境變量有永久生效和shell臨時生效兩種
設置永久生效的環境變量:
- 對所有用戶生效
$ gedit /etc/profile
$ export 新增環境變量
- 對當前用戶生效
$ gedit /home/用戶/.bash.profile
$ export 新增環境變量
設置當前shell有效的環境變量:
直接在當前命令窗口下新增變量,窗口關閉後失效
$ export 新增環境變量
查看環境變量:
- 使用env查看所有環境變量
env
- 使用echo命令查看單個環境變量
echo $PATH
- 使用
set
查看所有本地定義的環境變量,unset
可以刪除指定的環境變量 - 常用的環境變量
PATH——決定了shell將到哪些目錄中尋找命令或程序
HISTSIZE——歷史記錄數
LOGNAME——當前用戶的登錄名
HOSTNAME——指主機的名稱
SHELL——當前用戶Shell類型
LANGUGE——語言相關的環境變量,多語言可以修改此環境變量
MAIL——當前用戶的郵件存放目錄
PS1——基本提示符,對於root用戶是#,對於普通用戶是$
4. linux 根⽬錄下⾯的⽬錄結構是什麼樣的?⾄少說出 3 個⽬錄的⽤途。
根目錄下面只有目錄
/home:用戶家目錄
/boot:系統啓動時用到的一些文件,如內核文件、grub引導
/etc:系統配置文件
/dev:系統設備文件
/bin:可執行二進制文件
…
5. 假設我要給 a.sh 加上可執⾏權限,該輸⼊什麼命令?
在不知道該檔案原本的權限爲何的情況下,chmod a+x filename
,就可以讓該程序擁有執行的權限了
6. 假設我要將 a.sh ⽂件的所有者改成 xiang:xiang,該輸⼊什麼命令?chown xiang:xiang a.sh
2 SLAM綜述文獻閱讀
-
SLAM 會在哪些場合中⽤到?⾄少列舉三個⽅向。
增強現實、移動機器人的自主導航、無人駕駛 -
SLAM 中定位與建圖是什麼關係?爲什麼在定位的同時需要建圖?
定位:機器人必須知道自己在環境中位置;
建圖:機器人必須記錄環境中特徵的位置(如果知道自己的位置);
機器人在未知環境中從一個未知位置開始移動,在移動過程中根據位置估計和地圖進行自身定位,同時在自身定位的基礎上建造增量式地圖,實現機器人的自主定位和導航。 -
SLAM 發展歷史如何?我們可以將它劃分成哪⼏個階段?
聲納——激光雷達——深度相機——多傳感器融合 -
列舉三篇在 SLAM 領域的經典⽂獻。
-
Smith, R.C. and P. Cheeseman, On the Representation and Estimation of
Spatial Uncertainty. International Journal of Robotics Research, -
Se, S., D. Lowe and J. Little, Mobile robot localization and mapping
with uncertainty using scaleinvariant visual landmarks. The
international Journal of robotics Research, 2002. 21 -
Mullane, J., et al., A RandomFiniteSet Approach to Bayesian SLAM.
IEEE Transactions on Robotics, 2011
3 CMAKE練習
完成了《cmake 實踐》的閱讀,瞭解了cmake工程的構建方法,靜態庫和動態庫的安裝調用。
4 ORB-SLAM2練習
在命令行中輸入 git clone https://github.com/raulmur/ORB_SLAM2
ORB-SLAM2文件夾將會下載到當前路徑
閱讀CMakeLists.txt,回答以下問題:
- ORB-SLAM2 將編譯出什麼結果?有⼏個庫⽂件和可執⾏⽂件? 6個,觀察add_executable指令即可
- ORB-SLAM2 中的 include, src, Examples三個⽂件夾中都含有什麼內容? 頭文件,源文件,輸出
- ORB-SLAM2 中的可執⾏⽂件鏈接到了哪些庫?它們的名字是什麼?觀察target_link_libraries指令即可
5 運行ORB-SLAM2
git clone https://github.com/raulmur/ORB_SLAM2
將ORB_SLAM2文件夾下載到本地,根據github頁面的readme安裝好依賴
將課程提供的myvideo.cpp、myvideo.yaml、myvideo.mp4放到Examples/myvideo文件夾下,注意修改myvideo.cpp中的文件路徑
修改ORB_SLAM2文件夾下的CMakeLists.txt文件,在最後增加如下語句
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/Examples/myvideo)
add_executable(myvideo Examples/myvideo/myvideo.cpp)
target_link_libraries(myvideo ${PROJECT_NAME})
在ORB_SLAM2文件夾下打開終端
cd ORB_SLAM2
chmod +x build.sh
./build.sh
cd build
make
在Examples/myvideo文件夾下找到myvideo可執行程序,./myvideo
執行
報錯QObject::startTimer: Timers cannot be started from another thread
解決方法
https://blog.csdn.net/weixin_39608351/article/details/90202749
參考鏈接
https://blog.csdn.net/zzc1684/article/details/84710802