最快实现一个自己的扫地机

羽林君

共 2654字,需浏览 6分钟

 · 2023-05-29

2e46ee27b1c3c4ecc33632191de09a4c.webp

作者:良知犹存

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

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


   扫地机介绍     

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

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

6315f502ab82519957c01e6daeabb59a.webp

扫地机是如此发展的,里面技术点业务场景也是很复杂的,今天分享一个好朋友写的扫地机快速使用的SDK。他是扫地机行业工作好多年的老工程师了,把自己对于行业的一些理解以及经验总结到这个SDK里面。

d706edf4e312d7db9ee6e2ba9d169442.webp

这个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无源代码,以docker呈现Gazebo模拟)

更新日志:

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


886c271a29d418487efb862bc5616788.webp


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

roslaunch zima_ros gazebo_demo.launch

34fe0f78f6d52c49655a0ec1cc3d0acc.webp


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

roslaunch zima_ros rviz.launch

039e1fe378f072aaa7da5c861eb708f1.webp

bb34f611fa53e075a8b28a5b3f0e6346.webp

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

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


结语

这就是我朋友在扫地机做的一些开源SDK项目的情况,喜欢的朋友可以分享点一波star。如果大家有更好的想法,也欢迎大家加我好友交流分享哈。


作者:良知犹存,白天努力工作,晚上原创公号号主。公众号内容除了技术还有些人生感悟,一个认真输出内容的职场老司机,也是一个技术之外丰富生活的人,摄影、音乐 and 篮球。关注我,与我一起同行。

                                    ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧  END  ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧

推荐阅读

【1】jetson nano开发使用的基础详细分享

【2】Linux开发coredump文件分析实战分享

【3】CPU中的程序是怎么运行起来的 必读

【4】cartographer环境建立以及建图测试

【5】设计模式之简单工厂模式、工厂模式、抽象工厂模式的对比

本公众号全部原创干货已整理成一个目录,回复[ 资源 ]即可获得。


浏览 22
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报