GPS 可以为无人机提供较为准确的位置信息,但是某些时候可能会没有 GPS 信号,或者 GPS 信号不够稳定;比如说桥下,室内以及高楼林立的城市内。那么为了能够允许无人机在这些环境中飞行,我们需要提供其它位置估计手段,比如说SLAM。SLAM使用摄像头作为其主要传感器,传感器可以是单目摄像头,双目摄像头以及RGBD深度摄像头。这几种摄像头有着其对应的优缺点;比如说单目摄像头虽然价格低,体积小,但是它需要其它传感器的辅助,否则无法计算环境深度,也就没有办法为SLAM提供尺度信息;双目摄像头可以通过三角测量提供景深,但是计算量较大,并且需要良好标定;RGBD深度相机可以主动测距,但是对于环境较为敏感,测量距离受限,噪声较大,同时对于阳光以及玻璃等环境下无法正常工作。

usb_cam-test.launch中添加一句话,将话题由usb_cam/image_raw改为camera/image_raw

ROS_NAMESPACE=/camera/right rosrun image_proc image_proc image_raw:=image_raw

问题描述:安装ORB_SLAM2时编译“./build_ros.sh”时出现上述报错。
libboost_system.so: error adding symbols: DSO missing from command line
解决办法:在Examples/ROS/ORB_SLAM2/Cmakelist.txt 的文件后面加入两句话:

target_link_libraries(Stereo boost_system boost_filesystem)
target_link_libraries(RGBD boost_system boost_filesystem)

ORB-SLAM2算法流程清晰、代码简洁易读,包含了常见SLAM系统的所有模块:跟踪(Tracking)、局部建图(LocalMapping)、闭环检测(Loop closing);同时支持单目、双目(标定后)、RGB-D方式,即使对于剧烈运动也有很好的鲁棒性,是基于特征点的SLAM系统的经典算法,十分值得学习和借鉴。但是同样有一些局限之处:
1.无法用于导航和避障
ORB-SLAM2算法基于特征点法,构建的地图是稀疏的三维点云,而想要用于导航和避障任务,则需要重建稠密地图才行,因此ORB-SLAM2主要应用于定位和稀疏重建,而无法应用于导航和避障场景。

2.无法保存和加载地图
ORB_SLAM2源码中没有提供保存和加载地图功能,定位和建图也只能实时在线运行,即使是重定位也是在线的,无法离线保存、加载地图。

显示不了topic报frame 、transform之类错误,就有两个办法,
1.把global fixed frame设成topic自己所在的坐标系,按照上图的显示,应该改为tramcar;
2.用tf包工具发布global fixed frame到topic所在坐标系的tf关系,例如:
rosrun tf static_transform_publisher 0.0 0.0 0.0 0.0 0.0 0.0 map /camera_link 100 ;//将xxx映射为map
rostopic echo /aruco_single/pose

发布2D导航坐标点:(只能设置 xy z的坐标是默认高度2.5)
rostopic pub /move_base_simple/goal geometry_msgs/PoseStamped ‘{header: {stamp: now, frame_id: “map”}, pose: {position: {x: 1.0, y: 0.0, z: 0.0}, orientation: {w: 1.0}}}’

rosrun ORB_SLAM2 Mono /home/sch/ros_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/sch/ros_ws/src/ORB_SLAM2/Examples/Monocular/TUM1.yaml

编译报错解决方案 error: ‘make_unique’ is not a member of ‘g2o’
                
运行魔改的GAAS的SLAM
1.opencv需要3.4.5
2.g2o需要最新版本
3.相机格式需要使用灰度图L8

$ urdf_to_graphiz mobot.urdf 以图形的方式可视化模型结构
$ roslaunch gazebo_ros empty_world.launch 构建一个空的gazebo仿真环境
$ rosrun teleop_twist_keyboard teleop_twist_keyboard.py键盘控制(通过订阅Twist消息类型)
$ rosrun camera_calibration cameracalibrator.py --size 7x6 --square 0.01 right:=/stereo_camera/right/image_raw left:=/stereo_camera/left/image_raw right_camera:=/stereo_camera/right left_camera:=/stereo_camera/left --fix-principal-point --fix-aspect-ratio --zero-tangent-dist立体相机标定工具
1.更新gcc到5.0
添加软件源
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install gcc-5 g+±5
gcc5更新链接
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 53
–slave /usr/bin/g++ g++ /usr/bin/g+±5
–slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-5
–slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-5
–slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-5
查看版本
gcc -v

2.安装openGL
安装OpenGL Library
$ sudo apt-get install libgl1-mesa-dev
安装OpenGL Utilities
OpenGL Utilities 是一组建构于 OpenGL Library 之上的工具组,提供许多很方便的函式,使 OpenGL 更强大且更容易使用。
$ sudo apt-get install libglu1-mesa-dev
安装OpenGL Utility Toolkit
OpenGL Utility Toolkit 是建立在 OpenGL Utilities 上面的工具箱,除了强化了 OpenGL Utilities 的不足之外,也增加了 OpenGL 对于视窗介面支援。
$ sudo apt-get install libglut-dev
注意:但是在这一步时,我出现了以下情况:
Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Unable to locate package libglut-dev
修改:(改成以下命令)
$ sudo apt-get install freeglut3-dev

3.eigen3.2安装
1)在INSTALL文件所在的文件路径新建一个文件夹如build
2)进入build
3)cmake …
4)make
5)sudo make install

3.orbslam2安装依赖oangolin时 选择0.4版本

4.安装opencv3.2
mkdir relase,
cd relas
第六步:cmake

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local …
第七步:编译并安装

make
sudo make install
第八步:在/etc/ld.so.conf中添加 安装在/usr/local/的opencv动态链接库

sudo vim /etc/ld.so.conf
直接写:/usr/local/lib
第九步:设置头文件全局有效

sudo vim /etc/profile
添加:
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

5.编译orbslam2 ros时,先export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/wnw/Projects/ORB_SLAM2-master/Examples/ROS

6.安装Kinect V1 驱动

sudo apt-get install libfreenect-dev
sudo apt-get install ros-indigo-freenect-launch

可以通过 roslaunch freenect_launch freenect.launch 验证kinect驱动是否安装成功;
rostopic list查看ORB-SLAM2需要的两个topic: /camera/rgb/image_raw /camera/depth_registered/image_raw

7.orbslam2 ros配置launch文件
5. 配置launch文件
在解压后的ORB-SLAM2的根目录下新建文件kinect_orbslam2.launch , 其内容为(根据需要,红色字体改为对应的路径,其他的无需修改):

运行ORB-SLAM2
cd ORB-SLAM2
./build.sh
roslaunch kinect_orbslam2.launch

6.修改usb_cam-text.launch

7.安装libfreenect时,需要更新cmake到3.X版本
#增加ppa源 sudo add-apt-repository ppa:george-edison55/cmake-3.x #更新源 sudo apt-get update #安装 sudo apt-get install cmake #删除添加的源 sudo add-apt-repository --remove ppa:george-edison55/cmake-3.x sudo apr-get update

8.安装NVIDIA驱动
alt+ctrl+F1 sudo init3
sudo service lightdm stop
sudo sh ./N…

9.安装cartographer

Install wstool and rosdep

$sudo apt-get update
$sudo apt-get install -y python-wstool python-rosdep ninja-build
$mkdir catkin_ws
$cd catkin_ws wstool
$init src
$wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall
$wstool update -t src
$rosdep init rosdep update
rosdepinstall−−from−pathssrc−−ignore−src−−rosdistro=rosdep install --from-paths src --ignore-src --rosdistro=rosdepinstall−−from−pathssrc−−ignore−src−−rosdistro={ROS_DISTRO} -y
catkinmakeisolated−−install−−use−ninjasourceinstallisolated/setup.bash报错:Unrecognizedsyntaxidentifier"proto3".Thisparseronlyrecognizes"proto2".解决办法:更新protobuf:catkin_make_isolated --install --use-ninja source install_isolated/setup.bash 报错:Unrecognized syntax identifier "proto3". This parser only recognizes "proto2". 解决办法:更新protobuf:catkinm​akei​solated−−install−−use−ninjasourceinstalli​solated/setup.bash报错:Unrecognizedsyntaxidentifier"proto3".Thisparseronlyrecognizes"proto2".解决办法:更新protobuf: which protoc 找到上个版本的执行文件protoc地址然后到那里用 sudorm−rfprotoc到GitHub下载Protobuf3.5.0然后sudo rm -rf protoc 到GitHub下载Protobuf 3.5.0 然后sudorm−rfprotoc到GitHub下载Protobuf3.5.0然后sudo apt-get install autoconf automake libtool curl make g++ unzip
$./autogen.sh
$ ./configure
$ make
$ make check
$ sudo make install
$ sudo ldconfig # refresh shared library cache.
检查protobuf版本: $ protoc --version

10.安装tensorflow1.8
更新pip
$sudo pip install tensorflow-gpu==1.8 -i https://pypi.tuna.tsinghua.edu.cn/simple
sudo pip3 install tf-nightly-gpu
$sudo pip install tensorflow-gpu

11.安装caffe
需要英伟达显卡+cuda8+cudnn6
安装cudnn时 记得加权限 $sudo chmod a+r /usr/local/cuda-8.0/include/cudnn.h /usr/local/cuda-8.0/lib64/libcudnn*

12.Ubuntu编译找不到eigen3的解决方法
在主文件夹下直接查找FindEigen3.cmake文件,然后把它复制到报错的CMakeLists.txt对应的路径下,在CMakeLists.txt中添加

set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})

include_directories($ {EIGEN3_INCLUDE_DIRS})
然后重新编译就好.

更换无人机模型连接不上qgc:更新SDF中mavlink的插件

备份之前ubuntu里面安装程序的一些小东西相关推荐

  1. sony手机刷linux,Ubuntu Touch安装器现已支持一加3和索尼Xperia X智能机

    尽管 Canonical 官方已放弃 Ubuntu Touch 移动操作系统,但第三方开发者仍在积极提供定期的 OTA 更新和功能改进.今日,UBports 开发者 Marius Gripsgard ...

  2. 如何使用APTonCD备份和还原已安装的Ubuntu软件包

    APTonCD is an easy way to back up your installed packages to a disc or ISO image. You can quickly re ...

  3. 再生龙给分区安装linux,用Clonezilla再生龙备份还原UBUNTU(LINUX)系统分区(可以备份MAC系统分区)...

    苹果系统的分区备份问题总算解决了 用Clonezilla再生龙备份还原UBUNTU(LINUX)系统分区 去官方网站http://clonezilla.org/点击左面download 找到Alter ...

  4. ubuntu下firefox中,直接在网页上安装程序的方法

    我不知道别人是怎么做的,反正这个问题恶心死了. ubuntu下安装软件,一般都是gogole到一个页面,然后上面告诉你把下面的代码输入到ternimal. sudo apt-add-repositor ...

  5. Ubuntu安装程序出现“Sub-process usrbindpkg returned an error code (1)”的问题

    Ubuntu安装程序出现"Sub-process /usr/bin/dpkg returned an error code (1)"的问题 解决方法**: sudo可要可不要,自行 ...

  6. ubuntu 重装系统备份数据 ubuntu安装kde桌面

    1   ubuntu 重装系统备份数据 因为某些原因例如把Ubuntu系统玩挂了诸如此类的原因而需要重装Ubuntu,只要/home是挂载在独立的分区下,并且重装Ubuntu时没有格式化/home,那 ...

  7. 解决安装ubuntu时,出现安装程序向硬盘复制文件时遇到的错误

    问题描述: 使用U盘安装ubuntu系统时,出现 安装程序向硬盘复制文件时遇到错误: [Errno 5] Input/output error 此个别错误往往由有缺陷的CD/DVD光盘或CD/DVD驱 ...

  8. ubuntu下安装大恒相机驱动并调用程序采集图像

    一.ubuntu下安装大恒相机驱动 1.大恒GigE摄像头Ubuntu环境下的配置 大恒GigE摄像头Ubuntu环境下的配置 - Tzbubble - 博客园 2.官方的Linux版SDK常见问题解 ...

  9. xmanagr 注册机执行ubuntu 桌面程序,ubuntu无需安装 桌面环境

    xmanagr 注册机执行ubuntu 桌面程序,ubuntu无需安装 桌面环境 Xshell 5 注册码: 690313-111999-999313 Xftp 5 注册码:101210-450789 ...

最新文章

  1. NC:多样性激发的确定性细菌装配过程限制了群落功能
  2. VSS2005 添加文件夹方法!
  3. InfluxDB配置文件详解
  4. 学法减分小程序可用可运营源码附带安装教程
  5. Stateflow历史节点的使用
  6. Windows10下安装原生TensorFlow GPU版
  7. 计算机联机玩游戏的操作方法,3种建立局域网的方式,不用网也可以联机玩游戏-局域网设置...
  8. IADS Revision Note 1: Asymptotic Notations
  9. NO32、把数组排成最小的数(很好的一道题)
  10. 券商理财和银行理财的不同
  11. ORA12514问题
  12. 高性能ORM数据访问组件Deft,比dapper快20%以上
  13. 也谈谈我对腾讯“抄袭”的认识
  14. 升级电脑系统或者重装WIN10后,PADS软件卡死
  15. VCSA 6.7.U3n 离线打补丁
  16. 人生是一场秋花的盛开
  17. iOS 项目源码大全 github 国内外大神
  18. 基于人脸面部检测的口罩识别系统
  19. 什么是CISP-PTE证书?考什么?
  20. 损失函数(Loss)

热门文章

  1. Labelimg标注工具汉化及32位、64位可执行exe文件下载
  2. 报告平台模板html,一个易用的HTML测试报告模板
  3. 网络监控神器!这7大免费开源工具可别错过
  4. CODE 薄膜分析设计软件
  5. http隐蔽隧道搭建
  6. “三天打鱼俩天晒网”
  7. V8、JSCore、Hermes、QuickJS,hybrid开发JS引擎怎么选
  8. 小米二手手机回收价格表
  9. 毕业设计-基于Unity的餐厅经营游戏的设计与开发(附源码、开题报告、论文、答辩PPT、演示视频,带数据库)
  10. 为影驰主板运行Windows11开启fTPM2.0(Intel PTT)可信计算支持