ros car はマップを構築するために slam_gmapping を実装します。

    ロスカー 2D マップ構築、レーダーがある場合は、gmapping メソッドを使用してマップを構築します。実際、コマンド 1 つでマップ構築プログラムを開始すると、デフォルトで車が起動します。その後、ハンドルまたはキーボードを使用してマップを生成し、マップを保存する必要があるため、初心者は多くの問題が発生することは避けられません。

    ここでは Wheeltec Technology WHEELTEC の ros 教育ロボットです。公式の例によると、turn_on_wheeltec_robot/launch に Mapping.launch 起動ファイルがあります。デフォルトでは、gmapping マッピング メソッドを使用することになっており、ファイルを直接起動するだけです。

<launch>
  <arg name="mapping_mode"  default="gmapping" doc="opt: gmapping,hector,cartographer,karto"/>
  
  <!-- 是否在建图时开启导航 默认不开启 仅在rrt自主建图时同时进行-->
  <arg name="navigation" default="false"/>
  <arg name="odom_frame_id"  default="odom_combined"/>

  <!-- turn on lidar开启雷达  -->
  <include file="$(find turn_on_wheeltec_robot)/launch/wheeltec_lidar.launch" />

  <!-- 启动APP一键保存地图功能  -->
  <node pkg="world_canvas_msgs" type="save" name="save_map" />

  <!-- 开启gmapping建图算法  -->
  <group if="$(eval mapping_mode == 'gmapping')">
  <include file="$(find turn_on_wheeltec_robot)/launch/include/algorithm_gmapping.launch" />
  <!-- 开启机器人底层相关节点  -->
  <include file="$(find turn_on_wheeltec_robot)/launch/turn_on_wheeltec_robot.launch">
    <arg name="navigation" value="$(arg navigation)"/>
    <arg name="is_cartographer" value="false"/>
    <arg name="odom_frame_id"   value="$(arg odom_frame_id)"/>
  </include>
  </group>
  <!-- // 后面其他建图方式省略-->
</launch>
roslaunch turn_on_wheeltec_robot mapping.launch

    当然のことながら、赤い十字が表示されます。

    エラー: タイプ [gmapping/slam_gmapping] のノードを起動できません: gmapping 

    解決策は、ros-melodic-gmapping、ros-melodic-move-baseをインストールすることです。

apt install ros-melodic-gmapping ros-melodic-move-base

    再度再起動してもエラーは報告されませんが、rviz を開いてマップを表示しますが、マップが表示されません。[追加] をクリックしてマップを追加し、トピックとして /map を選択すると、新しいアラームが表示されます。

ステータス警告: マップを受信して​​いません 

    この警告は主にレーダーの問題です。ここでは起動に成功しています。トピック、/map、/scan を確認でき、rviz の LaserScan 表示は正常です。rostopic echo /scan による出力はありません。これは、次のことを意味しますレーダーが起動しませんでした。

     ネットの情報によると、レーダー機種の初期設定が間違っているからだそうです。実際の状況に応じて適切なモデルをファイルturn_on_wheel_robot/launch/wheeltec_lidar.launchに設定します。ここでのデフォルトはdefault = "ls_M10P_uart"です。実際、私のレーダーモデルはN10なので、ここでdefault="ls_N10"を変更します。

    レーダー モデル。通常はレーダー上にマークされます。

    再度起動するとレーダーは正常に起動し、出力される情報は以下の通りです。

    前回の起動失敗時と比べて、正常起動後は、lslidar x10 をエラーなく初期化した後のレーダー初期化情報が増えています。起動に失敗した場合、そのような情報はありません。

    その後、レーダー データをテストし、コマンド ラインで rostopic echo /scan を実行すると、多くのポイント情報が出力されます。

    現時点では、rviz の表示は正常です。

    一定期間実行した後、以下に示すようにマップをturn_on_wheeltec_robot/map2 ディレクトリに直接保存できます。

rosrun map_server map_saver -f WHEELTEC

    生成されるファイルは pgm、yaml 形式です。 

    通常の gmapping マッピングの場合、コマンドは 2 つだけです。1 つはマッピングを開始する roslaunchturn_on_wheeltec_robot mapping.launch で、もう 1 つはマップを保存する rosrun map_server map_saver -f WHEELTEC です。しかし、初心者は多くの奇妙な問題に遭遇することがよくあります。

おすすめ

転載: blog.csdn.net/feinifi/article/details/132390181
おすすめ