Ubuntu20.04 下环境配置
1.Ros 环境配置
wget http://fishros.com/install -O fishros && . fishros
安装完毕后输入:
roscore
2.Mavros 环境配置
mavros 安装分为两种方式,文中以二进制安装为例。
2.1 安装依赖
sudo apt-get install ros-noetic-mavros ros-noetic-mavros-extras
2.2 使用脚本完成安装
(1)、下载脚本文件
wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
(2)、执行脚本文件
./install_geographiclib_datasets.sh
3.OpenCV 环境配置( OpenCV3.4.14 OpenCV_Contrib3.4.14)
说明
目前 OpenCV4 官方版本已经更新到了 4.4.0 版,OpenCV3 也已经更新到了 3.4.14,但理论 OpenCV3 各个版本的配置方法相同,下面以 3.4.14 为例配置;许多项目由于要使用一些 OpenCV 中已经集成到 contrib 中的模块,所以需要重新编译 OpenCV 和 OpenCV_Contrib,之前安装配置一直没有记录,这次特意记录便于后续使用,供大家参考,如有纰漏或问题,欢迎留言。
但务必注意,两者版本必须保持一致。
3.1 下载
- 可以直接在官网、GitHub 进行下载对应版本的 Sources:
官网下载链接
GitHub 链接 - 由于官网下载速度过慢,给出百度云链接,附一些教程书籍(提取码: gq39):
百度云链接,包含一些 OpenCV 教程书籍
3.2 安装
3.2.1 各种依赖包安装
sudo apt-get install ros-noetic-serial
sudo apt-get install pkg-config
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev qt5-default
sudo apt-get install build-essential qt5-default ccache libv4l-dev libavresample-dev libgphoto2-dev libopenblas-base libopenblas-dev doxygen openjdk-8-jdk pylint libvtk6-dev
3.2.2 编译前准备
1、解压:
直接将两个包解压:
sudo unzip opencv-3.4.14.zip
sudo unzip opencv_contrib-3.4.14.zip
2、构建目录结构
将 opencv_contirb 放入 opencv 目录:
sudo cp -r opencv_contrib-3.4.14 opencv-3.4.14
进入 opencv-3.4.14 目录下,新建 build 文件夹,使用 cmake 生成 makefile:
cd opencv-3.4.14
sudo mkdir build && cd build
3.2.3 编译安装
1、生成 makefile 文件
在 build 目录下,使用 cmake 生成 Makefile:
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/home/phoenixtech/Music/opencv-3.4.14/opencv_contrib-3.4.14/modules/ ..
sudo cmake -DENABLE_PRECOMPILED_HEADERS=OFF -D CMAKE_BUILD_TYPE=Release -DBUILD_TIFF=ON -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/home/phoenixtech/Music/opencv-3.4.14/opencv_contrib-3.4.14/modules/ ..
注意:OPENCV_EXTRA_MODULES_PATH 是你自己 opencv_contrib-3.4.14 下面的 modules 目录,务必进行修改后在执行,下图给出一个例子:
即 OPENCV_EXTRA_MODULES_PATH=/home/phoenixtech/Music/opencv-3.4.1/opencv_contrib-3.4.1/modules … ,两点不能省略
经过一段时间后生成完毕,提示如下:
--Configuring done
--Generating done
--Build files have been written to:/home/phoenixtech/Music/opencv-3.4.14/build
2、编译
Makefile 成功生成后,使用 make 在 build 下直接编译:
sudo make -j8 #可以使用多线程编译,加快速度
编译需要更长一段时间(我自己在 15 分钟左右,如果中间中断,可以多次执行),成功后提示:
[100%]Built target opencv_stitching
然后进行安装即可:
sudo make install
3.2.4 链接库共享
为了让编译器发现你的 OpenCV 库,需要执行:
sudo ldconfig -v
至此,安装全部结束。
3.3 使用 OpenCV 官方测试程序测试
进入如下目录:/home/phoenixtech/Music/opencv-3.4.14/samples/cpp/example_cmake,执行以下命令:
cd /home/phoenixtech/Music/opencv-3.4.14/samples/cpp/example_cmake
sudo mkdir build && cd build # 建立编译build文件夹
sudo cmake .. # 生成makefile文件
sudo make # 编译生成目标文件opencv_example
cd bulid
./opencv_example
该程序会自动打开摄像头,并在图像左上角显示 Hello OpenCV 字样,出现即说明安装成功:
3.4 CmakeLists.txt 的一般写法
cmake_minimum_required(VERSION 2.0) #指定cmake版本
project(face_6.0) #指定项目的名称,一般和项目的文件夹名称对应
set(CMAKE_CXX_FLAGS "${CAMKE_CXX_FLAGS} -std=c++11 -pthread")
#指定头文件目录
include_directories(./)
include_directories(./inc)
#指定静态和动态文件目录
link_directories(../linux_so)
#
find_package(OpenCV REQUIRED)
#该指令的主要作用就是将指定的源文件生成链接文件,然后添加到工程中去。
#arcsoft_face生成的库文件名 [STATIC | SHARED | MODULE] 库类型
add_executable(face_6.0
./inc/amcomdef.h
./inc/arcsoft_face_sdk.h
./inc/asvloffscreen.h
./inc/merror.h
./master.cpp
./face_Factory.cpp
./face_Factory.hpp
./LinuxSerial.cpp
./LinuxSerial.hpp
)
#在给定的作用域内设置一个命名的属性
set_property(TARGET face_6.0 PROPERTY POSITION_INDEPENDENT_CODE ON)
#链接库文件
target_link_libraries(face_6.0
arcsoft_face
arcsoft_face_engine)
target_link_libraries(face_6.0 ${OpenCV_LIBS})
4.PX4 固件下载
4.1 PX4 固件下载
PX4 的源码处于 GitHub,因为众所周知的原因 git clone 经常失败,此处从 Gitee 获取 PX4 源码和依赖模块。
cd ~/
git clone https://gitee.com/voima/PX4-Autopilot.git
cd ~/PX4-Autopilot
git checkout v1.14.0 #切换到1.14.0分支,当然也可以尝试其他版本
下载完成后需注意,还需更新 modules,此更新的链接来源于~/PX4-Autopilot/.gitmodules(注意是隐藏文件),.gitmodules 内部的链接均为 GitHub,因此 git submodule update --init --recursive 时大概率失败,此时需要打开.gitmodules 文件,以此将内部的模块使用 Gitee 的链接替换掉。
git submodule update --init --recursive # 在~/PX4-Autopilot目录下执行
完成更新后,需配置~/.bashrc 文件,打开该文件,在底部添加如下内容,保存。
# >>> PX4 initialize >>>
source ~/PX4-Autopilot/Tools/simulation/gazebo-classic/setup_gazebo.bash ~/PX4-Autopilot ~/PX4-Autopilot/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot/Tools/simulation/gazebo-classic/sitl_gazebo-classic
# <<< PX4 initialize <<<
新打开一个终端,输入 roscd px4 可直接跳转到目录~/PX4-Autopilot。
4 .2 PX4 固件编译
在路径~/PX4-Autopilot 下 make px4_sitl_default gazebo,看到出现报错即按照提示安装缺失的模块即可。
cd ~/PX4-Autopilot # 也可以 roscd px4
make px4_sitl_default gazebo
或可先直接使用命令安装依赖:
sudo apt install python3-pip
pip3 install kconfiglib
pip3 install future
pip3 install numpy
pip3 install empy==3.3.4
pip3 install --user jinja2
pip3 install --user jsonschema
sudo apt-get update
sudo apt-get install libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
安装完毕后,使用 make px4_sitl_default gazebo 编译,直接通过。
make px4_sitl_default gazebo
5.PCL 库下载
5.1 安装依赖
sudo apt-get update
sudo apt-get install ros-noetic-pcl-conversions
sudo apt-get install cmake
sudo apt-get install git
安装 PCL(Point Cloud Library)库时,还有可能需要安装以下依赖项:
- Boost:PCL 使用了 Boost 库。可以使用以下命令安装 Boost:
sudo apt-get install libboost-all-dev
- Eigen:PCL 依赖于 Eigen 线性代数库。可以使用以下命令安装 Eigen:
sudo apt-get install libeigen3-dev
- FLANN:PCL 使用了 FLANN(Fast Library for Approximate Nearest Neighbors)库。可以使用以下命令安装 FLANN:
sudo apt-get install libflann-dev
- VTK:PCL 的可视化模块需要 VTK(Visualization Toolkit)库。可以使用以下命令安装 VTK:
sudo apt-get install libvtk7-dev
- Qhull:PCL 使用了 Qhull 库进行几何计算。可以使用以下命令安装 Qhull:
sudo apt-get install libqhull-dev
- libusb:如果你需要使用 PCL 中的点云采集设备接口,可能需要安装 libusb 库。可以使用以下命令安装 libusb:
sudo apt-get install libusb-1.0-0-dev
- OpenNI:如果你需要使用 PCL 中的 OpenNI 驱动程序和接口,可能需要安装 OpenNI 开发包。可以使用以下命令安装 OpenNI
sudo apt-get install libopenni-dev
5.2 安装
sudo apt-get install libpcl-dev
sudo apt install ros-noetic-pcl-conversions ros-noetic-pcl-ros ros-noetic-perception-pcl ros-noetic-perception
配置环境变量
vim ~/.bashrc 添加如下:
export CPLUS_INCLUDE_PATH="/usr/include/pcl-1.10:$CPLUS_INCLUDE_PATH"
export LIBRARY_PATH="/usr/lib/x86_64-linux-gnu:$LIBRARY_PATH"
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于