引言
比特有灵开源了一个名为ZIMA的激光扫地机器人项目。把智能小车的控制技术、基础的2D雷达SLAM算法、经典的路径规划算法等等结合到一起。 本博文对其进行配置以及测试,本博文仅供本人学习记录用~
测试过程是基于Gazebo与ROS的,当然代码中也包括了kobuki底盘的代码
配置
原本的配置四采用Docker镜像的
docker pull bitsoullab/ros:zima-dev
# Password for user zima is 123456
#容器创建启动方式
if [ -e /dev/nvidia0 ]; then
echo "Launch with nvidia support."
docker run \
-it \
-u zima \
--name="zima_demo" \
--net=host \
--privileged \
-v /dev:/dev \
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
--runtime=nvidia \
--device /dev/nvidia0 \
--device /dev/nvidia-uvm \
--device /dev/nvidia-uvm-tools \
--device /dev/nvidiactl \
--runtime=nvidia \
--gpus all \
bitsoullab/ros:zima-dev
else
echo "Launch without nvidia support."
docker run \
-it \
-u zima \
--name="zima_demo" \
--net=host \
--privileged \
-v /dev:/dev \
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
bitsoullab/ros:zima-dev
fi
此处先不用docker,先进行编译安装
- 在zima_base目录下,运行
bash build.sh build_dir
- 在zima_core目录下,运行
bash build.sh build_dir

- 新建一个ros workspace,然后使用catkin_make编译。

运行前先确保已经source了工作空间
source /your_path_to_workspace/devel/setup.bash

测试
测试用的代码及代码解读请见:Link
- 启动仿真环境
roslaunch zima_gazebo gazebo.launch
# 加载可能比较慢,可以尝试离线启动(但似乎也还是很慢)
roslaunch zima_gazebo gazebo.launch verbose:=true

- 启动demo
roslaunch zima_ros gazebo_demo.launch
若遇到报错 Open: Open /tmp/zima_config.json failed.
,那么就在zima_base/json_config中复制一份zima_dev_gazebo_config.json到/tmp/zima_config.json。


按键操作:
- a 是自动清洁
- s 是自动扫描房间
- q 是退出
- 启动rviz
roslaunch zima_ros rviz.launch
rqt_graph
如下图所示

如下图所示,会标记出机器人运动的轨迹以及已经清洁的区域,不过对于机器人规划的路径感觉有进一步优化的空间,有些区域不知为何空着先不处理留到后续才清洁,这会导致额外的多余任务

测试效果请见视频:
时间太长了,因此视频没有全部录制,最终跑了一个多小时才完成整个空间的清洁任务
