XTDrone——三维激光SLAM

语雀

一、依赖

1、Ceres Solver(前文关于视觉惯性里程计的有安装步骤)

1、PCL(不要安装,这个自带PCL1.8,安装其他的会有问题)

二、编译

cp -r ~/XTDrone/sensing/slam/laser_slam/A-LOAM ~/catkin_ws/src/
cp -r ~/XTDrone/sitl_config/gazebo_plugin/velodyne/* ~/catkin_ws/src/ #这里是3D激光雷达插件
cd ~/catkin_ws
catkin_make #或catkin build,取决于您的编译工具

一定要在.bashrc里source ~/catkin_ws/devel/setup.bash,否则3D激光雷达插件无法在仿真环境中启用。
在这里插入图片描述

source ~/.bashrc

三、启动仿真

机械激光雷达包括3d_lidar和3d_gpu_lidar,前者使用CPU计算,后者使用GPU计算,其他没有区别,您可以根据您的需要选择。在模型中可以设置激光雷达的线数,以3d_gpu_lidar.sdf为例,本教程用的是32线,您可以修改为其他线数,其他参数也都可以修改。注意刷新率不能改的太高,否则ALOAM算不过来。

修改outdoor1.launch文件,可复制一份。

3d_lidar和3d_gpu_lidar,

<?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"/>
    <arg name="world" default="$(find mavlink_sitl_gazebo)/worlds/outdoor1.world"/>
    <!-- gazebo configs -->
    <arg name="gui" default="true"/>
    <arg name="debug" default="false"/>
    <arg name="verbose" default="false"/>
    <arg name="paused" default="false"/>
    <!-- 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>
     <!-- typhoon_h480_0 -->
     <group ns="iris_0">
        <!-- MAVROS and vehicle configs -->
            <arg name="ID" value="0"/>
            <arg name="ID_in_group" value="0"/>
            <arg name="fcu_url" default="udp://:24540@localhost:34580"/>
        <!-- PX4 SITL and vehicle spawn -->
        <include file="$(find px4)/launch/single_vehicle_spawn_xtd.launch">
            <arg name="x" value="0"/>
            <arg name="y" value="0"/>
            <arg name="z" value="0"/>
            <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_3d_gpu_lidar"/>
            <arg name="mavlink_udp_port" value="18570"/>
            <arg name="mavlink_tcp_port" value="4560"/>
            <arg name="ID" value="$(arg ID)"/>
            <arg name="ID_in_group" value="$(arg 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=""/>
            <arg name="tgt_system" value="$(eval 1 + arg('ID'))"/>
            <arg name="tgt_component" value="1"/>
        </include>
    </group>
</launch>
<!--the launch file is generated by XTDrone multi-vehicle generator.py  -->

启动

roslaunch px4 outdoor1.launch

启动ALOAM,由于本教程给激光雷达设置的是32线,因此启动对应32线的launch文件

roslaunch aloam_velodyne aloam_velodyne_HDL_32.launch

在这里插入图片描述

然后使用laser_transfer.py将ALOAM发布的位姿数据通过mavros发布

cd ~/XTDrone/sensing/slam/laser_slam/script
python laser_transfer.py iris 0 aloam

然后建立通信,键盘控制起飞即可

cd ~/XTDrone/communication
python multirotor_communication.py iris 0 
cd ~/XTDrone/control/keyboard
python multirotor_keyboard_control.py iris 1 vel
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值