快速实现一个自己的扫地机-LMLPHP
作者:良知犹存
转载授权以及围观:欢迎关注微信公众号:羽林君
或者添加作者个人微信:become_me

扫地机介绍

扫地机器人行业本质是技术驱动型行业,产品围绕导航系统的升级成为行业发展的主旋律。按功能划分,扫地机器人分为四大系统,即导航系统、清洁系统、续航系统及交互系统。从扫地机的发展历史来看,新产品开发形成了以导航系统为主线,其它系统为支线的技术迭代趋势。
基本上发展阶段是从随机式清扫阶段-规划式清扫阶段,规划阶段又有,惯性导航技术阶段,激光导航,视觉导航发展。此外还辅助AI的物体识别和场景识别。
快速实现一个自己的扫地机-LMLPHP
​扫地机是如此发展的,里面技术点业务场景也是很复杂的,今天分享一个好朋友写的扫地机快速使用的SDK。他是扫地机行业工作好多年的老工程师了,把自己对于行业的一些理解以及经验总结到这个SDK里面。
 
 
快速实现一个自己的扫地机-LMLPHP
 
 
这个Demo可以帮助一些想要体验或者快速测试扫地机项目的朋友。

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
  1. 支持规划清扫、暂停、重定位继续清扫。
  2. 支持地图保存(3张),选择地图进行二次清扫。
  3. 快速建图(实验阶段)。
v0.1.1
  1. 修复快速建图Bug。
  2. 修复重定位失效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.0
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 \
    zimatec/ros:zima-demo-v0.1.0
fi

  

 
容器中启动仿真环境方法(在独立终端中运行):
roslaunch zima_gazebo gazebo.launch
快速实现一个自己的扫地机-LMLPHP
添加图片注释,不超过 140 字(可选)
容器中启动Demo(在独立终端中运行):
roslaunch zima_ros gazebo_demo.launch
快速实现一个自己的扫地机-LMLPHP
容器中启动Rviz(在独立终端中运行):
roslaunch zima_ros rviz.launch
快速实现一个自己的扫地机-LMLPHP
快速实现一个自己的扫地机-LMLPHP
 
建议仿真环境与Demo与Rviz从不同的终端窗口进入docker后启动,因为Demo程序使用键盘标准输入为测试命令输入,用一个launch文件一起启动的话键盘输入会失效。
键盘控制详细请看Demo程序输出提示,若提示日志已被刷走,可按esc键或任意非功能键来输出提示。
 
结语
这就是我朋友在扫地机做的一些开源SDK项目的情况,喜欢的朋友可以分享点一波star。如果大家有更好的想法,也欢迎大家加我好友交流分享哈。

作者:良知犹存,白天努力工作,晚上原创公号号主。公众号内容除了技术还有些人生感悟,一个认真输出内容的职场老司机,也是一个技术之外丰富生活的人,摄影、音乐 and 篮球。关注我,与我一起同行。
‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ END ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧
 
推荐阅读
本公众号全部原创干货已整理成一个目录,回复[ 资源 ]即可获得。
05-26 18:40