ロスカー 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 です。しかし、初心者は多くの奇妙な問題に遭遇することがよくあります。