天天看点

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

[email protected]:~/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