200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > Raspberry Pi 4B 通过 MAVROS 实现从地面站远程连接飞控板

Raspberry Pi 4B 通过 MAVROS 实现从地面站远程连接飞控板

时间:2024-02-02 05:38:35

相关推荐

Raspberry Pi 4B 通过 MAVROS 实现从地面站远程连接飞控板

Raspberry Pi 4B 通过 MAVROS 实现从地面站远程连接飞控板

0x00 为 RPi 刷写系统0x01 启动 Ubuntu0x02 使用 SSH 连接至 RPi0x03 更换软件源0x04 安装桌面环境(可选)0x05 安装 ROS0x06 配置 ROS0x07 安装 MAVROS0x08 启用 MAVROS 节点0x09 通过地面站连接飞控板0x10 常见问题

0x00 为 RPi 刷写系统

准备好您的 MicroSD 卡和读卡器从 /download/raspberry-pi 下载Ubuntu Server 20.04.3 64-bit的镜像文件从 https://www.balena.io/etcher/ 下载Etcher for Windows (x86|x64) (Portable)的 exe 文件使用 Etcher 向 MicroSD 卡中刷写下载好的.img.xz文件

0x01 启动 Ubuntu

准备好刷写完毕的 MicroSD 卡、Micro-HDMI to HDMI 转接线、电源及 Type-C 电源线、显示屏等将 MicroSD 卡插入 RPi将 RPi 接上显示屏上电等待 RPi 启动默认用户名ubuntu密码ubuntu按照提示设置新的密码输入ip addr查看eth0的 IP 地址

0x02 使用 SSH 连接至 RPi

使用带有 SSH 功能的 Windows 操作系统(Windows 10 开始自带此功能)打开Windows Terminal或Powershell或CMD输入ssh ubuntu@ip,其中ip0x01 第 8 步获取到的地址输入0x01 第 7 步的密码此时应该已经连接成功

0x03 更换软件源

sudo sed -i 's###g' /etc/apt/sources.listsudo apt update

0x04 安装桌面环境(可选)

sudo apt install ubuntu-desktop

0x05 安装 ROS

此处参照官方文档 /cn/noetic/Installation/Ubuntu,以下内容做了一些修改以提高舒适性

sudo sh -c 'echo "deb /ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'sudo apt-key adv --keyserver 'hkp://:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654sudo apt updatesudo apt install ros-noetic-desktop-full# 设置环境echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrcsource ~/.bashrc

0x06 配置 ROS

此处操作相对较为复杂,由于众所周知的网络环境,需要修改一些源代码以正常安装。

此方案是目前全网相对完美的解决方法之一,由本文作者参考众多资料、实践多次得出。

sudo apt install python3-rosdep

此时应替换源码中的 URL 至 GitHub 镜像,特别感谢 FastGit UK 提供的镜像。

sudo sed -i 's###g' /usr/lib/python3/dist-packages/rosdep2/rep3.pysudo sed -i 's###g' /usr/lib/python3/dist-packages/rosdistro/__init__.pysudo sed -i 's###g' /usr/lib/python3/dist-packages/rosdep2/sources_list.py

此时执行 ROS 初始化,并替换源。

sudo rosdep initsudo sed -i 's###g' /etc/ros/rosdep/sources.list.d/20-default.list

此时,ROS 初始化完成,可以执行rosdep update来更新源。

到此 ROS 基本配置完毕。

0x07 安装 MAVROS

cd ~sudo apt install ros-noetic-mavros ros-noetic-mavros-extraswget /mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.shchmod a+x install_geographiclib_datasets.shsudo ./install_geographiclib_datasets.sh

0x08 启用 MAVROS 节点

# 安装 Catkin Toolssudo apt install python3-catkin-toolsmkdir -p ~/ardupilot_ws/src && cd ~/ardupilot_wscatkin initcd src && mkdir launch && cd launchroscp mavros apm.launch apm.launch

使用 Vim 修改apm.launch中的内容,如果没有 Vim,请先安装它。(可选,你也可以用 nano 代替)

Vim 使用方法不再赘述。

sudo apt install vim

按以下示例修改文件中的两行

<arg name="fcu_url" default="/dev/ttyUSB0:57600" /><arg name="gcs_url" default="udp://:14550@" />

此时请将飞控板的串口通信频率设置为57600,将 USB to TTL 线接入飞控板的UART0接口,并正确连接 RX 和 TX 两线。

将 USB 口接入 RPi 的 USB 口,并给予串口可读写权限。

sudo chmod 666 /dev/ttyUSB0

注意:请根据实际情况修改上文中的/dev/ttyUSB0

通过外置电源给飞控板上电。此时可启动 MAVROS 节点。

roslaunch apm.launch

若连接成功,飞控板会作出相应提示。

0x09 通过地面站连接飞控板

使用地面站新建一个连接,协议选择UDP,端口号填入14550,服务器填入0x01 第 8 步中的 IP 地址,并附带端口号 14550,如192.168.1.101:14550。此时应该可以通过地面站连接至飞控板。

0x10 常见问题

RPi 和地面站不处于同一个局域网:无论你采取何种方案,请确保地面站和 RPi 可以互相通信。所有配置都正确但始终无法连接到 RPi:请尝试关闭 RPi 的防火墙

sudo systemctl stop ufw

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。