本周工作
- 協(xié)助完成國創(chuàng)申請(qǐng)書的書寫和校創(chuàng)申請(qǐng)書的修改
- 解決ROS初始化問題
- 解決OpenCV在Kinect-ROS版本錯(cuò)誤問題
- 成功編譯Kinect-ROS
- 成功編譯ROS-ORB_SLAM
工作中問題記錄
首先是ROS Melodic 中笋轨,在安裝ROS過程中的sudo rosdep init
和rosdep update
的問題
1.解決sudo rosdep init
問題報(bào)錯(cuò):
ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.
- 問題原因:由于raw:githubusercontent.com被墻恼布,程序在初始化的過程中無法下載相應(yīng)的文件慧域,所以解決辦法就是使得這個(gè)網(wǎng)站能夠被正常訪問啦逆。這個(gè)網(wǎng)站被墻的方式是dns污染灾测,所以只要能找到網(wǎng)站的正確ip即可。
解決辦法:
- 1.
sudo gedit /etc/hosts
- 2.拷貝以下地址到hosts文件:
192.30.253.118 gist.github.com
185.199.110.153 github.io
151.101.113.194 github.global.ssl.fastly.net
52.216.227.168 github-cloud.s3.amazonaws.com
52.74.223.119 github.com
199.232.28.133 avatars1.githubusercontent.com
199.232.28.133 avatars2.githubusercontent.com
199.232.28.133 avatars0.githubusercontent.com
199.232.28.133 avatars3.githubusercontent.com
199.232.28.133 raw.githubusercontent.com
199.232.28.133 user-images.githubusercontent.com
199.232.28.133 avatars.githubusercontent.com
199.232.28.133 github.map.fastly.net
199.232.28.133 avatars7.githubusercontent.com
54.239.31.69 aws.amazon.com
54.239.30.25 console.aws.amazon.com
54.239.96.90 ap-northeast-1.console.aws.amazon.com
54.240.226.81 ap-southeast-1.console.aws.amazon.com
54.240.193.125 ap-southeast-2.console.aws.amazon.com
54.239.54.102 eu-central-1.console.aws.amazon.com
177.72.244.194 sa-east-1.console.aws.amazon.com
176.32.114.59 eu-west-1.console.aws.amazon.com
54.239.31.128 us-west-1.console.aws.amazon.com
54.240.254.230 us-west-2.console.aws.amazon.com
54.239.38.102 s3-console-us-standard.console.aws.amazon.com
54.231.49.3 s3.amazonaws.com
52.219.0.4 s3-ap-northeast-1.amazonaws.com
54.231.242.170 s3-ap-southeast-1.amazonaws.com
54.231.251.21 s3-ap-southeast-2.amazonaws.com
54.231.193.37 s3-eu-central-1.amazonaws.com
52.218.16.140 s3-eu-west-1.amazonaws.com
52.92.72.2 s3-sa-east-1.amazonaws.com
54.231.236.6 s3-us-west-1.amazonaws.com
54.231.168.160 s3-us-west-2.amazonaws.com
52.216.80.48 github-cloud.s3.amazonaws.com
54.231.40.3 github-com.s3.amazonaws.com
52.216.20.171 github-production-release-asset-2e65be.s3.amazonaws.com
52.216.228.168 github-production-user-asset-6210df.s3.amazonaws.com
sudo gedit /etc/resolv.conf
箭养,注釋原有的namespace
办铡,并添加:
nameserver 8.8.8.8 #google域名服務(wù)器
nameserver 8.8.4.4 #google域名服務(wù)器- 4.
sudo rosdep init
成功
2.解決rosdep update
報(bào)錯(cuò):The read operation timed out.
解決辦法:
3.Kinect-ROS中OpenCV的問題
- 報(bào)錯(cuò):出現(xiàn)cv::Mat::Mat方法未定義。類似的問題百框,說明沒有g(shù)et到正確版本的OpenCV闲礼。
-
原因:Kinect-ROS會(huì)默認(rèn)安裝OpenCV3,將ROS和OpenCV連接起來的橋梁是一個(gè)叫
cv_bridge
的東西,其中就可能出現(xiàn)默認(rèn)的OpenCV版本和你自己裝的版本出現(xiàn)沖突的問題柬泽。 - 解決辦法:第一種是不使用cv_bridge包慎菲,修改cmakelists文件,我沒有選擇這種锨并,可以參考這個(gè)博客
第二種解決辦法:修改cv_bridge配置文件露该,將自己版本的OpenCV引入
- 1.打開cv_bridge配置文件:
cd /opt/ros/kinetic/share/cv_bridge/cmake/ sudo gedit cv_bridgeConfig.cmake
- 2.做如下修改:
這里是把需要的OpenCV庫的文件直接引入,其實(shí)并不需要整個(gè)OpenCV庫第煮,我們需要哪些方法就引入哪些庫文件即可解幼。
- 再次編譯,成功
上述方法的參考博客
4.在運(yùn)行ROS測試時(shí)包警,報(bào)錯(cuò): Unable to contact my own server at xxx
- 原因:胡亂修改了ROS_NASTRE_URI撵摆,之前修改這個(gè)是因?yàn)橄鄼C(jī)使用ROS版本測試的時(shí)候超時(shí),看到了一些奇怪的是解決方案就嘗試了一下害晦。實(shí)際上這個(gè)修改是為了能夠連接到指定的master上特铝,一般是和別的設(shè)備聯(lián)網(wǎng)才需要的,正常情況下還是設(shè)置成本地就好壹瘟。
-
解決辦法:修改到本地即可:
export ROS_HOSTNAME=localhost
export ROS_MASTER_URI=http://localhost:11311
5.編譯ROS的ORB_SLAM2的時(shí)候鲫剿,Eigen/Core報(bào)錯(cuò):
- 原因:eigen庫默認(rèn)安裝在了/usr/include/eigen3/Eiegn下
-
解決: 需要用下面的命令映射到/usr/include路徑下:
sudo ln -s /usr/include/eigen3/Eigen /usr/include/Eigen
6.編譯ORB_SLAM2的ROS版時(shí),遇到:undefined reference to symbol '_ZN5boost6system15system_categoryEv'
/usr/lib/x86_64-linux-gnu/libboost_system.so: 無法添加符號(hào): DSO missing from command line
- 原因:libboost_system.so 與libboost_filesystem.so找不到鏈接目錄
-
解決:在
ORBSLAM2/Examples/ROS/ORBSLAM2下的Cmakelists.txt
中稻轨,set(LIBS xxx)
最后添加一行
-lboost_system
已解決問題
相機(jī)跑ros時(shí)灵莲,超時(shí):
發(fā)現(xiàn)上述問題不大,在新的命令行輸入rviz仍然可以查看攝像頭數(shù)據(jù):
調(diào)用Kinect時(shí)殴俱,出錯(cuò):
- 解決:發(fā)現(xiàn)是yaml文件中的參數(shù)寫錯(cuò)了政冻,多寫了一個(gè)參數(shù),切記切記粱挡。
成果
使用Kinect跑通ORB_SLAM2:
未解決問題
使用ORB_SLAM2點(diǎn)云修改赠幕,獲得的點(diǎn)云文件沒有圖像。