рд╢реБрдн рджреЛрдкрд╣рд░ рдкрд╛рдардХреЛрдВ! рд╣рдордиреЗ рдПрдХ рдмрд╛рд░ рд╣реЗрдХреНрдЯрд░ SLAM рдХреЗ рдПрдХ рд▓реЗрдЦ рдореЗрдВ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдФрд░ SLAM рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рдЫреБрдЖ рдерд╛ ред рд╣рдо рдЖрд░рдУрдПрд╕ рдореЗрдВ рдЗрд▓рд╛рдХреЗ рдХреЗ рдирдХреНрд╢реЗ рдФрд░ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдкрд░рд┐рдЪрд┐рдд рдХреЛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред рдЖрдЬ рд╣рдо рдХреЗрд╡рд▓ рдПрдХ рд░рд╛рдбрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░, рдмрд┐рдЬрд▓реА odometry рдмрд┐рдирд╛ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдирдХреНрд╢рд╛ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛ Hokuyo URG-04LX-UG01 рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо gmapping рдФрд░ рдХрд▓рди рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд┐рдд рдирдХреНрд╢реЗ рдкрд░ рд░реЛрдмреЛрдЯ рд╕реНрдерд╛рдиреАрдп рдмрдирд╛рдирд╛ AMCL ред рдЗрд╕рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реА рдорджрдж рдХрд░реЗрдВрдЧреЗ Laser_scan_matcher ред рдХреМрди рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИ, рдХреГрдкрдпрд╛, рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗредLaser_scan_matcher рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛
рддреЛ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИ! рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣рдо ROS рдЗрдВрдбрд┐рдЧреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЖрдк ROS (рдЬреЗрдб, рдХрд╛рдЗрдиреЗрдЯрд┐рдХ, рд╣рд╛рдЗрдбреНрд░реЛ) рдХреЗ рдПрдХ рдЕрд▓рдЧ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдзрд┐рд╖реНрдард╛рдкрди рдкреИрдХреЗрдЬ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рд╢рд╛рдпрдж рдЖрд░рдУрдПрд╕ рдХрд╛рдЗрдиреЗрдЯрд┐рдХ рдореЗрдВ рдХреЗрд╡рд▓ рдХреБрдЫ рдкреИрдХреЗрдЬ рдЙрдкрдпреБрдХреНрдд-рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ)редLaser_scan_matcher рдкреИрдХреЗрдЬ рд▓реЗрдЬрд░ рдбреЗрдЯрд╛ рдХреА рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рд╣реИ, рдЬрд┐рд╕реЗ Canonical рд╕реНрдХреИрди рдорд╛рдЪрд┐рд╕ рд╡рд┐рдзрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдпрд╣рд╛рдВ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред рдЖрдк рдпрд╣рд╛рдВ рдкреИрдХреЗрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ ред рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдУрдбреЛрдореЗрдЯреНрд░реА рдбреЗрдЯрд╛ рдХреЗ рдмрд┐рдирд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ; рдпрд╣ рдУрдбреЛрдореЗрдЯреНрд░реА рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЛ рд╕реНрд╡рдпрдВ рдХрд░рддрд╛ рд╣реИредрдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:sudo apt-get install ros-indigo-laser-scan-matcher
рдЖрдЗрдП рдбреЗрдореЛ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ:roscore
roslaunch laser_scan_matcher demo.launch
рд╣рдо rviz рдореЗрдВ рдХреБрдЫ рдЗрд╕реА рддрд░рд╣ рджреЗрдЦреЗрдВрдЧреЗ:рдпрд╣рд╛рдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рд▓реЗрдЬрд╝рд░_scan_matcher рдПрдХ рдмреИрдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рджрд░реНрдЬ рд▓рд┐рдбрд╛рд░ рдбреЗрдЯрд╛ рдкрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВред рдЕрдм рдкреИрдХреЗрдЬ рд▓рд╛рдЗрд╡ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рд╕рдордп рди рдЧрдВрд╡рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рддреБрд░рдВрдд рдЗрд╕реЗ gmapping рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреЗ рд╕рд╛рде рдЖрдЬрд╝рдорд╛рдПрдБрдЧреЗред Gmapping рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП my_gmapping_launch.launch рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдкреИрдХреЗрдЬ рдмрдирд╛рдПрдБ:cd ~/catkin_ws/src
catkin_create_pkg my_laser_matcher
cd src/my_laser_matcher
mkdir launch
vim launch/my_gmapping_launch.launch
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЛ my_gmapping_launch.launch рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВ:рдХреЛрдб my_gmapping_launch.launch<?xml version="1.0"?>
<launch>
<node pkg="tf" type="static_transform_publisher" name="base_link_to_laser"
args="0.0 0.0 0.0 0.0 0.0 0.0 /base_link /laser 40" />
<node pkg="laser_scan_matcher" type="laser_scan_matcher_node" name="laser_scan_matcher_node" output="screen">
<param name="fixed_frame" value = "odom"/>
<param name="use_odom" value="true"/>
<param name="publish_odom" value = "true"/>
<param name="use_alpha_beta" value="true"/>
<param name="max_iterations" value="10"/>
</node>
<node pkg="gmapping" type="slam_gmapping" name="slam_gmapping" output="screen">
<param name="map_udpate_interval" value="1.0"/>
<param name="delta" value="0.02"/>
</node>
</launch>
рдпрд╣рд╛рдБ рд╣рдо base_link тЖТ рд▓реЗрдЬрд╝рд░ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкреНрд░рдгрд╛рд▓реА, рд▓реЗрдЬрд╝рд░_scan_matcher рдФрд░ slam_gmapping рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП tf рдкреИрдХреЗрдЬ рд╕реЗ static_transform_publisher рдЪрд▓рд╛рддреЗ рд╣реИрдВред рдлрд╛рдЗрд▓ рдХрд╛ рд╕реЛрд░реНрд╕ рдХреЛрдб рдпрд╣рд╛рдВ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред Hokuyo рд▓рд┐рдбрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ hokuyo_node ROS рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ :sudo apt-get install ros-indigo-hokuyo-node
рд▓рд┐рдбрд╛рд░ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП hokuyo_node рдкреИрдХреЗрдЬ рд╕реЗ getID рдиреЛрдб рдЪрд▓рд╛рдПрдБ:rosrun hokuyo_node getID /dev/ttyACM0
рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ:Error: Failed to open port. Permission denied.
[ERROR] 1263843357.793873000: Exception thrown while opening Hokuyo.
Failed to open port: /dev/ttyACM0. Permission denied (errno = 13). You probably don't have premission to open the port for reading and writing. (in hokuyo::laser::open) You may find further details at http://www.ros.org/wiki/hokuyo_node/Troubleshooting
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдореЗрдВ рдкреЛрд░реНрдЯ / dev / ttyACM0 рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐рдпрд╛рдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:sudo chmod a+rw /dev/ttyACM0
Hokuyo_node рдкреИрдХреЗрдЬ рд╕реЗ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдПрдБ рдФрд░ рд╕рдорд╛рди рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:Device at /dev/ttyACM0 has ID H0906078
рдЕрдм hokuyo_node рдиреЛрдб рдЪрд▓рд╛рдПрдБ:rosrun hokuyo_node hokuyo_node
рдЕрдВрдд рдореЗрдВ, рд╣рдорд╛рд░реА рд▓реЙрдиреНрдЪрд░ рдлрд╝рд╛рдЗрд▓ my_gmapping_launch.launch рдЪрд▓рд╛рдПрдВ:roslaunch my_laser_matcher my_gmapping_launch.launch
rosrun rviz rviz
рдЖрдЗрдП рд╡рд┐рд╖рдпреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░реЗрдВ:rostopic list
рд╡рд┐рд╖рдпреЛрдВ рдХреЗ рдмреАрдЪ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЗрдЦреЗрдВрдЧреЗ:/initialpose
/move_base_simple/goal
/odom
/pose2D
...
/imu/data
рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣рдо рдУрдбреЛрдореЗрдЯреНрд░реА рдФрд░ рд░реЛрдмреЛрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╢реНрд░реЗрдп рд▓реЗрдЬрд░_рд╕реНрдХреИрди_рдореИрдЪрд░ рдХреЛ рджреЗрддреЗ рд╣реИрдВред рд▓реЗрдЦрдореЗрдВ рд╡рд░реНрдгрд┐рдд рдЕрдиреБрд╕рд╛рд░ / рд╕реНрдХреИрди рд╡рд┐рд╖рдп рдХреЗ рд╕рд╛рде рдПрдХ рд▓реЗрдЬрд╝рд░рд╕реНрдХреИрди-рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ rviz рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ ред рдорд╛рдирдЪрд┐рддреНрд░ рдорд╛рдирдЪрд┐рддреНрд░ рдХреЗ рд▓рд┐рдП рдФрд░ TF рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рднреА рдПрдХ рдкреНрд░рджрд░реНрд╢рди рдЬреЛрдбрд╝реЗрдВред рдЗрд╕рдХреЗ рдЕрдВрджрд░ TF рд╕реЗрдХреНрд╢рди рдФрд░ рдлреНрд░реЗрдореНрд╕ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВ, рдлрд┐рд░ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ: odom, map, base_linkред рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдпреЗ рдУрдбреЛрдореАрдЯрд░, рдорд╛рдирдЪрд┐рддреНрд░ рдФрд░ рд░реЛрдмреЛрдЯ рд╕рдордиреНрд╡рдп рдкреНрд░рдгрд╛рд▓реА рд╣реИрдВред рдЧреНрд▓реЛрдмрд▓ рдСрдкреНрд╢рдВрд╕ рд╕реЗрдХреНрд╢рди рдореЗрдВ рд▓реЗрдлреНрдЯ рдбрд┐рд╕реНрдкреНрд▓реЗ рдкреИрдирд▓ рдореЗрдВ рдлрд┐рдХреНрд╕реНрдб рдлреНрд░реЗрдо рдлреАрд▓реНрдб рдХреЗ рд▓рд┐рдП / рдореИрдк рд╡реИрд▓реНрдпреВ рд╕реЗрдЯ рдХрд░рдирд╛ рдпрд╛рдж рд░рдЦреЗрдВред Rviz рдореЗрдВ рд╣рдо рдПрдХ рд╕рдорд╛рди рдЪрд┐рддреНрд░ рджреЗрдЦреЗрдВрдЧреЗ: рдЕрдЧрд▓рд╛, рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдкреВрд░рд╛ рдирдХреНрд╢рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рд░реЛрдмреЛрдЯ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВред рд╣рдо рдорд╛рдирдЪрд┐рддреНрд░ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП map_server рдкреИрдХреЗрдЬ рд╕реЗ map_saver рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
rosrun map_server map_saver
рдЕрдореНрдорд▓ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдпрдХрд░рдг
рдЕрдм рдЖрдЗрдП amcl рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░реЛрдмреЛрдЯ рдХреЛ рд╕реНрдерд╛рдиреАрдп рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рдкреИрдХреЗрдЬ рдХреЗ рдЕрдВрджрд░ рдлрд╝рд╛рдЗрд▓ my_localize.launch рдмрдирд╛рдПрдБ:рдХреЛрдб my_localize.launch<launch>
<param name="/use_sim_time" value="false"/>
<node pkg="tf" type="static_transform_publisher" name="base_link_to_laser"
args="0.0 0.0 0.0 0.0 0.0 0.0 /base_link /laser 40" />
<node name="hokuyo" pkg="hokuyo_node" type="hokuyo_node" respawn="false" output="screen">
<param name="calibrate_time" type="bool" value="false"/>
<param name="port" type="string" value="/dev/ttyACM0"/>
<param name="intensity" type="bool" value="false"/>
</node>
<node pkg="laser_scan_matcher" type="laser_scan_matcher_node"
name="laser_scan_matcher_node" output="screen">
<param name="fixed_frame" value = "odom"/>
<param name="use_alpha_beta" value="true"/>
<param name="max_iterations" value="10"/>
</node>
<node name="map_server" pkg="map_server" type="map_server" args="/home/vladimir/catkin_ws/map.yaml"/>
<node pkg="amcl" type="amcl" name="amcl" output="screen" >
<param name="odom_model_type" value="diff"/>
<param name="odom_alpha5" value="0.1"/>
<param name="transform_tolerance" value="0.2" />
<param name="gui_publish_rate" value="10.0"/>
<param name="laser_max_beams" value="30"/>
<param name="min_particles" value="500"/>
<param name="max_particles" value="5000"/>
<param name="kld_err" value="0.05"/>
<param name="kld_z" value="0.99"/>
<param name="odom_alpha1" value="0.2"/>
<param name="odom_alpha2" value="0.2"/>
<param name="odom_alpha3" value="0.8"/>
<param name="odom_alpha4" value="0.2"/>
<param name="laser_z_hit" value="0.5"/>
<param name="laser_z_short" value="0.05"/>
<param name="laser_z_max" value="0.05"/>
<param name="laser_z_rand" value="0.5"/>
<param name="laser_sigma_hit" value="0.2"/>
<param name="laser_lambda_short" value="0.1"/>
<param name="laser_lambda_short" value="0.1"/>
<param name="laser_model_type" value="likelihood_field"/>
<param name="laser_likelihood_max_dist" value="2.0"/>
<param name="update_min_d" value="0.2"/>
<param name="update_min_a" value="0.5"/>
<param name="odom_frame_id" value="odom"/>
<param name="base_frame_id" type="str" value="base_link" />
<param name="global_frame_id" type="str" value="map" />
<param name="resample_interval" value="1"/>
<param name="transform_tolerance" value="0.1"/>
<param name="recovery_alpha_slow" value="0.0"/>
<param name="recovery_alpha_fast" value="0.0"/>
<param name="use_map_topic" value="true" />
<param name="first_map_only" value="true" />
</node>
</launch>
рдпрд╣рд╛рдБ, рд╣рдо, gmapping рдХреЗ рд▓рд┐рдП рд▓рд╛рдВрдЪрд░ рдХреЗ рд╕рдорд╛рди, рд╕реНрдереИрддрд┐рдХ_transform_publisher рдиреЛрдб, hokuyo_node рдФрд░ laser_scan_matcher рдиреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди / рд▓реЗрдЬрд░ тЖТ / base_link рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░ рд╣рдо рдЕрдкрдиреЗ рдирд┐рд░реНрдорд┐рдд рдирдХреНрд╢реЗ рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП map_server рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдБ args рдореЗрдВ рд╣рдо yaml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирдХреНрд╢реЗ рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдЧ рдХреЛ рдкрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдЕрдВрдд рдореЗрдВ, рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдПрдордХреНрд▓ рдиреЛрдб рд╢реБрд░реВ рдХрд░реЗрдВред рдЖрдк рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреГрд╖реНрда рдкрд░ рдПрдордХреНрд▓ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ редрд▓реЙрдиреНрдЪрд░ рдлрд╛рдЗрд▓ рдХреЛрдб рдХреЛ рдЬреАрдердм рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рднреА рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред рд╣рдорд╛рд░реА рд▓реЙрдиреНрдЪрд░ рдлрд╝рд╛рдЗрд▓ рдЪрд▓рд╛рдПрдБ:roslaunch my_laser_matcher my_localize.launch
рдЕрдм рд╣рдо rviz рдХреА рдУрд░ рдмрдврд╝рддреЗ рд╣реИрдВред рдЧреНрд▓реЛрдмрд▓ рдСрдкреНрд╢рди рд╕реЗрдХреНрд╢рди рдореЗрдВ рдлрд┐рдХреНрд╕реНрдб рдлреНрд░реЗрдо рдХреЗ рд▓рд┐рдП рдореИрдк рд╡реИрд▓реНрдпреВ рд╕реЗрдЯ рдХрд░реЗрдВред рдЖрдЗрдП рд╡рд┐рд╖рдпреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░реЗрдВ:rostopic list
рдирдП рд╡рд┐рд╖рдп рд╕реВрдЪреА рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ:...
/amcl/parameter_descriptions
/amcl/parameter_updates
/amcl_pose
...
/map
/map_metadata
/map_updates
...
/particlecloud
Amcl_pose рд╡рд┐рд╖рдп amcl рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рд░реЛрдмреЛрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИредрдЖрдЗрдП рджреЗрдЦреЗрдВ рд╡рд┐рд╖рдп рдореЗрдВ рдкреЛрд╕реНрдЯ:rostopic echo /amcl_pose
рд░реЛрдмреЛрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:header:
seq: 15
stamp:
secs: 1482430591
nsecs: 39625000
frame_id: map
pose:
pose:
position:
x: 0.781399671581
y: 0.273353260585
z: 0.0
orientation:
x: 0.0
y: 0.0
z: -0.636073020536
w: 0.771628869694
covariance: [0.2187289446708912, -0.010178711317316846, 0.0, 0.0, 0.0, 0.0, -0.010178711317316819, 0.23720047371620548, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07106236846890918]
---
Rviz рдореЗрдВ рд╣рдореЗрдВ рдирд┐рдореНрди рдЪрд┐рддреНрд░ рдорд┐рд▓рддреЗ рд╣реИрдВ:
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓рд┐рдбрд╛рд░ рд╕реЗ рд╕реНрдХреИрди рдкреЙрдЗрдВрдЯ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рджреАрд╡рд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдореЗрд░рд╛ рд╕реЗрдЯрдЕрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
рдЪрд▓реЛ рд░реЛрдмреЛрдЯ рдХреЛ рд╣рд┐рд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рд░реЛрдмреЛрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдФрд░ рдорд╛рдирдЪрд┐рддреНрд░ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ rviz рд╡рд┐рдВрдбреЛ рдореЗрдВ рдПрдХ рд╕рд╛рде рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рд░реЛрдмреЛрдЯ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд░реЛрдмреЛрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдореНрдорд▓ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рджреНрд╡рд╛рд░рд╛ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдореЗрдВ 2D рдкреЛрд╕ рдПрд╕реНрдЯрд┐рдореЗрдЯ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░реЛрдмреЛрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, rviz рдореЗрдВ рд╢реАрд░реНрд╖ рдЯреВрд▓рдмрд╛рд░ рдореЗрдВ 2D рдкреЙрд╕ рдПрд╕реНрдЯрд┐рдореЗрдЯ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, rviz (base_link рдирд┐рд░реНрджреЗрд╢ рдкреНрд░рдгрд╛рд▓реА) рдореЗрдВ рдореИрдк рдкрд░ рд░реЛрдмреЛрдЯ рд╕рдордиреНрд╡рдп рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдХреЗрдВрджреНрд░ рдХреЗ рдЕрдиреБрдорд╛рдирд┐рдд рдмрд┐рдВрджреБ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдорд╛рдЙрд╕ рдмрдЯрди рджрдмрд╛рдП рд░рдЦреЗрдВред рдПрдХ рд╣рд░рд╛ рддреАрд░ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рд░реЛрдмреЛрдЯ рдХреЗ рдХреЗрдВрджреНрд░ рд╕реЗ рдирд┐рдХрд▓рддрд╛ рд╣реИ:
рддреАрд░ рдХреЛ рдЕрдкрдиреА рджрд┐рд╢рд╛ рдмрджрд▓рддреЗ рд╣реБрдП рдФрд░ рдирдХреНрд╢реЗ рдкрд░ рдХрд╛рд▓реЗ рдХрд┐рдирд╛рд░реЛрдВ (рджреАрд╡рд╛рд░реЛрдВ) рдХреЗ рд╕рд╛рде рд▓рд┐рдбрд╛рд░ рд╕реЗ рд╕реНрдХреИрди рдХреЗ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдВрдпреЛрдЬрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдорд╛рдЙрд╕ рдмрдЯрди рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВред
рд╣рдореЗрдВ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдРрд╕реЗ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреЗ рдЬрд╣рд╛рдБ my_localize.launch рдЪрд▓ рд░рд╣рд╛ рд╣реИ:[ INFO] [1482431993.717411186]: Setting pose (1482431993.717383): -0.413 -0.071 0.057
рдПрдХ рдЫреЛрдЯреА рд╡реАрдбрд┐рдпреЛ рдкрд░ рдЖрдк рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рд╕рдм рдХреБрдЫ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:рдЯреЙрдкрд┐рдХ / рдкрд╛рд░реНрдЯрд┐рдХрд▓рдХреНрд▓рд╛рдЙрдб рдЙрдиреНрдореБрдЦ рд╕реНрдерд┐рддрд┐ (рдкреЛрдЬ) рдпрд╛ рдХрдгреЛрдВ рдХреЗ рддрдерд╛рдХрдерд┐рдд рдмрд╛рджрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд░реЛрдмреЛрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЕрдирд┐рд╢реНрдЪрд┐рддрддрд╛ рдкрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред рд╕рдВрджреЗрд╢ рдкреНрд░рдХрд╛рд░ рдЬреНрдпрд╛рдорд┐рддрд┐_msgs / PoseArray рд╣реИредрдЯреЙрдкрд┐рдХ / рдкрд╛рд░реНрдЯрд┐рдХрд▓рдХреНрд▓рд╛рдЙрдб рдирд╛рдордХ рдбрд┐рд╕реНрдкреНрд▓реЗ рдЬреЛрдбрд╝реЗрдВ :
rviz рдореЗрдВ, рдХрдгреЛрдВ рдХрд╛ рдПрдХ рдмрд╛рджрд▓ рд▓рд╛рд▓ рддреАрд░реЛрдВ рдХреЗ рдореЛрдЯреЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:
рдХрдгреЛрдВ рдХрд╛ рдХреНрд▓рд╕реНрдЯрд░ рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛, рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░реЛрдмреЛрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдЙрддрдиреА рд╣реА рдЕрдзрд┐рдХ рд╣реЛрдЧреАред рдЖрдк ros.org рдкрд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ 2 рдбреА рдкреЛрдЬ рдЕрдиреБрдорд╛рди рдЙрдкрдХрд░рдг, рдХрдг рдмрд╛рджрд▓ рдФрд░ рдЕрдиреНрдп рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ редрд╡рд╣ рд╕рдм рд╣реИ! рд╕рднреА рдорд╛рдирд╛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо (gmping рдФрд░ amcl) рдЖрд░рдУрдПрд╕ рдореЗрдВ рдмрдбрд╝реЗ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕реНрдЯреИрдХ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВ, рдЖрдк рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рдЬрд╛рдирдХрд╛рд░реА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЬ рд╣рдордиреЗ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ Laser_scan_matcher рдЯреВрд▓, gmapping рдФрд░ amcl рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдЕрдм рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдореЛрдмрд╛рдЗрд▓ рд░реЛрдмреЛрдЯ рдХреЗ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдФрд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рд╛рдпрддреНрдд рд░реЛрдмреЛрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдореИрдиреНрдпреБрдЕрд▓ рдирд┐рдпрдВрддреНрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред ROS Vkontakte рдкрд░рд╣рдорд╛рд░реЗ рд╕рдореВрд╣ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдВ рдФрд░ ROS рдордВрдЪ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирдП рд▓реЗрдЦреЛрдВ рдФрд░ рд╕рдорд╛рдЪрд╛рд░реЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдЕрджреНрдпрддрд┐рдд рд░рд╣реЗрдВред рдореИрдВ рдЖрдкрдХреЛ рдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╢реБрднрдХрд╛рдордирд╛рдПрдВ рджреЗрддрд╛ рд╣реВрдВ рдФрд░ рдЬрд▓реНрдж рд╣реА рдЖрдкрдХреЛ рджреЗрдЦрддрд╛ рд╣реВрдВ!рдкреБрдирд╢реНрдЪ: рдЖрдЧрд╛рдореА 2017 рдХреЗ рд╕рд╛рде рд╕рднреА!