机载tx2与飞控连接排错指南

文章目录

    • 1 安装ROS
    • 2 安装MAVROS
    • 3 机载电脑和飞控连接
    • 4 启动命令测试

打算把机载电脑tx2和飞控进行连接,控制无人机飞行,这个过程太多bug,记录一下,提醒大家,多看官网教程。

1 安装ROS

参考资料

  • ROS官网:Ubuntu install of ROS Melodic
  • CSDN链接:ubuntu18.04安装ROS Melodic(最详细配置)

Tips:

用中科大USTC的源比较快,其他的源也可以参考官网

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

安装过程过程中,sudo rosdep init 出错了,没管(等下安装MAVROS才会有影响,解决方法见下文),继续执行下面的语句,全部执行完了,就可以测试。

# 测试
roscore # 第一个终端,启动ros核心,启动成功证明安装成功
rosrun turtlesim turtlesim_node # 第二个终端,打开小海龟
rosrun turtlesim turtle_teleop_key # 第三个终端,控制小海龟动起来

sudo rosdep init 出错解决方法:本文之后,世上再无rosdep更新失败问题!,亲测有效

在的前提下,上述问题都不是问题,但是架构的不同,tx2上没办法使用工具,只能通过各种方法解决了。

2 安装MAVROS

参考资料

  • PX4官网:ROS with MAVROS Installation Guide
  • CSDN链接:最新mavros详细安装教程

3 机载电脑和飞控连接

本来使用老版安卓数据线和机载电脑连接的,结果连上了鼠标键盘都动不了了,至今不知道为什么,看了一些帖子,讲道理是可以这么连的,后面连飞控的 TELEM2端口 就可以了,图片是从淘宝看到的。
机载tx2与飞控连接排错指南_第1张图片

4 启动命令测试

输入命令测试MAVROS是否安装成功,并且验证飞控是否成功和机载电脑连接成功。

roslaunch mavros px4.launch fcu_url:="/dev/ttyUSB0:921600" # 在终端中输入飞控和Mavros连接的命令

其中,fcu_url 表示把 px4.launch 里面的 fcu_url 参数的值改为 /dev/ttyUSB0:921600 ,通过查看 px4.launch 可以看到原始的串口是ACM0,921600是波特率,57600也可以用,具体的串口可以用cutecom查看。

查看串口

在终端输入命令安装cutecom,利用cutecom查看串口号,有时候会变的,建议连接之后查看一下。

sudo apt-get install cutecom # 下载cutecom
sudo cutecom # 打开cutecom

roslaunch 命令输入后会显示奇奇怪怪的错误,如下图所示。
机载tx2与飞控连接排错指南_第2张图片
错误:

ERROR: cannot launch node of type [mavros/mavros_node]: Cannot locate node of type [mavros_node] in package [mavros].

解决方法:

网上能搜到的解决办法是

如果出现ERROR: cannot launch node of type [mavros/mavros_node]错误,则把catkin_ws里的内容删掉重新编译一下工作空间。或者把原来的catkin_ws删掉。

不敢把东西都删掉,因为工作空间里面是下载的mavros和mavlink,安装环境不容易。

最后就是把工作空间 mavros_ws 里的build文件夹下的内容删掉,再用 catkin build 重新编译一下工作空间,不知道为什么重新编译以后,build文件夹下就没有文件了,但是成功了

第二天睡醒又出错了,最后发现就是根目录底下的ros文件夹里面也有一个mavros文件夹 (/opt/ros/melodic/share/mavors),部分文件和这个工作空间下的文件重复了,所以无法locate,最后把工作空间mavros_ws下的mavros文件夹删掉,再次编译就成功了。

继续运行,报的错误变了!!!
机载tx2与飞控连接排错指南_第3张图片
错误:

[FATAL] [...]: FCU: DeviceError:serial:open: Permission denied

看了别人的帖子,才知道出现这个错误就是忘记给端口赋予权限。

sudo chmod 777 /dev/ttyUSB0

给串口权限以后,就能成功启动了。下一步就是在上面构建自己的ROS功能包实现某些功能啦。

你可能感兴趣的:(ubuntu)