Zima SDK是一个力求轻量模块化可移植的2D激光SLAM导航家用清洁机器人算法SDK。
目前已使用MIT协议开源。
SDK包含基础数据格式、控制算法、规划算法、SLAM算法,低依赖(目前只需glog/gflags/protobuf)。为便于调试,也加入了ros封装和简单gazebo仿真。 目前Gazebo仿真Demo部署方式为docker。(Demo已内置里程计的累计误差模拟,和雷达的测量误差模拟,但雷达的运动畸变模拟并未加入)
(示例宿主机为Ubuntu22.04系统,理论上可兼容其他Linux发行版):
-
宿主机需要先安装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
-
编译安装
- 在zima_base目录下,运行
build.sh。 - 在zima_core目录下,运行
build.sh。 - 新建一个ros workspace,导入zima_gazebo/zima_ros。并使用
catkin_make编译。
- 在zima_base目录下,运行
-
仿真测试
运行ros命令前请记得添加zima包的环境变量。
source /your/path/to/workspace/devel/setup.bash容器中启动仿真环境方法(在独立终端中运行):
# 运行仿真之前,需要把ZIMA的Gazebo模型软连接到Gazebo模型库中,否则会出现启动Gazebo卡死,或家具无法显示。具体方法: # cd /home/zima/.gazebo/models # ln -s /your/path/to/zima_gazebo/worlds/models/* . roslaunch zima_gazebo gazebo.launch
容器中启动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。容器中启动Rviz(在独立终端中运行):
roslaunch zima_ros rviz.launch
建议仿真环境与Demo与Rviz从不同的终端窗口进入docker后启动,因为Demo程序使用键盘标准输入为测试命令输入,用一个launch文件一起启动的话键盘输入会失效。 键盘控制详细请看Demo程序输出提示,若提示日志已被刷走,可按esc键或任意非功能键来输出提示。
此项目已适配Kobuki底盘,但需要自行搭配arm linux核心板以及雷达使用。
感谢各位关注以及匿名捐赠本项目的开发者。若遇到运行问题或Bug,欢迎提交Issue。
微信公众号/CSDN/知乎/小红书/BiliBili:比特有灵 Github: BitSoulLab