【车机协同slam】miniPC、Nano、T265、UWB linktrack P-B

0、前言

0.1 软硬件

(1)windows 虚拟机 ubuntu20.04 + ROS noetic(测试用)
(2)nano ubuntu18.04 + ROS melodic(从机)
(3)迷你PC ubuntu18.04 + ROS melodic(主机)

0.2 实现步骤

(1)装系统、换源、装ROS
(2)T265
(3)UWB(Linktrack P-B)
(4)ROS主从配置及交互

一、装系统、换源、装ROS

1.1 装系统、换源

  • 虚拟机装ubuntu:
    https://blog.csdn.net/weixin_44029896/article/details/122877171?
  • Nano装ubuntu:

2.1 装ROS

  • ROS Noetic or Melodic:
    http://www.autolabor.com.cn/book/ROSTutorials/chapter1/12-roskai-fa-gong-ju-an-zhuang/124-an-zhuang-ros.html

二、T265

  • 【报错时看本节最后】
  • 英特尔官网(看技术规格用):
    https://www.intelrealsense.com/zh-hans/tracking-camera-t265/
  • IntelRealSense Github官网(总网):
    https://github.com/IntelRealSense/librealsense

2.1 ubuntu 安装 T265 SDK(已测18、20、Nano):

  • 官网教程(我用):
    https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md
  • 参考教程:
    https://blog.csdn.net/crp997576280/article/details/109544456?

(1)注册服务器的公钥

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE

(2)将服务器添加到存储库列表

sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo $(lsb_release -cs) main" -u

(3)安装包-x86架构-miniPC执行如下命令

sudo apt-get install librealsense2-dkms
sudo apt-get install librealsense2-utils
sudo apt-get install librealsense2-dev
sudo apt-get install librealsense2-dbg

(3)安装包-ARM架构-Nano执行如下命令

sudo apt-get install librealsense2-utils
sudo apt-get install librealsense2-dev

(4)测试

realsense-viewer

2.2 ubuntu 安装 T265 ROS包(已测18、20、nano):

  • 官网教程:(我用)
    https://github.com/IntelRealSense/realsense-ros
  • 参考教程:
    https://blog.csdn.net/crp997576280/article/details/109544456?
  • 注解:(很有必要,以后都写,再看发现自己都忘了)
    T265包有两种方式下载获取,一种是直接从ros伴生里下载,简单但是不是最新的。另一种是下载最新的包,复杂但是最新。Nano最好用第一种方法,因为用第二种会报错,根本原因是Nano ARM内核,不能直接安装dkms包,应该可以解决,个人没去整了。

————————Nano按如下操作:————————
(0)Nano直接下载ROS伴生包,后直接跳到第五步,去测试。

sudo apt-get install ros-$ROS_DISTRO-realsense2-camera

————————miniPC按如下操作:————————
(1)新建工作空间

mkdir -p ~/T265/src
cd ~/T265/src/

(2)下载源码

git clone https://github.com/IntelRealSense/realsense-ros.git
cd realsense-ros/
git checkout `git tag | sort -V | grep -P "^2.\d+\.\d+" | tail -1`
cd ..

(3)编译

catkin_init_workspace
cd ..
catkin_make clean
catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
catkin_make install

(4)将该工作空间添加到环境变量(运行完重启终端)

echo "source ~/T265/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

(5)测试

#输出图像
roslaunch realsense2_camera demo_t265.launch
#无图(个人理解)
roslaunch realsense2_camera rs_t265.launch

(6)ROS订阅里程计信息

rostopic echo /camera/odom/sample
  • 【报错解决:】
  • ERROR1:ddynamic_reconfigure 未找到
cd ~/T265/src
git clone https://github.com/pal-robotics/ddynamic_reconfigure.git
  • ERROR2:git clone 卡着不动
    运行这个,然后重启终端,再git clone
sudo apt-get install gnutls-bin
git config --global http.sslVerify false
git config --global http.postBuffer 1048576000

三、UWB (linktrack pb 模块)

  • 【报错时看本节最后】
  • 官网:
    https://www.nooploop.com/download/
  • 官方ROS包(github):
    https://github.com/nooploop-dev/nlink_parser
  • 参考教程:
    https://blog.csdn.net/i_robots/article/details/107410771?

3.1 下载windows上位机、设置uwb模式

  • 官网下载官方上位机NAssistant ,根据用户手册设置其参数及模式。

3.2 安装串口通信库

git clone https://github.com/nooploop-dev/serial.git
cd serial
make
make test
sudo make install

3.3 下载uwb ros包

mkdir -p ~/UWB/src
cd ~/UWB/src/
git clone --recursive https://github.com/nooploop-dev/nlink_parser.git 
cd ../
catkin_make
echo "source ~/UWB/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

3.4 设置串口号和权限

  • (1)插拔,找到UWB对应的串口号,到linktrack.launch文件夹里修改(我的是/dev/ttyACM0)
# 安装
sudo apt install cutecom 
# 启动
sudo cutecom
  • (2)给串口添加权限
sudo chmod 777 /dev/xxx

3.5 运行及订阅

  • (1)运行launch文件(确保前面已经把串口号改对)
roslaunch nlink_parser linktrack.launch
  • (2)查看发布的话题名称,然后订阅他
rostopic list
rostopic echo /nlink_linktrack_nodeframexxx
  • 【报错解决:】
  • ERROR1:"ERROR: Cannot load message class for … Are your messages built
    该错误是因为没添加环境变量。前面的代码里是添加了的,是不是没重启命令行?
  • ERROR2:libserial.so文件找不到
sudo gedit ~/.bashrc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

四、ROS主从配置及机车交互

4.1 ROS分布式通信设置

参考网址:
http://www.autolabor.com.cn/book/ROSTutorials/5/44-rosfen-bu-shi-tong-xin.html
配套视频:
https://www.bilibili.com/video/BV1Ci4y1L7ZZ?

4.2 ROS与车通信

4.3 ROS与无人机通信(Mavros安装)

(0)思路记录

  • 介绍:mavros是ros与mavlink协议两个官方都支持的ROS功能包,所以教程两家都有,其实是一样的。
  • mavlink官网教程(我用的):
    https://github.com/mavlink/mavros
  • ROS官网命令教程:
    http://wiki.ros.org/mavros#Usage
  • 踩坑:说白了就两行代码,但是!!!!!!!哎,整了整整一上午。坑:mavros 需要的 GeographicLib 太难下了,一直下不下来,在网上各种百度,没找到有用的,最后去官网找的,手动复制了进去。(搞不懂,官网里咋那么难找)
  • 注释:mavros和其他包一样,有两种安装方法,一个是源码,另一个是二进制。区别是二进制版的只能用ros命令调用mavros,看不到源代码,优点:好安装。
  • (1)安装mavros
sudo apt-get install ros-noetic-mavros ros-noetic-mavros-extras
sudo apt-get install ros-melodic-mavros ros-melodic-mavros-extras

- (2)安装GeographicLib(官网方法,报错了就用下一个我用的方法)

官网给的安装方法,给了一个脚本,运行脚本下载:

wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
./install_geographiclib_datasets.sh
  • (2)安装GeographicLib -(我用的)
    • 直接去GeographicLib 官网下载对应的三个包,下载得到三个文件夹。
      1.GeographicLib geoids egm96-5 官网下载链接:
      https://sourceforge.net/projects/geographiclib/files/geoids-distrib/egm96-5.tar.bz2/download
      2.GeographicLib gravity egm 96官网下载链接
      https://sourceforge.net/projects/geographiclib/files/gravity-distrib/egm96.zip/download
      3.GeographicLib magnetic emm2015 官网下载链接:
      https://sourceforge.net/projects/geographiclib/files/magnetic-distrib/emm2015.zip/download
    • 下载完后得到三个压缩包,解压后放到一个名为 GeographicLib的文件夹里。(文件名必须这样)
    • 把那个文件夹放到Ubuntu 路径: /usr/share
    • ok
  • (3)测试

USB插上飞控,打开终端,检查是否识别到飞控,输入命令

ll /dev/ttyACM*

检测到后,添加权限,否则无法启动

sudo chmod 777 /dev/ttyACM0

启动节点

roslaunch mavros px4.launch _fcu_url:=/dev/ttyACM0:57600
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值