我是靠谱客的博主 勤奋老虎,最近开发中收集的这篇文章主要介绍从零开始搭建ROS移动机器人系列之(一)预备知识及总体框架,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 笔者2020年初次接触ROS,2021年参加工作以后,愈发对ROS产生浓厚的兴趣,渴望拥有一台ROS机器人,淘宝上一搜再搜,发现有很多现成的产品,但是价格属实让人望而却步,遂产生了自己搭建一个ROS机器人的想法,于是查阅了大量相关资料,虽然网上ROS相关的资料也丰富起来了,但自己摸索的过程中还是遇到了很多困扰的地方,最近花了一些时间,把机器人的底层硬件搭建了起来,想着抽空把搭建过程整理成一个系列文章,给有相关兴趣或者有同样需求的初学者同学作为参考。网上其实也能搜到类似的文章,但是每个人的实际情况不一样,过程中遇到的问题可能也不尽相同,多方参考也许能尽最大可能的避开各种坑,以最高的效率搭建出自己的硬件平台。而且,本着自己学会不如把别人教会的理念,也算作加深自己对整个过程的理解吧,废话不多说,让我们开始吧。

01

理论知识

对ROS有兴趣的初学者肯定或多或少对ROS已经有了一些了解,ROS的一些概念暂且就先不谈了,网上也能找到大量的资料,大家可以自己去学习学习先,这个系列文章的重点是硬件平台的搭建。首先,先放上到目前为止我自己搭建的机器人平台,比较简陋,还不完善,仅仅是完成了底层控制部分,底层与ROS层的通信也是基于PC机验证的,后续还需要增加外部传感器和树莓派之类的可以部署ROS的单板计算机。

那么,搭建一个这样的移动机器人平台需要准备些啥呢,先说说理论知识。

  • 首先,需要写代码是毋庸置疑的,底层控制用C语言,上层ROS用C++或者Python,所以,小伙伴们肯定是得要掌握相关编程语言的部分知识的,其实也不用太担心,前期的话基本上能看懂代码就可以了;

  • 接下来,从零开始搭建的话,需要掌握一些基础的电路知识,不需要去深入的学习数电模电啥的,能看懂简单电路就够用了,因为你后期如果自己设计底层控制板的话需要自己画电路图,即便你选择现成的模块往一起拼也得知道哪个跟哪个怎么接怎么连线对吧;

  • 然后就是需要掌握单片机的相关知识,不需要深究原理但要知道怎么去应用,主要就是单片机的GPIO、定时器、中断、串口的配置;

  • 再就是需要掌握一点移动机器人的相关知识吧,比如移动机器人的运动结构,有差速结构、阿克曼结构、全向轮结构,然后机器人的速度解算之类的,这个好像也不需要刻意去学,后边用到的部分一学就懂了;

  • 再就是。。。Emmm,好像就这些了吧。对了,重中之重就是ROS的基础知识了,包括整个开发环境的搭建、ROS的通信机制、功能包的创建等等之类的吧,总之就是先把最基础的掌握了就行,起码你底层搭起来了,得验证一下底层和ROS层通没通吧。

大家一看上面列了这么多,可能觉得发怵,duck不必,在这个阶段,你只需要做到知其然就够用,知其所以然那是后期的事,而且随着你研究的越来越深入,这些知识和能力都是自然而然增长的,切记,一切都是水到渠成。

02

总体框架

下面给出机器人的总体框架,这个就涉及整个硬件部分的设计了,这里先简要概括一下,后续再针对性地写每个部分怎么弄。话不多说,看图。

这图画得可以说非常直观了,简直就是把机器人从三维投影到二维了,挨个说一下每个部分都是啥。

  • 首先你需要一个机器人底盘,就是把这些东西都安装到上面,然后可以跑;

  • 底盘要想跑,就得有轮子,我们这里搭建一个差速小车,所以你需要两个驱动轮,然后加一个万向轮;

  • 轮子要想转,就得有电机,所以你需要两个带编码器的直流减速电机,你的电机得有测速的功能,因为后期你要实现速度控制,速度控制不是说你给它设多少值就多少值,你得根据它的实际速度进行调整,这就涉及到后续的PID控制了;

  • 电机速度怎么下发,测得速度怎么知道,你就需要控制器了,然后单片机就上场了,单片机上来负责处理速度控制信号,但是单片机引脚电流太小,不足以驱动电机,所以你需要一个电机驱动芯片,然后,你需要知道你的机器人的位姿状态,比如朝哪个方向多少多少度,你就需要一个姿态传感器,上面这些,就构成了一个最基本的电机驱动板,也就是所谓的底层控制部分;

  • 单片机只能按设定的程序跑,运行过程中是没法改变的,所以,你需要让它有一个大脑,那么ROS就来了,ROS是个操作系统,说白了就是个软件,它需要硬件载体,所以你需要一个类似树莓派之类的可以部署ROS的单板计算机

  • 然后,这些都有了,但是,你的机器人相当于聋哑盲人,它没法感知它所处的环境,要实现这些,你就需要外部传感器,比如激光雷达或者深度摄像头

到这里,你的机器人才算具备了从感知到决策再到执行的完整功能。

画个网络图总结一下。

以上内容仅仅是搭建移动机器人硬件平台所需要的东西,不包括后期在机器人上部署slam、导航避障、视觉等各种算法。


今天就先写到这,下一期详细说说硬件部分各个模块怎么弄。

最后

以上就是勤奋老虎为你收集整理的从零开始搭建ROS移动机器人系列之(一)预备知识及总体框架的全部内容,希望文章能够帮你解决从零开始搭建ROS移动机器人系列之(一)预备知识及总体框架所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部