karto slam

Intallation tuto:

http://answers.ros.org/question/46329/karto-installation/


slam_karto.cpp才是要编译的,编出来之后用 前面给的launch  file 自己再修改一下

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

<launch>
 <node pkg="karto" type="slam_kart

o" name="slam_karto" output="screen">
   <remap from="scan" to="scan2d"/>
   <param name="odom_frame" value="odom"/>
   <param name="map_update_interval" value="5"/>
   <param name="resolution" value="0.025"/>
 </node>
</launch>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Correction:

1. 修改 CMakeLists.txt

# MUST USE THIS:
rosbuild_add_executable(bin/slam_karto src/slam_karto.cpp src/spa_solver.cpp)
target_link_libraries(bin/slam_karto OpenKarto)

之前注释了这两行。

2. Install eigen lib

turtle@turtle:~/ros/slam_karto-0.4.0/karto$ sudo apt-get install libeigen3-dev

3. 修改manifest.xml

<export>
    <cpp cflags="-I${prefix}/karto/include -I/usr/include/eigen3" lflags="-Wl,-rpath,${prefix}/karto/lib -L${prefix}/karto/lib -lOpenKarto"/>
  </export>
不知道是否有用。


4.  /home/turtle/ros/slam_karto-0.4.0/karto/src/spa_solver.h:28:23: fatal error: Eigen/Eigen: No such file or directory

找不到,但是已经安装:

$ ls /usr/include/eigen3

$ pkg-config --cflags eigen3

在CMakeLists.txt 中的 set(ROS_BUILD_TYPE Release) 后面加上:

find_package(Eigen REQUIRED)
include_directories(${EIGEN_INCLUDE_DIRS})
add_definitions(${EIGEN_DEFINITIONS}


~~~~~~~~~~~~~~~~~~~~~~~~

Tools installation:

$ sudo apt-get install screen

$ sudo apt-get install apt-file



~~~~~~~~~~~~~~~~~~~~~~~~~~

P: 少了库 sba

$ find . -name '*sba*'  (sba/sba2d.h)


安装vslam

$ svn co https://code.ros.org/svn/ros-pkg/stacks/vslam/trunk vslam


P: suitesparse/cs.h

$ apt-file search suitesparse/cs.h

$ sudo apt-get install suitesparse/cs.h
then /karto $ make

P: btTransform’ was not declared correctly
打开文件至第567行:

$ vi /home/turtle/ros/slam_karto-0.4.0/karto/src/slam_karto.cpp +567
Cartographer主要理论是通过闭环检测来消除构图过程中产生的累积误差[1]。用于闭环检测的基本单元是submap。一个submap是由一定数量的laser scan构成。将一个laser scan插入其对应的submap时,会基于submap已有的laser scan及其它传感器数据估计其在该submap中的最佳位置。submap的创建在短时间内的误差累积被认为是足够小的。然而随着时间推移,越来越多的submap被创建后,submap间的误差累积则会越来越大。因此需要通过闭环检测适当的优化这些submap的位姿进而消除这些累积误差,这就将问题转化成一个位姿优化问题。当一个submap的构建完成时,也就是不会再有新的laser scan插入到该submap时,该submap就会加入到闭环检测中。闭环检测会考虑所有的已完成创建的submap。当一个新的laser scan加入到地图中时,如果该laser scan的估计位姿与地图中某个submap的某个laser scan的位姿比较接近的话,那么通过某种 scan match策略就会找到该闭环。Cartographer中的scan match策略通过在新加入地图的laser scan的估计位姿附近取一个窗口,进而在该窗口内寻找该laser scan的一个可能的匹配,如果找到了一个足够好的匹配,则会将该匹配的闭环约束加入到位姿优化问题中。Cartographer的重点内容就是融合多传感器数据的局部submap创建以及用于闭环检测的scan match策略的实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值