方法一、Google---cartographer源码安装
——>若还未安装ROS与cartographer
>则运行如下代码,选择安装ROS与cartographer:
wget http://fishros.com/install -O fishros && . fishros
>接着进行cartographer的依赖环境和依赖库的安装及编译:
cd src/同级目录
catkin_make
若报错:Could NOT find SDL (missing: SDL_LIBRARY SDL_INCLUDE_DIR)
则运行:sudo apt-get install libsdl-image1.2-dev
若报错:Could not find a package configuration file provided by "move_base_msgs"
则运行:sudo apt-get install ros-noetic-move-base-msgs
若报错:muparser library not found
则运行:sudo apt install libmuparser-dev
若报错:Could not find a package configuration file provided by "cartographer" with
any of the following names
/*
sudo apt-get install -y python3-wstool python3-rosdep ninja-build stow
2、安装protobuf
#git clone -b v3.6.0 https://github.com/protocolbuffers/protobuf.git
sudo vi /etc/hosts
line3 ++: 185.199.109.133 raw.githubusercontent.com
sudo rosdep init
rosdep update
报错:因未翻墙,修改国内源
sudo vi /usr/lib/python3/dist-packages/rosdep2/sources_list.py
DEFAULT_SOURCES_LIST_URL='https://gitee.com/ssonic/rosdistro/raw/master/rosdep/sources.list.d/20-default.list'
sudo vi /usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py
FUERTE_GBPDISTRO_URL = 'https://gitee.com/ssonic/rosdistro/raw/master/releases/fuerte.yaml'
sudo vi /usr/lib/python3/dist-packages/rosdep2/rep3.py
REP3_TARGETS_URL ='https://gitee.com/ssonic/rosdistro/raw/master/releases/targets.yaml'
sudo vi /usr/lib/python3/dist-packages/rosdistro/__init__.py
DEFAULT_INDEX_URL = 'https://gitee.com/ssonic/rosdistro/raw/master/index-v4.yaml'
sudo rosdep init
报错:rm –rf /etc/ros/rosdep/sources.list.d/20-default.list
sudo rosdep init
rosdep update
*/
安装cartographer:
sudo apt-get install -y \
cmake \
g++ \
git \
stow \
google-mock \
libboost-all-dev \
libcairo2-dev \
libeigen3-dev \
libgflags-dev \
libgoogle-glog-dev \
liblua5.2-dev \
libsuitesparse-dev \
libwebp-dev \
libgmock-dev \
ninja-build \
protobuf-compiler
安装abseil:
cd agv_project/src/lgmg_robots/agv_perception/slam/cartographer/3rd/abseil-cpp/
mkdir build
cd build
cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON ..
make -j4 CFLAGS='$CFLAGS -fpic'
sudo make install
安装protoc
cd agv_project/src/lgmg_robots/agv_perception/slam/cartographer/3rd/protobuf
源码路径下protoc版本为3.4.0,应更换为3.6.0
./autogen.sh
./configure
make
make check
sudo make install
sudo ldconfig
安装ceres
mkdir build
cd build
cmake ..
make
sudo make install
编译cartographer
mkdir build
cd build
cmake .. -G Ninja \
-DCMAKE_CXX_STANDARD=11 \
..
ninja
CTEST_OUTPUT_ON_FAILURE=1 ninja test
sudo ninja install
cd agv_project/
catkin_make
报错:Could not find a package configuration file provided by
"four_wheel_steering_msgs" with any of the following names
sudo apt-get install ros-noetic-four-wheel-steering-msgs
报错:Could not find a package configuration file provided by
"urdf_geometry_parser" with any of the following names
sudo apt-get install ros-noetic-urdf-geometry-parser
过程中:缺啥依赖就安装啥!!!
sudo apt-get install ros-noetic-slam*
sudo apt-get install ros-noetic-XXX
/***或者
sudo apt-get install ros-melodic-XXX
方法二、Google---cartographer(非源码)环境配置过程
***配置cartographer建图原教程:Cartographer ROS Integration — Cartographer ROS documentation
(后期尝试——>配置过程出错原因:网络问题,上不了外网!!!!)
# 步骤一:安装必要的功能包: wstool and rosdep.
sudo apt-get update
sudo apt-get install -y python-wstool python-rosdep ninja-build
# 步骤二:创建一个工作空间 'catkin_ws'.
mkdir catkin_ws
cd catkin_ws
wstool init src
#步骤三:下载所需代码文件:
#原命令是这样
wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall
wstool update -t src
#但是只能成功下载到cartographer, cartogropher_ros包 下载会报错
个人采用如下方式(或者说先按上述命令下一遍包,没下载成功的包用下面命令下载补上)
cd src
git clone https://github.com/cartographer-project/cartographer.git #cartographer包
git clone https://github.com/cartographer-project/cartographer_ros.git #cartographer_ros包
cd ..
wstool update -t src #此步如果报错可忽略
#步骤四:安装:proto3
src/cartographer/scripts/install_proto3.sh
#步骤五:安装 deb 依赖项:
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y
/**--若出现如下报错:
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
cartographer: [libabsl-dev] defined as "not available" for OS version [focal]
就尝试把cartographer_ws/src/cartographer文件夹中的package.xml 文件中的第46行<depend>libabsl-dev</depend>
删掉就完事儿了,删除后再重新执行:即可!--**/
#步骤六:生成并安装ninja
///此次在安装功能包的时候需要运行一下如下命令,设置一下环境路径
*************以后每次修改包内文件都需要运行一下这个命令***************
catkin_make_isolated --install --use-ninja
source install_isolated/setup.bash
#步骤七:在catkin_ws目录下设置环境变量(一劳永逸):
echo "source ~/catkin_ws/install_isolated/setup.bash">>~/.bashrc
#步骤八:测试过程
- 下载示例包(例如德意志博物馆的2D和3D背包系列)到一个已知的位置
- 示例位于~/Downloads,并使用roslaunch来调出演示:
# 下载示例 2D.bag.
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag
# Launch 2D backpack demo(运行2D示例包)
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag
# 下载 3D backpack example bag.
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_3d/with_intensities/b3-2016-04-05-14-14-00.bag
# Launch the 3D backpack demo(运行3D示例包)
roslaunch cartographer_ros demo_backpack_3d.launch bag_filename:=${HOME}/Downloads/b3-2016-04-05-14-14-00.bag
二、Google---cartographer建图过程
本人使用的激光雷达型号是 HOKUYO-UST-20LX(网口),最终建图效果如下:
详细步骤:
1.首先下载雷达的相关节点包
sudo apt-get install ros-indigo-urg-node
这里需要有一个配置雷达IP地址的过程:详见参考链接6 新加入配置链接
2.这里有一个launch文件修改过程:详见参考链接1
3.同时在路径~/catkin_ws/src/cartographer_ros/cartographer_ros/launch/路径下修改demo_revo_lds.launch文件,加入以下节点
<node name="urg_node" pkg="urg_node" type="urg_node" output="screen">
<param name="ip_address" value="自己的雷达IP地址"/>
<param name="serial_port" value=""/> #如果说是串口雷达在此命令行的value中加入雷达串口名
<param name="serial_baud" value="115200"/>
<param name="frame_id" value="laser"/>
<param name="calibrate_time" value="true"/>
<param name="publish_intensity" value="true"/>
<param name="publish_multiecho" value="false"/>
<param name="angle_min" value="-1.5707963"/>
<param name="angle_max" value="1.5707963"/>
<node pkg="rviz" type="rviz" name="rviz"/>
</node>
运行看效果:
roscore
roslaunch cartographer_ros demo_revo_lds.launch
参考链接:
1、基于rplidar || hokuyo的cartographer建图_Feng_zhengchao的博客-CSDN博客
2、cartographer ros使用指南-安装 - 创客智造
3、cartographer只用激光(hokuyo)2D建图_fake_fs的博客-CSDN博客