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>
测试:
- 首先,启动模拟环境。
cd ~/tools/dronedoc/
source load_environment.sh
roslaunch px4_sim_pkg mymodel_sitl_lidar_nav.launch
- 调用 hector_mapping 节点进行自定位估计,以提供从地图到 base_link 的 TF。
cd ~/tools/dronedoc/
source load_environment.sh
roslaunch px4_sim_pkg mapping_default.launch
- 启动导航
cd ~/tools/dronedoc/
source load_environment.sh
roslaunch px4_sim_pkg navigation.launch
- 启动rviz
rviz
- 在模拟环境的界面,输入命令起飞
commander takeoff
- 在rviz中,指定目标姿态后,将飞行模式更改为OFFBOARD,以便您可以根据move_base发布的速度目标值移动。
rosrun mavros mavsys mode -c OFFBOARD
- 实际执行时,它可以根据使用 2D LiDAR 估计的自身位置自主移动,如下所示。
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号