1 .定位(amcl ) 1.1找到amcl附带的功能包
amcl_diff.launch :
launchnodepkg=' amcl ' type=' amcl ' name=' amcl ' output=' screen '! - publishscansfrombestposeatamaxof 10hz-- param name=' Odom _ model _ type ' value=' diff '/param name=' Odom _ alue param name=' GUI _ publish _ rate ' value=' 10.0 '/param name=param name=' min _ particles ' value=' 500 '/param param name=' kld _ erram param name=' Odom _ alpha1' value=' 0.2 '/param name=' Odom _ alpha2' value=' 0.2 /! -- translation std dev, m-- param name=' Odom _ alpha3' value=' 0.8 '/param name=' Odom _ alpha4' value=' 0.2 '/param name=' laser ' laser。 param name=' laser _ z _ max ' value=' 0.05 '/param name=' laser _ max ' value=' 0.05 '/param name=' laser param Nam ne param name=' laser _ lambda _ short ' value=' 0.1 '/param name=-param name=' laser _ model _ type ' value=' beam --param name=' laser _ likelihood _ max _ dist ' value=' laser _ likelihood _ max _ dist ' value=' param name=param name=' Odom _ frame _ id ' value=' Odom '/param name=' re same ' param name=' transform _ tolerance ' value='
例如,nav04_amcl.launch
launchnodepkg=' amcl ' type=' amcl ' name=' amcl ' output=' screen '! - publishscansfrombestposeatamaxof 10hz-- param name=' Odom _ model _ type ' value=' diff '/param name=' Odom _ alue param name=' GUI _ publish _ rate ' value=' 10.0 '/param name=param name=' min _ particles ' value=' 500 '/param param name=' kld _ erram param name=' Odom _ alpha1' value=' 0.2 '/param name=' Odom _ alpha2' value=' 0.2 /! -- translation std dev, m-- param name=' Odom _ alpha3' value=' 0.8 '/param name=' Odom _ alpha4' value=' 0.2 '/param name=' laser ' laser。 param name=' laser _ z _ max ' value=' 0.05 '/param name=' laser _ max ' value=' 0.05 '/param name=' laser param Nam ne param name=' laser _ lambda _ short ' value=' 0.1 '/param name=-param name=' laser _ model _ type ' value=' beam --param name=' laser _ likelihood _ max _ dist ' value=' laser _ likelihood _ max _ dist ' value=' param name=param name=' odom _ frame _ id ' value=' Odom '/param name=' base -配置坐标系: Odom、map、基于机器人的坐标系--- param name=' ram param name=' transform _ tolerance ' value param name=' recovery _ alpha _ slow ' value=' 0.0 '/param name=' recovery
安琪! -运行地图服务器并加载配置的地图-- include file='$(find nav_dome )/launch/nav 03 _ map _ server.launch ' /! AMCL节点-- include file='$(find nav_dome )/launch/nav04_amcl.launch' /! - rviz-- node pkg=' joint _ state _ publisher ' name=' joint _ state _ publisher ' type=' joint _ state _ publisher node pkg=' robot _ state _ publisher ' name=' robot _ state _ publisher '/node
1 )启动Gazebo仿真环境
2 )启动键盘控制节点
rosrunteleop _ twist _ keyboardteleop _ twist _ keyboard.py3 )启动test_amcl.launch文件
4 )在启动的rviz中,添加RobotModel、Map组件,分别显示机器人模型和地图,添加posearray插件,将topic设定为particlecloud,显示amcl推断的当前机器人姿态箭头越密集,表示当前机器人在这个位置的概率越高
5 )当你用键盘控制机器人的动作时,你会发现posearray也会相应地变化。