Home » PX4与仿真入门教程 » PX4与仿真入门教程-dronedoc-使用 LiDAR 自主运动

PX4与仿真入门教程-dronedoc-使用 LiDAR 自主运动

PX4与仿真入门教程-dronedoc-使用 LiDAR 自主运动

说明:

  • 介绍move_base 和 hector_slam 用于自动移动配备 2D LiDAR 的无人机。
  • move_base 用于无人机控制、路线规划和避障, hector_slam 用于无人机自身位置估计。
  • 由于我们使用的是 hector_slam,因此我们也可以同时创建地图。

启动 PX4 SITL 模拟:

  • 内容与使用LiDAR的SLAM中使用的mymodel_sitl_hector.launch几乎相同,但由于这次使用的是move_base,因此定义了从map到odom的TF。

  • 从map到无人机的baseframe(base_link)的TF由hector_mapping节点广播,local_costmap使用的odom到base_link的TF由本Launch文件中的static_tf_publisher广播。

  • mymodel_sitl_lidar_nav.launch文件如下:

<launch>

    <node pkg="tf" name="base2lidar" type="static_transform_publisher" args="0 0 0.1 0 0 0 base_link lidar_link 100"/>
    <node pkg="tf" name="map2odom" type="static_transform_publisher" args="0 0 0 0 0 0 map odom 100"/>

    <arg name="vehicle" default="iris_2d_lidar"/>
    <arg name="world" default="$(find px4_sim_pkg)/worlds/willow_garage.world" />
    <arg name="sdf" default="$(find px4_sim_pkg)/models/iris_2d_lidar/model.sdf" />
    <arg name="verbose" default="false"/>
    <arg name="debug" default="false"/>

    <include file="$(find px4)/launch/mavros_posix_sitl.launch" >
        <arg name="sdf" value="$(arg sdf)" />
        <arg name="vehicle" value="$(arg vehicle)" />
        <arg name="verbose" value="$(arg verbose)" />
        <arg name="debug" value="$(arg debug)" />
        <arg name="world" value="$(arg world)" />
    </include>

    <param name="/mavros/setpoint_velocity/mav_frame"  type="str" value="BODY_NED" />

</launch>

测试:

  • 首先,启动模拟环境。
roslaunch px4_sim_pkg mymodel_sitl_hector.launch
  • 调用 hector_mapping 节点进行自定位估计,以提供从地图到 base_link 的 TF。
roslaunch px4_sim_pkg mapping_default.launch
  • 启动导航
roslaunch px4_sim_pkg navigation.launch
  • 启动rviz
rviz
  • 指示目标姿态后,将飞行模式更改为OFFBOARD,以便您可以根据move_base发布的速度目标值移动。
rosrun mavros mavsys mode -c OFFBOARD
  • 实际执行时,它可以根据使用 2D LiDAR 估计的自身位置自主移动,如下所示。

请输入图片描述

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: px4与仿真入门教程