使用 ROS 进行集成测试
本主题介绍如何运行(和扩展)基于 ROS 的 PX4' 集成测试。
先决条件
执行测试
运行 MAVROS 测试:
吁
消息来源 <;catkin_ws>;/devel/setup.bash
CD <;PX4-Autopilot_clone>;
生产 px4_sitl_default sitl_gazebo
生产 <;测试大车t>;
测试目标
是一个 makefile 目标: 任务测试, 任务覆盖测试, 测试 和 避免测试.
也可以直接运行测试脚本来执行测试。 测试/
:
吁
消息来源 <;catkin_ws>;/devel/setup.bash
CD <;PX4-Autopilot_clone>;
生产 px4_sitl_default sitl_gazebo
./test/<test_bash_script>; <;测试启动文件e>;
例如
吁
./test/rostest_px4_run.sh mavros_posix_tests_offboard_posctl.test
还可以使用图形用户界面运行测试,查看发生了什么(默认情况下,测试是无头运行的):
吁
./test/rostest_px4_run.sh mavros_posix_tests_offboard_posctl.test gui:=真 无头:=错误
.测试 文件中定义的相应 Python 测试。 integrationtests/python_src/px4_it/mavros/
编写新的 MAVROS 测试(Python)
本节介绍如何使用 ROS 1/MAVROS 编写新的 python 测试、测试并将其添加到 PX4 测试套件中。
我们建议您查看现有的测试作为示例/启发 (integrationtests/python_src/px4_it/mavros/).ROS 官方文档还包含如何使用 单元测试 (测试套件的基础)。
编写新测试
复制下面的空测试骨架,创建新的测试脚本:
蟒蛇#!/usr/bin/env python # [... 许可证...] # # @author 示例作者 <[email protected]>; # PKG = 'px4'; 舶来品 单元测试 舶来品 蟑螂 舶来品 挎包 从 传感器_msgs.msg 舶来品 NavSatFix 类 马夫罗斯新测试(单元测试.测试用例): """; 测试说明 """; 捍卫 设置(自己): rospy.init_node('test_node';, 匿名=正确) rospy.wait_for_service('mavros/cmd/arming';, 30) rospy.Subscriber("mavros/global_position/global";NavSatFix、 自我.global_position_callback) 自我.费率 = rospy.Rate(10) # 10 赫兹 自我.has_global_pos = 假的 捍卫 拆除(自己): 通过 # # 测试中使用的一般回调函数 # 捍卫 global_position_callback(自我,数据): 自我.has_global_pos = 正确 捍卫 测试方法(自己): """测试方法描述"""; # 修正:等待模拟准备就绪的黑客程序 虽然 不 自我.has_global_pos: 自我.rate.sleep() # TODO:执行测试 如果 姓名____ == '__main__';: 舶来品 滚测 rostest.rosrun(PKG, 'mavros_new_test', MavrosNewTest)
仅运行新测试
启动模拟器
吁CD <;PX4-Autopilot_clone>; 消息来源 Tools/simulation/gazebo/setup_gazebo.bash 玫瑰发射 launch/mavros_posix_sitl.launch
运行测试(在新 shell 中):
吁CD <;PX4-Autopilot_clone>; 消息来源 Tools/simulation/gazebo/setup_gazebo.bash 玫瑰 px4 mavros_new_test.py
在启动文件中添加新的测试节点
- 在
测试/
新建<测试名称>.测试
ROS 启动文件。 - 使用其中一个基本脚本调用测试文件 rostest_px4_run.sh 或 rostest_avoidance_run.sh
- 在
(可选) 在 Makefile 中创建一个新目标
- 打开 Makefile
- 搜索 测试 部分
- 添加新目标名称并调用测试
例如
吁tests_<new_test_target_name>: 滚测 @";$(SRC_DIR)";/test/rostest_px4_run.sh mavros_posix_tests_<;新字节t>;.测试
运行上述测试。