参考资料
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上没办法使用工具,只能通过各种方法解决了。
参考资料
本来使用老版安卓数据线和机载电脑连接的,结果连上了鼠标键盘都动不了了,至今不知道为什么,看了一些帖子,讲道理是可以这么连的,后面连飞控的 TELEM2端口
就可以了,图片是从淘宝看到的。
输入命令测试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
命令输入后会显示奇奇怪怪的错误,如下图所示。
错误:
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文件夹删掉,再次编译就成功了。
[FATAL] [...]: FCU: DeviceError:serial:open: Permission denied
看了别人的帖子,才知道出现这个错误就是忘记给端口赋予权限。
sudo chmod 777 /dev/ttyUSB0
给串口权限以后,就能成功启动了。下一步就是在上面构建自己的ROS功能包实现某些功能啦。