无人机飞行时远程命令启动正确方法「重要」

在最近的飞行测试中,发现在测试过程中偶尔出现由于无线通讯质量差导致SSH连接断开,进而引发炸机的问题。为解决此问题,现对飞行测试流程进行如下优化:

方法一:

第一步:打开终端

第二步:终端输入tmux新建会话

#新建一个会话
tmux
#如果无法启动,可以把无人机联网后使用
sudo apt-get install tmux
#来安装tmux

第三步:输入需要运行的指令

# 启动核心ROS节点(这里也可以将launch文件替换为自己的launch)
roslaunch tutorial_all run_aic2025_task.launch

如果需要分屏,可以先按下快捷键Ctrl+B,随后按%左右分屏或者“上下分屏,随后先按Ctrl+B再按上下左右方向键切换终端。

如果意外导致窗口关闭,可以使用

tmux attach -t 0

返回之前的tmux窗口

方法二:

操作流程

第一步:创建启动脚本

# 创建launch.sh文件
touch launch.sh

第二步:赋予执行权限

# 提权操作
sudo chmod +x launch.sh
# 或者使用
sudo chmod 777 launch.sh

输入密码后回车即可

第三步:编辑脚本内容

# 编辑launch.sh文件
nano launch.sh
# 或使用其他编辑器如vim、gedit等

在文件中写入以下代码:

#!/bin/bash

# 设置ROS环境(根据实际路径调整)
source /opt/ros/noetic/setup.bash
source ~/catkin_ws/devel/setup.bash

# 启动核心ROS节点(这里也可以将launch文件替换为自己的launch或者添加多行launch文件逐步启动)
nohup roslaunch tutorial_all run_aic2025_task.launch > ~/ros_launch.log 2>&1 &

第四步:执行测试

# 运行启动脚本
nohup ./launch.sh > ~/script_output.log 2>&1 &

后续使用

每次进行飞行测试时,只需远程执行:

nohup ./launch.sh &

第五步:关闭进程

警告:如果在不关闭后台进程的前提下重新启动代码飞行无人机,将导致无人机定位导航错误等等一系列问题。

回车或者新开启一个终端后,使用指令

pkill -f <.sh中启动的命令>

例如这里是只有roslaunch命令,则只关闭roslaunch:

pkill -f roslaunch

即可关闭正在运行的roslaunch进程

第六步:读取log文件

1.使用远程文件管理器,打开输入并且转到/home/jetson目录下,

2.双击打开ros_launch.log日志文件,

3.查看日志文件。