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