无人机自动驾驶GAAS学习一

building GAAS environment

基本依赖项

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 [email protected]: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 -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)有时下载或编译的速度慢了,可以取消在重新来

你可能感兴趣的:(无人机学习)