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解决方法

  1. /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

  1. 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多机通讯

  1. 主机:启动master节点
  2. 从机:点击网络连接按钮(右上角)-> Edit Connections -> add -> IPv4 setting
    把地址改为主机的网段,比如主机地址为192.168.2.12,则把从机ip设置为192.168.2.XX,mask设置为24,gateway设置为192.168.2.1
  3. 这个时候应该可以ping通主机了。ping 192.168.2.12
  4. ROS如果想要进行通信,则需要在修改 export ROS_MASTER_URI=“http://192.168.2.12:11311”,可以将其写入.bashrc中
  5. 但是这个应该仍然无法收到数据,在终端键入rostopic info /minibus/points_concatenated
  6. 主机: export ROS_IP=192.168.2.12,可以将其写入.bashrc
  7. 从机: export ROS_IP=192.168.2.20, 可以将其写入.bashrc
  8. 这个时候应该就可以收到消息了

参考:https://www.jianshu.com/p/69815d79d37f

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值