基本依赖项

 
pip install \
	pandas \
	jinja2 \
	pyserial \
	cerberus \
	pyulog \
	numpy \
	toml \
	pyquaternion
  Q1:程序“pip”尚未安装。 您可以使用以下命令安装: sudo apt install python-pip   Q2: Traceback (most recent call last): File “/usr/bin/pip”, line 9, in from pip import main ImportError: cannot import name main   解决: sudo gedit /usr/bin/pip   将  
from pip import main  
        if __name__ == '__main__':  
            sys.exit(main()) 
  修改为:  
  from pip import __main__  
if __name__ == '__main__':  
    sys.exit(__main__._main())
 

安装依赖的包

 
sudo apt install -y \
	ninja-build \
	exiftool \
	python-argparse \
	python-empy \
	python-toml \
	python-numpy \
	python-yaml \
	python-dev \
	python-pip \
	ninja-build \
	protobuf-compiler \
	libeigen3-dev \
genromfs 
 

安装ros系统:安装 ROS Kinetic

 
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
sudo apt-get update
  Q1:W: GPG 错误:http://packages.ros.org/ros/ubuntu xenial InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY F42ED6FBAB17C654 W: 仓库 “http://packages.ros.org/ros/ubuntu xenial InRelease” 没有数字签名。 N: 无法认证来自该源的数据,所以使用它会带来潜在风险。 N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。   解决: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654 Executing: /tmp/tmp.0ahh2pNlMq/gpg.1.sh --keyserver keyserver.ubuntu.com –recv-keys F42ED6FBAB17C654  
sudo apt-get install ros-kinetic-desktop-full
  Q1: W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915 W: Possible missing firmware /lib/firmware/i915/bxt_guc_ver8_7.bin for module i915   解决: 首先去到这个网址,你会看到很多固件的选择项,你选择自己缺的那个点击进去。   https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915   进去以后呢,点击plain就会下载了。 把缺的几个固件都下载好以后,把它们复制到/lib/firmware/i915下。  
sudo rosdep init
rosdep update
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt install python-rosinstall python-catkin-tools python-rosinstall-generator python-wstool build-essential
 

install ros-gazebo plugins

 
sudo apt install ros-kinetic-gazebo-*
  完成上列步骤后,你可以通过下面的命令来测试是否成功安装  
roscore
  source:使当前shell读入路径为filepath的shell文件并依次执行文件中的所有语句,通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录   接下来,需要生成catkin工作空间,你所有的基于ROS的库都可以存放在此。  
mkdir -p ~/catkin_ws/src
 

安装MAVROS

 
sudo apt-get install ros-kinetic-mavros ros-kinetic-mavros-extras
 

安装geographic lib :

 
wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
sudo chmod a+x install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh
 

PX4 Firmware配置

 
cd ~/catkin_ws/src
git clone https://github.com/PX4/Firmware.git
cd Firmware
git checkout v1.8.0
make posix_sitl_default gazebo
  仿真运行:  
roslaunch px4 mavros_posix_sitl.launch
  检查连接  
rostopic echo /mavros/state
 

git配置

 
sudo apt-get update
sudo apt install git
git config --global user.name "(这里填写你github上注册的名字)" git config --global user.email “(这里填写你注册邮箱的名字)” 
git config --list 回车就会显示你的注册名字和注册邮箱
ssh-keygen -t rsa -C ”(注册邮箱名)”
  之后连续按三次回车就行了。  
cat ~/.ssh/id_rsa.pub
  把显示出来的代码全都复制下来 从终端的复制的代码,粘贴在key表单中  

下载GAAS 包

 
git clone git@github.com:generalized-intelligence/GAAS.git
 

模型文件所在地址更新到环境变量中:

 
 echo "export GAZEBO_MODEL_PATH=${GAZEBO_MODEL_PATH}:/home/yyl/catkin_ws/GAAS/simulator/models" >> ~/.bashrc
 

将模型以及配置文件拷贝到对应文件夹中:

 
cp -r /home/yyl/catkin_ws/GAAS/simulator/models* ~/catkin_ws/src/Firmware/Tools/sitl_gazebo/models/
cp -r /home/yyl/catkin_ws/GAAS/simulator/worlds/* ~/catkin_ws/src/Firmware/Tools/sitl_gazebo/worlds/
cp -r /home/yyl/catkin_ws/GAAS/simulator/posix-config/* ~/catkin_ws/src/Firmware/posix-configs/SITL/init/ekf2/
  打开无人机仿真模型:  
roslaunch px4 mavros_posix_sitl.launch 
  检查MAVROS连接情况:  
rostopic echo /mavros/state
  初始化无人机并启动:  
cd /home/yyl/catkin_ws/GAAS/demo/tutorial_1/1_px4_mavros_offboard_controller
python px4_mavros_run.py
 

无人机自动驾驶软件系列 E02 : 通过无人机机载摄像头构建建筑物 3D 模型

  更新文件“  
cd /home/yyl/catkin_ws/GAAS
git pull origin master
  将 Gazebo 仿真用到的文件拷贝到 PX4 文件所在目录中:  
cp -r /home/yyl/catkin_ws/GAAS/simulator/launch/* ~/catkin_ws/src/Firmware/launch/
cp -r /home/yyl/catkin_ws/GAAS/simulator/models/* ~/catkin_ws/src/Firmware/Tools/sitl_gazebo/models/
cp -r /home/yyl/catkin_ws/GAAS/simulator/worlds/* ~/catkin_ws/src/Firmware/Tools/sitl_gazebo/worlds/
cp -r /home/yyl/catkin_ws/GAAS/simulator/posix-config/* ~/catkin_ws/src/Firmware/posix-configs/SITL/init/ekf2/
  启动仿真  
roslaunch px4 sfm.launch
  检查 MAVROS 的连接情况:  
# 确保 "connected" 为 "True"
rostopic echo /mavros/state
  通过 Rviz 来查看发布出来的摄像头图片:  
rviz
  选择 “Add”->“by topic”->”/gi/simulation/left/image_raw“, 之后你可以看到当前的左目摄像头信息 订阅并存储左目摄像头的信息:  
rosbag record /gi/simulation/left/image_raw -O sfm.bag
  起飞无人机:  
python  /home/yyl/catkin_ws/GAAS/demo/tutoal_2/2_Struction_from_Motion/px4_mavros_run.py
  控制无人机圆型飞行:  
python /home/yyl/catkin_ws/GAAS/demo/tutorial_2/2_Struction_from_Motion/fly_circle.py
  处理 Rosbag:  
python bag2image.py --bag /home/yyl/sfm.bag  --output_path /home/yyl/piture    --image_topic /gi/simulation/left/image_raw
 

无人机自动驾驶软件系列 E03: 在无GPS环境下通过SLAM实现位置估

  更新GAAS : cd /home/yyl/catkin_ws/GAAS git pull origin master   将ROS的launch文件拷贝到PX4相应文件夹内:  
cp -r /home/yyl/catkin_ws/GAAS/simulator/launch/*  ~/catkin_ws/src/Firmware/launch
  将“(PX4_FIRMWARE_PATH)/Firmware/Tools/sitl_gazebo/models" 中的对应模型删除,并重新拷贝:  
cp -r /home/yyl/catkin_ws/GAAS/simulator/models/* ~/catkin_ws/src/Firmware/Tools/sitl_gazebo/models/
  If you are using ubuntu, just type “./install_dep.sh” to install all the dependencies except pangolin.  
sudo chmod +x ./install_dep.sh
./install_dep.sh
 

安装Pangolin:

  (参考https://www.cnblogs.com/newneul/p/8270137.html)   1、下载安装包:  
git clone https://github.com/stevenlovegrove/Pangolin.git
  2、安装依赖和编译软件  
sudo apt-get install libglew-dev
sudo apt-get install cmake
sudo apt-get install libpython2.7-dev
  3、编译安装   cd [path-to-pangolin(Pangolin路径)]//打开解压后的Pangolin文件夹 我的:  
cd /home/yyl/catkin_ws/GAAS/software/SLAM/ygz_slam_ros/Pangolin
mkdir build
cd build
cmake ..
make
sudo make install 
 

安装Dbow3:

 
 git clone https://github.com/rmsalinas/DBow3.git
cd DBow3
cmake ..
 make 
 sudo make install
 

安装PCL:

  (参考:https://blog.csdn.net/zkj126521/article/details/80157351)   1、下载源码:  
git clone https://github.com/PointCloudLibrary/pcl
  2、安装依赖包:  
sudo apt-get update 
sudo apt-get install git build-essential linux-libc-dev 
sudo apt-get install cmake cmake-gui 
sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev
sudo apt-get install mpi-default-dev openmpi-bin openmpi-common
sudo apt-get install libflann1.8 libflann-dev 
sudo apt-get install libeigen3-dev 
sudo apt-get install libboost-all-dev 
sudo apt-get install libvtk5.10-qt4 libvtk5.10 libvtk5-dev 
sudo apt-get install libqhull* libgtest-dev 
sudo apt-get install freeglut3-dev pkg-config 
sudo apt-get install libxmu-dev libxi-dev 
sudo apt-get install mono-complete 
sudo apt-get install qt-sdk openjdk-8-jdk openjdk-8-jre 
  3、编译源码:  
cd pcl
cmake  -D CMAKE_BUILD_TYPE=None  -D BUILD_GPU=ON  -D BUILD_apps=ON  -D BUILD_examples=ON .  
make
sudo make instal
 

安装OpenNI、OpenNI2

 
sudo apt-get install libopenni-dev   
sudo apt-get install libopenni2-dev  
 

安装g2o:

  (参考https://blog.csdn.net/slzlincent/article/details/86555166)  
git clone https://github.com/RainerKuemmerle/g2o.git
sudo apt-get install libeigen3-dev
sudo apt-get install libsuitesparse-dev
sudo apt-get install qtdeclarative5-dev
sudo apt-get install qt5-qmake
sudo apt-get install libqglviewer-dev
cd g2o
mkdir build
cd build
cmake  ..
make
sudo make install
 

安装opencv4.1.1:

 
sudo apt-get install build-essential
sudo apt-get install cmake git g++
sudo apt-get install libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
sudo apt-get install checkinstall yasm libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libfaac-dev libmp3lame-dev libtheora-dev
sudo apt-get install libopencore-amrnb-dev libopencore-amrwb-dev libavresample-dev x264 v4l-utils
sudo apt-get install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev  
sudo apt-get install libxvidcore-dev libx264-dev ffmpeg
sudo apt-get install libatlas-base-dev gfortran   
sudo apt-get install libopencv-dev  libqt4-dev qt4-qmake libqglviewer-dev libsuitesparse-dev libcxsparse3.1.4 libcholmod3.0.6
sudo apt-get install python-dev python-numpy
sudo apt-get install libprotobuf-dev protobuf-compiler
sudo apt-get install libgoogle-glog-dev libgflags-dev
sudo apt-get install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen
cd /home/yyl/catkin_ws/GAAS/software/SLAM/ygz_slam_ros/opencv-4.1.1
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D OPENCV_EXTRA_MODULES_PATH=/home/yyl/catkin_ws/GAAS/software/SLAM/ygz_slam_ros/opencv-4.1.1/opencv_contrib-4.1.1/modules -D PYTHON_EXECUTABLE=/usr/bin/python -D BUILD_EXAMPLES=ON ..
make
sudo make install
 

编译openc出现的问题和解决:

  Q1:-- Checking for module ‘tesseract’ – No package ‘tesseract’ found – Tesseract: NO   解决:有两种方法,我测试第一种通过 1、  
sudo apt-get install -y tesseract-ocr libtesseract-dev liblepto nica-dev
sudo pip3 install tesserocr pillow
  2、安装Tesseract(来源https://blog.csdn.net/tintinetmilou/article/details/80212305)  
安装依赖包:
sudo apt-get install autoconf automake libtool autoconf-archive pkg-config libpng12-dev libjpeg8-dev libtiff5-dev zlib1g-dev -y 
sudo apt-get install libicu-dev libpango1.0-dev libcairo2-dev   
 

leptonica安装

  sudo apt install git (如果没有下载git 需要执行去下载安装git) git clone https://github.com/DanBloomberg/leptonica cd leptonica autoreconf -vi ./autobuild ./configure make -j8 sudo make install  

安装tesseract

 
git clone --depth 1 https://github.com/tesseract-ocr/tesseract.git  
cd tesseract  
./autogen.sh  
./configure --enable-debug  
LDFLAGS="-L/usr/local/lib" CFLAGS="-I/usr/local/include" make -j8 
sudo make install  
sudo ldconfig  
 

检测安装成与否

  tesseract -v Q2: Failed to find gflags - Failed to find an installed/exported CMake configuration for gflags, will perform search for installed gflags components.   解决:安装gflags(来源https://blog.csdn.net/weixin_44354586/article/details/89399763) 下载源码:  
git clone https://github.com/gflags/gflags
cd gflags
mkdir build
cd build
cmake ..
make
sudo make install
  Q3:The imported target “vtkRenderingPythonTkWidgets” references the file “/usr/lib/x86_64-linux-gnu/libvtkRenderingPythonTkWidgets.so” but this file does not exist. Possible reasons include:
  • The file was deleted, renamed, or moved to another location.
  • An install or uninstall procedure did not complete successfully.
  • The installation package was faulty and contained “/usr/lib/cmake/vtk-6.2/VTKTargets.cmake” but not all the files it references. 解决:(来源https://www.cnblogs.com/sincere-diligence/p/9336045.html)sudo ln -s /usr/lib/python2.7/dist-packages/vtk/libvtkRenderingPythonTkWidgets.x86_64-linux-gnu.so /usr/lib/x86_64-linux-gnu/libvtkRenderingPythonTkWidgets.so
  Q4:没有安装flake8 解决: 有两种方式: 1、# 安装到特定版本  
sudo python<version> -m pip install flake8
  我的是 sudo python2.7 -m pip install flake8   2、安装到默认python  
python -m install flake8
  未完,接下是GAAS 学习二…  

阶段总结

  (1)配置环境务必保证每一步是正确的,否则越到后面错误就越,因为包包依赖,包包关联。 (2)缺少那个包有4种解决的方法: 1)sudo apt-get install (包名称) 2)sudo pip/pip3 install (包名字) 3)源码编译 4)百度 install (包名字) (3)编译软件要看对应软件的安装说明(readme) (4)对于出现找不到XX .XX版的问题,修改CmakeList文件,去掉版本的要求 (5)对于找不到XX的问题多半是依赖包没装全或者安装完没有sudo make install (6)源码编译的步骤: 1)cd 文件夹 2)mkdir build 3)cd build 4)cmake … 5)make 6)sudo make install (7)有时下载或编译的速度慢了,可以取消在重新来