最快实现一个自己的扫地机
2023-05-27 09:18:41 面包芯语

作者:良知犹存

转载授权以及围观:欢迎关注微信公众号:羽林君

或者添加作者个人微信:become_me


【资料图】


扫地机介绍

扫地机器人行业本质是技术驱动型行业,产品围绕导航系统的升级成为行业发展的主旋律。按功能划分,扫地机器人分为四大系统,即导航系统、清洁系统、续航系统及交互系统。从扫地机的发展历史来看,新产品开发形成了以导航系统为主线,其它系统为支线的技术迭代趋势。

基本上发展阶段是从随机式清扫阶段-规划式清扫阶段,规划阶段又有,惯性导航技术阶段,激光导航,视觉导航发展。此外还辅助AI的物体识别和场景识别。

Zima SDK

Zima SDK是一个力求轻量模块化可移植的2D激光SLAM导航家用清洁机器人算法SDK。仓库位置:https://gitee.com/zimatec/zima_ros_demo_readme

目前仅供学习交流,禁止商用。

SDK包含基础数据格式、控制算法、规划算法、SLAM算法,低依赖(目前只需glog/gflags/protobuf)。为便于调试,也加入了ros封装和简单gazebo仿真。

目前闭源Gazebo仿真Demo部署方式为docker。(Demo已内置里程计的累计误差模拟,和雷达的误差模拟)

更新日志:

v0.1.0

支持规划清扫、暂停、重定位继续清扫。

支持地图保存(3张),选择地图进行二次清扫。

快速建图(实验阶段)。

v0.1.1

修复快速建图Bug。

修复重定位失效Bug。

Demo方法(示例宿主机为Ubuntu22.04系统,理论上可兼容其他Linux发行版):

宿主机需要先安装Docker,并拉取镜像:

docker pull zimatec/ros:zima-demo-v0.1.1

容器创建启动方式:

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 \    zimatec/ros:zima-demo-v0.1.0else  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 \    zimatec/ros:zima-demo-v0.1.0fi

容器中启动仿真环境方法(在独立终端中运行):

roslaunch zima_gazebo gazebo.launch

容器中启动Demo(在独立终端中运行):

roslaunch zima_ros gazebo_demo.launch

容器中启动Rviz(在独立终端中运行):

roslaunch zima_ros rviz.launch

建议仿真环境与Demo与Rviz从不同的终端窗口进入docker后启动,因为Demo程序使用键盘标准输入为测试命令输入,用一个launch文件一起启动的话键盘输入会失效。

键盘控制详细请看Demo程序输出提示,若提示日志已被刷走,可按esc键或任意非功能键来输出提示。

相关新闻: