ROS之自动驾驶相关模块安装
(此文章为自动驾驶软件环境安装备份,便于查找记录!)
安装流程:
依赖环境安装
- 1 ROS安装
- 2 OpenCV安装
- 3 Qt安装
- 4 编译bug解决方法
1 ROS安装
安装的是kinetic(Ubuntu16.04),可以参考官方教程,
网上也有不错的中文安装版,比官网讲的更详细一点——ROS不能再详细的安装教程
1.1. 安装grid_map,sudo apt-get install ros-kinetic-grid-map
1.2. 安装catkin build: sudo apt-get install python-catkin-tools
1.3. install boost 1.58.0
sudo ./bootstrap.sh
sudo ./b2 install
#卸载
cd /usr/local/inlcude
sudo rm -r boost/
cd /usr/local/lib
sudo rm *boost*
1.4. install dlib
wget http://dlib.net/files/dlib-19.6.tar.bz2
tar xvf dlib-19.6.tar.bz2
cd dlib-19.6/
mkdir build
cd build
cmake -DBUILD_SHARED_LIBS=ON ..
cmake --build . --config Release
sudo make install
sudo ldconfig
cd ..
2 OpenCV安装
我安装的是OpenCV3.4版本,Ubuntu中OpenCV的安装教程很多,推荐直接下载源码编译安装,一般都没啥问题。
-
下载源码, OpenCV源码,解压源码后,在解压后的目录中创建build文件夹并进去:
mkdir build
cd build
-
安装依赖包
apt-get install build-essential sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
-
编译安装
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local .. sudo make sudo make install
-
环境配置
sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf' sudo ldconfig
3 Qt的安装
Qt的安装比较简单,AutoWare要求Qt5.2以上,我安装的Qt5.10。
直接去官网下载你想使用的版本,下载页面。
下载完成后,进入下载目录,先更改权限:sudo chmod a+x qt-opensource-linux-x64-5.10.0.run
然后直接运行安装:./qt-opensource-linux-x64-5.10.0.run
照着弹出的界面安装就好。
发现网上的方法还需要去单独配置Qt的环境变量,我在使用过程中发现直接照着界面安装完成后可以直接使用。
至此,已经完成了OpenCV和Qt的安装,可以用Qt建立一个新的使用OpenCV的C++小demo测试一下是否真的可以使用。
记得,在新建工程的.pro文件中配置OpenCV:
INCLUDEPATH += /usr/local/include \
/usr/local/include/opencv \
/usr/local/include/opencv2
LIBS += /usr/local/lib/libopencv_*.so
4 编译bug解决方法
- /usr/lib/aarch64-linux-gnu/libGL.so: undefined reference to `drmCloseOnce’
cd /usr/lib/aarch64-linux-gnu
sudo rm libEGL.so
sudo ln -s /usr/lib/aarch64-linux-gnu/tegra-egl/libEGL.so libEGL.so
sudo rm libGL.so
sudo ln -s /usr/lib/aarch64-linux-gnu/tegra/libGL.so libGL.so
参考:https://blog.csdn.net/zhenguo26/article/details/82756063
- undefined reference to
dgesvd_
原因:dlib库的问题
解决:
project(hello)
cmake_minimum_required(VERSION 2.8)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(dlib REQUIRED)
include_directories(${dlib_INCLUDE_DIRS})
aux_source_directory(. SRC_LIST)
add_executable(${PROJECT_NAME} ${SRC_LIST})
target_link_libraries(${PROJECT_NAME} ${dlib_LIBRARIES})
静态库编译:
project(hello)
cmake_minimum_required(VERSION 2.8)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
aux_source_directory(. SRC_LIST)
add_executable(${PROJECT_NAME} ${SRC_LIST})
target_link_libraries(${PROJECT_NAME} libdlib.a X11 pthread)
参考:https://blog.csdn.net/qq_29573053/article/details/77773012
ros多机通讯
- 主机:启动master节点
- 从机:点击网络连接按钮(右上角)-> Edit Connections -> add -> IPv4 setting
把地址改为主机的网段,比如主机地址为192.168.2.12,则把从机ip设置为192.168.2.XX,mask设置为24,gateway设置为192.168.2.1 - 这个时候应该可以ping通主机了。ping 192.168.2.12
- ROS如果想要进行通信,则需要在修改 export ROS_MASTER_URI=“http://192.168.2.12:11311”,可以将其写入.bashrc中
- 但是这个应该仍然无法收到数据,在终端键入rostopic info /minibus/points_concatenated
- 主机: export ROS_IP=192.168.2.12,可以将其写入.bashrc
- 从机: export ROS_IP=192.168.2.20, 可以将其写入.bashrc
- 这个时候应该就可以收到消息了
参考:https://www.jianshu.com/p/69815d79d37f
上一篇: Docker安装(Ubuntu 16.04 amd64)
下一篇: 查找算法之线性查找