在最近的飞行测试中,发现在测试过程中偶尔出现由于无线通讯质量差导致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.查看日志文件。
