• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

SLAM-hector_slam 简介与使用

人工智能 十啵 1307次浏览 0个评论

hector_slam功能包使用高斯牛顿方法,不需要里程计数据,只根据激光信息便可构建地图。 所以他的总体框架如下:  
在这里插入图片描述  

hector-slam功能包

  hector_slam的核心节点是hector_mapping,它订阅“/scan”话题以获取SLAM所需的激光数据。与gmapping相同的是,hector_mapping节点也会发布map话题,提供构建完成的地图信息;不同的是,hector_mapping节点还会发布slam_out_pose和poseupdate这两个话题,提供当前估计的机器人位姿。   在ROS的软件源中已经集成了hector-slam相关的功能包,可以使用如下命令安装:  

<code class="prism language-bash has-numbering">$ <span class="token function">sudo</span> <span class="token function">apt-get</span> <span class="token function">install</span> ros-kinetic-hector-slam
</code>

  下面先来了解hector_slam功能包的各种接口。 话题和服务 hector_mapping节点中发布/订阅的话题和提供的服务如表所示。  
在这里插入图片描述   坐标变换 hector_mapping节点提供的坐标变换如表所示。  
SLAM-hector_slam 简介与使用   参数 参数默认就可以,学习后可以根据自己的要求修改~  

hector_mapping节点的配置与运行

  依然无需关注hector_mapping节点的内部实现,使用其提供的接口即可实现SLAM功能。   1.hector.launch 与gmapping节点一样,hector_mapping节点也有不少参数需要设置,单独实现一个my_robot_navigation/launch/hector.launch文件完成节点的启动,代码如下:  

<launch>
<node pkg = "hector_mapping" type="hector_mapping" name="hector_mapping" output="screen">
<!—— Frame names ——>
<param name="pub_map_odom_transform" value="true"/>
<param name="map_frame" value="map" />
<param name="base_frame" value="base_link" />
<param name="odom_frame" value="base_link" />
<!—— Tf use ——>
<param name="use_tf_scan_transformation" value="true"/>
<param name="use_tf_pose_start_estimate" value="false"/>
<!—— Map size / start point ——>
<param name="map_resolution" value="0.05"/>
<param name="map_size" value="2048"/>
<param name="map_start_x" value="0.5"/>
<param name="map_start_y" value="0.5" />
<param name="laser_z_min_value" value = "-1.0" />
<param name="laser_z_max_value" value = "1.0" />
<param name="map_multi_res_levels" value="2" />
<param name="map_pub_period" value="2" />
<param name="laser_min_dist" value="0.4" />
<param name="laser_max_dist" value="5.5" />
<param name="output_timing" value="false" />
<param name="pub_map_scanmatch_transform" value="true" />
<!—— Map update parameters ——>
<param name="update_factor_free" value="0.4"/>
<param name="update_factor_occupied" value="0.7" /> 
<param name="map_update_distance_thresh" value="0.2"/>
<param name="map_update_angle_thresh" value="0.06" />
<!—— Advertising config ——> 
<param name="advertise_map_service" value="true"/>
<param name="scan_subscriber_queue_size" value="5"/>
<param name="scan_topic" value="scan"/>
</node>
</launch>

  hector_demo.launch 然后创建一个用于演示hector_slam的my_robot_navigation/launch/hector_demo.launch文件,启动hector_mapping节点和rviz可视化界面,代码如下:  

<launch>
<include file="$(find my_robot_navigation)/launch/hector.launch"/>
<!—— 启动rviz——>
<node pkg="rviz" type="rviz" name="rviz" args="-d $(find my_robot_navigation)/rviz/gmapping.rviz"/>
</launch>

  然后启动自己的小车底盘和雷达,再启动hector-slam的launch文件,就可以建图了。 个人感觉虽然不用里程计和imu模块,但是建图效果并不差!  
在这里插入图片描述


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明SLAM-hector_slam 简介与使用
喜欢 (0)

您必须 登录 才能发表评论!

加载中……