基于ROS 履带车从零开始制做(1)-序

背景

 毕业近5年,从大二开始接触嵌入式(单片机),接触过不同行业,也陆陆续续做过很多项目,随着时间的推移,对嵌入式行业的认知也越来越深刻。简述一下我的工作经历。在第一份工作,做的产品是AGV(自动导引小车),主要是在汽车长通过磁条自动循迹,RFID路标,无线(wifi)上位机调度的拉货小车。 使用的ST 的单片机控制 ,主要的技术点就是 运动控制(PID),通讯协议,逻辑控制。做的最多的事就是逻辑控制,即将货物沿着轨道运送到指定的地点。其实这个专题的产生很大程度是受 第一份工作的影响,AGV确实是个很有意思的系统。但之前的知识面太窄,加上基础薄弱,导致做出来的东西问题频出,也没有一个好的环境学习,就无奈离开这个行业。

第二份工作选择了物联网行业,从BLE(低功耗蓝牙)开始,主要就是应用层代码,涉及通讯协议,应用层框架 ,在业余时间钻研了一下代码架构相关的知识,编程能力得到了较大的提升,不再是以前 层次混乱 , 只有逻辑的代码。

第三份工作,也就是目前的工作同样是物联网行业,不过是LoRa 开发 ,这段时间也许是工作以来对我影响最大的。工作内容主要是LoRaWan协议栈的开发 , 物联网LoRaWAN 传感器节点的开发。在这个过程中,通过学习LoRaWANf协议的设计 , 对通讯, 代码的分层,结构化,数据结构 有了更加深刻的认识。经常接触的知识点有 : 状态机 , 面向对象, RTOS ,  通信时序 , 可靠性,事件驱动,异常分析 ,python , 多播,中继 ,外设工程用法 方法等。感觉自己有了很大提升。但同时也感觉到,底层的物联网节点做的事情的单调。主要做的就是数据的采集 , 而人们真正关注的数据的应用。当然也不能说数据采集毫无趣味, 如节点端的数据如何防止上行碰撞问题,数据如何安全交付,如何实现多播通信,如何进行数据的中继,终端设备的远程更新固件和配置,都是相当有趣和难度的。

为什么要做这个小车。一是感觉自己的知识面很局限 , 主要就是 单片机 和 通讯协议 ,只做数据采集,而未使用数据;二是对机械有着不能割舍的情怀,喜欢手工制作;三是以及工作了近5年,应该要建立自己的知识体系了,不能太过局限,要有大局观,关注前沿技术,可以不精通,但至少要知道,当需要解决问题时,知道怎样去深入学习。

目的

在开始写这个专题前,已经开始了近3个月的学习,主要是了解完成制作这个需要哪些知识点,以及一些基础知识的了解。什么是基础知识? 我对它的定义是无法分割的 , 比如数学知识,线性代数,微积分,统计学等,是卡尔曼滤波的基础知识,没有这些基础知识,要想学习卡尔曼滤波是很难的。那么,真的要在什么都不了解的情况下,就去学这些吗?事实证明,大学学的效果有多差,这样的效果就有多差。我们可以找一些优秀的教程,这类教程会提供必备的基础知识教程,还是用卡尔曼滤波的例子 卡尔曼滤波教程 。这个教程提供必要的数学背景,比如期望代数,我们没必要学习整个统计学,只需要弄懂里面的部分;再比如矩阵,只要知道乘法运算和向量就可以大致看懂,而不需要一股脑的把线性代数全学习一变,如果觉得教程讲解不够清晰,再去查找相应专业书籍对应的章节。最终的结果就是 , 通过实践 掌握了基础知识,基础知识强化了实践能力。形成了这样的循环后,效率将大大提高。

行业大环境分析

目前比较热门的几个方向有 : 物联网 , 5G ,智能家居 ,人工智能, 无人驾驶 等。他们各个之前都相互交叉影响,比如智能家居是家用电器联网,也属于物联网,无人驾驶和物联网又依靠5G技术提供庞大的带宽 ,人工智能依靠物联设备提供的大数据。当然每一类里面又分成很多类,在我看来,无人驾驶技术应该是 综合力最强的一个方向。它包含机械,运动控制 , 5G , 物联网,人工智能等诸多方面的类容。

那么就应该盲目选择无人驾驶方向吗?个人精力是有限的 , 难以做到什么都精通,如果想一下抓住所有,那么很可能最终什么都没抓住。如果专精一个方向,有容易陷入局部,最终坐井观天,毕竟这些方向都是相关连的,如何取舍是一个关键。

我认为在初步接触这些技术时,可以先不深究,这里的深浅又是一个难题。大众学习路线是一个不错的选择,比如开始学习卡尔曼滤波,工程实践教程的参考性大于理论基础研究,也不是说不学习原理。而是了解基本原理,弄懂代码实现,运用到实践。什么是深究?经过了工程实践,可以研究前沿论文,比如一些拓展算法,或这类似的算法,追求性能的最优化。这将耗费大量的实践,也就是花1000%的代价 得到性能 1%的提升。

在对这些技术都有一定认知后 ( 知道基本原理 , 能运用),此时看问题是全局的,在解决问题的时候,哪一种技术对解决问题有更大的帮助,深究技术细节 。通过这种方法 , 随着处理的问题越来越多,知识体系越来越完善。整个过程就像写书 , 先完成目录,能完成目录的前提是对类容有基础的认知 , 完成目录后,就具体的内容去实现细节,最终完成整本书。

回到主题

基于ROS 履带车从零开始制做 ,这里 有几个关键字 ROS 履带车从零开始 。ROS 是机器人操作系统的简称,简化了机器人的开发,大量运用,具体可网上查找。履带车,为什么选履带车?有以下几点原因:越野能力,复杂的机械结构,做的人比较少,国内DIY社区没有比较好的实现。能够锻炼3维建模能力 , 机械设计能力 。从零开始意味着,结构 , 电路 , 软件全部自己设计,是一个边学边做的过程。在写这边文章的时候,我同样很多知识不具备 , 通过边做边学边整理完成整个设计。时间跨度很长,因为覆盖的类容很多 ,而且很多知识是边学边做。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ROS阿克曼小代码开源是指ROS(机器人操作系统)针对阿克曼小(Ackermann car)的代码,以开源的方式提供给公众进行自由使用和修改。阿克曼小是一种具有特殊驱动方式的机器人辆,通过前轮转动实现转弯,能够很好地适应曲线道路。开源代码的提供将极大地促进阿克曼小在各个领域的应用与研发。以下是我对ROS阿克曼小代码开源的一些理解和解释。 首先,ROS阿克曼小代码开源将为机器人开发者提供一个便捷的开发平台。由于阿克曼小具有独特的运动机理,其控算法和驱动代码相对较为复杂。开源代码的提供将大大降低了开发者的学习和开发成本,使得更多的人可以参与到阿克曼小的开发工作中。此外,开源代码还可以激发创新思维,促进代码的优化和改进,提高阿克曼小在各个应用场景下的性能。 其次,ROS阿克曼小代码开源还有助于促进行业技术的共享和交流。在开源社区中,开发者可以分享自己的代码和经验,从而互相学习和进步。通过在ROS平台上开发和测试阿克曼小代码,开发者们可以共同解决遇到的问题和挑战,共同推动行业发展。此外,开放的代码还可以鼓励不同机构之间的合作,促进技术和资源的共享,形成合力,加速阿克曼小技术的进步与应用。 最后,ROS阿克曼小代码开源还有利于推动教育和培训领域的发展。开源代码的提供使得教育机构和培训机构可以基于ROS平台进行阿克曼小相关课程的设计和开展。学生和培训人员可以通过参与实际的开发和项目实践,提升自己的技术水平和实践能力。此外,开源代码还为学术研究提供了一个良好的基础,研究者们可以在此基础上进行算法研究和实验验证,推动相关领域的学术进展。 总之,ROS阿克曼小代码的开源将有助于推动阿克曼小的应用与研发,在机器人领域发挥重要的促进作用。它为开发者提供了便捷的开发平台,并促进了行业技术的共享和交流,同时也推动了教育和培训领域的发展。通过众多开发者的共同努力,相信阿克曼小的应用前景将更加广阔。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值