ROS 无人机仿真系统3 —— 验证仿真系统

版权声明: https://blog.csdn.net/KongDaQing1290/article/details/79741692

1、平台验证

         前面文档搭建的仿真平台是否正常,可以马上允许一个launch文件进行验证:

$ roslaunch rotors_gazebo mav_hovering_example.launch mav_name:=firefly world_name:=basic

   当你在终端运行该指令时,会不断弹出信息,当出现报错时说明平台搭建有问题。我在这个过程中出现gazebo运行异常的问题,因为之前使用的是gazebo5,别人建议下使用了gazebo7就没有出现gazebo报错的问题。不过第一次启动还是死在了gazebo启动的画面(网站上介绍是下载模型),这里请等1个h左右,如果还是启动不了,就ctrl+c终结,然后重启电脑再运行。我是第二次重启之后就可以了。

     仿真正常运行标志:

     1)launch文件后不报错;

     2)运行仿真,飞行器上升后悬停飞行;

2、简单控制

         这里可以通过rostopic发布转速信息:

$ rostopic pub /firefly/command/motor_speed mav_msgs/Actuators '{angular_velocities: [100, 100, 100, 100, 100, 100]}'

     运行正常的话,飞行器会下降一下再回到悬停的位置。这里没有继续下降的原因是该命令近发布了一次控制电机转速的命令,可以使用下面指令,按照固定频率发布指令:

$ rostopic pub /firefly/command/motor_speed mav_msgs/Actuators -r 50'{angular_velocities: [100, 100, 100, 100, 100, 100]}'

    上面指令的频率是50Hz,若是将频率设置为10Hz,会出现飞行器先下落后回到悬停位置,再下落,再回复的现象,这个是因为,发送飞行器电机转速话题的节点有两个,这里可以通过rqt_graph查看具体情况:


     如图中所示我们通过上述命令创建了/rostopic_103......这个节点,该节点发布了/firefly/command/motor_speed话题,但同时飞行器控制器节点/firefly/lee_position_controller_node也在发布该话题,我们可以通过rostopic echo /firefly/command/motor_speed可以查看到六旋翼六个电机转速信息。飞行器转速会时不时的出现为100(悬停540左右)。/firefly/lee_position_controller_node节点目的是控制飞行器悬停在某个位置,所以上述话题相当于是执行器出现了一个阶跃扰动,最终导致飞行器反复上下飞行,比较有意思。这里可以使用rostopic/rosnode等命令查看相关信息。如rostopic hz 可以查看话题发布的频率。



猜你喜欢

转载自blog.csdn.net/KongDaQing1290/article/details/79741692