XTdrone学习--无人机键盘控制仿真

用键盘控制无人机飞行

创建.sh文件,将以下内容填入

#!/bin/bash
# 脚本名称: 无人机简单飞行控制;
# 脚本描述: 该脚本为无人机简单飞行控制demo启动脚本,包含PX4 SITL,Gazebo仿真环境,无人机通讯节点以及控制节点

gnome-terminal --window -e 'bash -c "cd ~/PX4_Firmware;roslaunch px4 outdoor3.launch;exec bash"' \
--tab -e 'bash -c "sleep 5; cd ~/XTDrone/communication;python multirotor_communication.py iris 0; exec bash"' \
--tab -e 'bash -c "sleep 6; cd ~/XTDrone/control/keyboard;python multirotor_keyboard_control.py iris 1 vel; exec bash"' \

解读:启动gazebo,打开场景和飞机
2.启动通信脚本,iris代表子机型,0代表飞机的编号,与0号iris建立通信
3.启动键盘控制脚本,iris代表机型,1代表飞机的个数,vel代表速度控制

(可以更改outdoor3.launch文件和py文件传入参数,适配自己需求。)

outdoor3.launch解读

<?xml version="1.0"?>
<launch>
    <!-- MAVROS posix SITL environment launch script -->
    <!-- launches Gazebo environment and 2x: MAVROS, PX4 SITL, and spawns vehicle -->
    <!-- vehicle model and world -->
    <arg name="est" default="ekf2"/>使用ekf2(Extended Kalman Filter,即扩展卡尔曼滤波器)估计
    <arg name="world" default="$(find mavlink_sitl_gazebo)/worlds/outdoor3.world"/>添加世界模型
    <!-- gazebo configs -->
    <arg name="gui" default="true"/>用于指定是否显示Gazebo的图形用户界面(GUI)
    <arg name="debug" default="false"/>用于指定是否在Gazebo环境中启用调试模式
    <arg name="verbose" default="false"/>用于指定是否在Gazebo环境中启用详细输出模式
    <arg name="paused" default="false"/>用于指定在启动Gazebo环境时是否处于暂停状态
    <!-- Gazebo sim -->打开一个空世界,填充上述参数
    <include file="$(find gazebo_ros)/launch/empty_world.launch">
        <arg name="gui" value="$(arg gui)"/>
        <arg name="world_name" value="$(arg world)"/>
        <arg name="debug" value="$(arg debug)"/>
        <arg name="verbose" value="$(arg verbose)"/>
        <arg name="paused" value="$(arg paused)"/>
    </include>
     <!-- multirotor_0 -->
     <group ns="iris_0">使用group命令创建了一个名为"iris_0"的命名空间,将接下来的节点放在这个命名空间下。作用是为了在节点名称上
     加上前缀,以避免节点名称冲突。
        <!-- MAVROS and vehicle configs -->
            <arg name="ID" value="0"/>定义ID参数用于标识飞行器或车辆的ID编号。
            <arg name="ID_in_group" value="0"/>定义ID_in_group参数是在多飞行器系统中使用的,在同一个群组(group)中标识飞行器或车辆的ID。
            <arg name="fcu_url" default="udp://:24540@localhost:34580"/>这个参数指定了飞控的通信地址和端口,用于连接到飞行器或车辆的飞控系统。
        <!-- PX4 SITL and vehicle spawn -->
        <include file="$(find px4)/launch/single_vehicle_spawn_xtd.launch">添加模型文件的launch
            <arg name="x" value="0"/>用于指定飞行器模型在仿真环境中的初始XYZ坐标
            <arg name="y" value="0"/>
            <arg name="z" value="1"/>
            <arg name="R" value="0"/>表示飞行器模型的初始横滚、俯仰和偏航角。
            <arg name="P" value="0"/>
            <arg name="Y" value="0"/>
            <arg name="vehicle" value="iris"/>参数指定了要生成的飞行器模型的类型
            <arg name="sdf" value="iris_downward_depth_camera"/>参数指定了要使用的SDF文件,用来描述飞行器模型的详细信息
            <arg name="mavlink_udp_port" value="18570"/>设置MAVLink的端口号
            <arg name="mavlink_tcp_port" value="4560"/>设置MAVLink的端口号
            <arg name="ID" value="$(arg ID)"/>设置ID,沿用上述值
            <arg name="ID_in_group" value="$(arg ID_in_group)"/>设置ID_in_group,沿用上述值
        </include>
        <!-- MAVROS -->
        <include file="$(find mavros)/launch/px4.launch">
            <arg name="fcu_url" value="$(arg fcu_url)"/>使用上述端口
            <arg name="gcs_url" value=""/>用于指定地面控制站的URL的参数。通过设置为空字符串,表示没有指定地面控制站的URL。
            <arg name="tgt_system" value="$(eval 1 + arg('ID'))"/>通过使用 eval 函数进行计算和操作来设置。即ID+1,计算结果被赋值给 tgt_system 参数作为其值。
            <arg name="tgt_component" value="1"/>用于标识 PX4 系统中的组件。PX4 系统中的组件是无人机系统的不同功能部分,例如飞行控制器、遥控器、传感器等等。每个组件都有一个唯一的整数标识符来区分它们。在这个代码段中,将 tgt_component 设置为 1,表示将该启动文件应用于 PX4 系统的第一个组件(通常是飞行控制器)
        </include>
    </group>
</launch>
<!--the launch file is generated by XTDrone multi-vehicle generator.py  -->
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值