白茶-清欢
分享单片机、移动机器人相关知识!
展开
-
搭建ROS小车真的难吗?
搭建ROS小车真的难吗?不难1.引言本着为大家谋福利的心态,根据自己以往的开发经验,打算写一个从零开始制作一个可以实现地图构建和导航的ROS小车。目前某宝上面有很多现成产品,但是我个人认为,一个好的移动机器人开发工程师,应该对机器人的整个流程都能具备维护的能力,然后再深入研究其中一个方向即可。看到网上很少有整个系列的开发教程,看到同学们大多东拼西凑,浪费了不少时间。我就想着利用空余时间,将我本人的开发过程输出给大家。有基础理论、有实际工程代码、有丰富的学习资料,尽最大努力帮大家进入移动机器人的大门。国原创 2020-08-10 21:39:19 · 15124 阅读 · 6 评论 -
基础ROS小车软件结构到底是什么样子的?
1.ROS小车开发手册-软件结构以及控制流程介绍0.前言想必大多数读者,在刚开始搭建ROS小车的时候,都会遇到下面这样的问题。单片机底层PWM、测速、速度PID、MPU6050数据获取等等,而且还要与ROS层通信,ROS层还有其他控制部分,WT!!!这么多?这么乱?是不是想想都脑大。所以,在搭建ROS小车的开始一个清晰合理的软件结构就显得尤为重要。本篇文章就是给大家的脑回路里构建一个清晰的软件结构。让大家清楚,日后我们需要一步步做些什么,以及我们每做的一步在整体的系统中起的什么作用。1.开篇首先,我原创 2020-08-12 19:36:03 · 12084 阅读 · 2 评论 -
从零搭建ROS机器人平台
1.引言本着为大家谋福利的心态,根据自己以往的开发经验,打算写一个从零开始制作一个可以实现地图构建和导航的ROS小车。目前某宝上面有很多现成产品,但是我个人认为,一个好的移动机器人开发工程师,应该对机器人的整个流程都能具备维护的能力,然后再深入研究其中一个方向即可。看到网上很少有整个系列的开发教程,看到同学们大多东拼西凑,浪费了不少时间。我就想着利用空余时间,将我本人的开发过程输出给大家。有基础理论、有实际工程代码、有丰富的学习资料,尽最大努力帮大家进入移动机器人的大门。2.任务下面我们就看看制作一个原创 2020-08-21 01:28:13 · 47359 阅读 · 44 评论 -
学习移动机器人SLAM、路径规划必看的几本书
学习移动机器人SLAM、路径规划必看的几本书声明:推荐正版图书,文末也整理了pdf电子版的资源1.《鸟哥的Linux私房菜-基础篇》第四版快速入门linux操作系统,学习Linux相关命令,必须推荐的书2.C++ Primer Plus目前移动机器人开发的主流语言仍是C++,掌握C++是学习移动机器人的必经之路,该书也是被极力推荐的工具书3.ROS学习相关书籍(1)ROS机器人开发实践 -胡春旭(2)ROS_Robot_Programming_CN(3)ros_by_example_1原创 2020-07-30 11:47:34 · 15701 阅读 · 10 评论 -
快速低成本搭建ROS机器人平台(一)
如何低成本快速搭建ROS机器人平台?(硬件部分-方案一)方案一:两轮差速小车一、成品预览:完成后的大致样子如下:不唯一(根据每个人的具体选材而定)二、材料清单需要制作或者购买以下材料:硬件小白建议时间紧急建议直接购买平衡小套件包含:买整体小车套件的好处:器件验证没问题、一次性购买方便、线材完备三、全新器件淘宝连接:对比之后给大家推荐的:这个平衡小车套件的店性价比较高平衡小车套件:淘宝链接主控板细节:树莓派:淘宝链接万向轮:淘宝链接亚克力板:淘宝链接螺丝配件:淘宝原创 2020-08-28 00:07:15 · 20807 阅读 · 9 评论 -
快速低成本搭建ROS机器人平台(二)
如何低成本快速搭建ROS机器人平台?(硬件部分-方案二)方案二:两轮差速小车一、成品预览:完成后的大致样子如下:不唯一(根据每个人的具体选材而定)二、材料清单需要制作或者购买以下材料:硬件小白建议时间紧急建议直接购买三、底层器件淘宝连接:直流减速电机:淘宝链接万向轮:淘宝链接亚克力板:淘宝链接螺丝配件:淘宝链接3s电池:淘宝链接充电器:淘宝链接主控板:四、关于组装这个时候就是发挥大家天性的时候了。天马行空都可以。但是尽量使小车尽可能规则,圆形、方形,尽可能的考原创 2020-08-28 08:49:12 · 10604 阅读 · 8 评论 -
STM32 电机PWM控制
2.1 STM32电机PWM控制我们这里提供左右两个电机PWM控制代码,在公众号:小白学移动机器人,发送:电机PWM控制,即可获得源码工程下载链接。2.1.1 实现工具STM32单片机、直流减速电机、TB6612双路电机驱动器、keil52.1.2 电机实物接线图解具体到我们的电机,我们可以看看电机后面的图解。中间的四根线(红绿白黑)是编码器的线,只是用于测速,和直流电机本身没有联系。综上所述,我们只需控制施加在黄线和棕色线两端的直流电压大小和极性即可实现调试和换向。2.1.3 TB661原创 2020-08-19 22:25:48 · 31970 阅读 · 24 评论 -
STM32电机测速(正交或者霍尔编码器)
2.2 STM32电机测速(正交或者霍尔编码器)我们这里提供左右电机测速代码,在公众号:小白学移动机器人,发送:电机测速,即可获得源码工程下载链接。2.2.1 实现工具STM32单片机、带编码器的直流减速电机、Keil5、(蓝牙、串口助手)调试用2.2.2 编码器原理(1)编码器是什么?编码器是一种将角位移或者角速度转换成一串电数字脉冲的旋转式传感器。编码器又分为光电编码器和霍尔编码器。(2)编码器工作原理是什么?霍尔编码器是有霍尔马盘和霍尔元件组成。霍尔马盘是在一定直径的圆板上等分的布置有原创 2020-08-19 22:41:41 · 58020 阅读 · 58 评论 -
STM32电机PID速度控制
2.3 STM32电机PID速度控制之前的文章,完成了直流减速电机的PWM控制、电机测速。本篇文章,将实现电机的速度闭环控制。在公众号:小白学移动机器人,发送:速度PID,即可获得本篇文章的STM32工程文件以及相关资料。2.3.1 解决的问题解决带编码器直流电机的速度闭环问题。2.3.2 PID理论将偏差的比例、积分、微分,通过线性组合构成控制量,用控制量对被控对象进行控制,这样的控制器称为PID控制器。在连续空间中,我们通常探讨模拟PID的控制原理,如图所示:我们这里用电机速度控制为例,原创 2020-08-19 22:58:42 · 57530 阅读 · 84 评论 -
STM32 MPU6050数据获取、数据处理
2.4 STM32 MPU6050数据获取(IIC + DMP)本篇文章主要针对廉价的MPU6050模块。我们这里完成了MPU6050的数据获取、零偏自动设置、温漂抑制。这里提供源码工程文件,供大家下载,在公众号:小白学移动机器人,发送:MPU6050,即可获得。2.4.1 解决的问题DMP库的移植(文件已被更改过,更好的移植)MPU6050数据的获取(通过DMP获取的四元数,做姿态解算)零偏自动校准(实现DMP方式上电既是0角度)有效的温漂抑制(针对yaw值无法滤波的情况,使用特殊的方法,实现原创 2020-08-20 22:56:33 · 22353 阅读 · 20 评论 -
stm32和ros的串口通信
全网最实用的STM32和ROS机器人的串口通信方案原创 2020-07-11 11:15:27 · 26608 阅读 · 113 评论 -
STM32和ROS串口通信常见问题汇总答疑
STM32和ROS串口通信常见问题汇总答疑大家好,我是白茶清欢,最近看了博客文章《stm32和ros的串口通信》有很多问题的评论,这里汇总回复一下。问题1:运行时报错如下:rosrun topic_example publish_nodeterminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector&l原创 2022-05-25 22:31:04 · 1900 阅读 · 3 评论 -
ROS小车STM32底层控制代码
2.6 ROS小车STM32底层控制代码经过之前几篇文章,我相信大家一定对下面这些模块都已经有些了解了。今天,我们将编写ROS小车STM32单片机底层控制的最后一篇文章。我们将一起按照之前的软件流程,将所有的代码整合到一个工程中去。在公众号:小白学移动机器人,发送:ROS小车底层,即可获得源码工程文件。相信大家对配置代码都很清楚了,这里直接描述软件执行流程,以及部分代码展示注意:该工程文件中的STM32与ROS通信的程序和前面写的文章提供的程序,有一点出入,之前是为了方便理解。大家调用的时候注意即原创 2020-08-21 00:50:02 · 12978 阅读 · 25 评论 -
ubuntu 16.04极速安装ROS-Kinetic,以及常见错误处理
ubuntu 16.04极速安装ROS-Kinetic,以及常见错误处理首先给恭喜你,看到了这篇文章,这意味着你已经成功一大半了。<-1->换源(必须要换,不然贼慢)<1>中科大源deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xeni原创 2020-07-31 10:47:30 · 5108 阅读 · 1 评论 -
ROS小车开发需要的ROS基础
3.2 ROS基础作者:公众号:小白学移动机器人3.2.1 初见ROSROS历史起源是什么?ROS的总体设计是什么?ROS的应用框架是怎样的?总结:ROS就是一个为了提高机器人开发的软件复用率,开发的一款具有独特的通信机制、丰富的开发工具、海量的应用功能、良好的生态系统集的工具。关于ROS更多细节的东西比较多,可以听课、可以看书,但这里只会讲解一些ROS机器人开发中用到的,以及我认为比较重要的地方。在公众号:小白学移动机器人,发送:ROS,即可获得相关ROS学习资源,以下的文章,希望读者原创 2020-08-31 01:39:51 · 10543 阅读 · 14 评论 -
用xacro给自己的ROS小车编写模型
3.4 使用Xacro优化自己的ROS小车模型和上一篇一样,首先奉上xacro的官网地址:http://wiki.ros.org/xacro。本文章只基于上一篇针对urdf文件的缺点进行优化开发,不做更多的xacro介绍。当然对于ROS机器人平台搭建,这里对xacro的介绍已经足够了。本篇文章,要感谢深蓝学院,开发出这么好的课程,本篇内容几乎是课件内容的重现。3.4.1 urdf建模存在的问题urdf的缺点:模型冗长,重复内容过大,相似的关节都要重复编写参数修改麻烦,不便于二次开发没有参数原创 2020-09-05 01:32:17 · 5171 阅读 · 2 评论 -
用urdf给自己的ROS小车编写模型
3.3 使用urdf编写自己的ROS小车模型3.3.1 常见的ROS小车结构有哪些?下面就是常见的ROS小车,相信在大家的脑海里已经有了自己小车的样子,下面我和大家一起使用urdf对ros小车建模。这里只对urdf进行简单介绍,然后就带大家使用urdf最基础的标签,建立机器人的urdf机器人模型。关于更多细节,请参看官网:http://wiki.ros.org/urdf/Tutorials3.3.2 什么是urdf?建模的原因?什么是urdf?URDF(Unified Robot Descri原创 2020-09-04 01:11:38 · 10884 阅读 · 11 评论 -
ROS机器人里程计模型
3.5 移动机器人系统模型相信大家的机器人平台STM32端底层控制和机器人urdf建模都已经顺利完成了,在正式开始ros端编写机器人启动功能包之前,我们还不得不学习一些必要的理论知识。别担心数学不好,这里基本都是高中数学。下面我们开始,Are you ready? 没准备好也开始了。3.5.1 常用坐标系系统模型在移动机器人技术研究中,最为常用的坐标系统是笛卡尔坐标系统。而在SLAM算法研究中,有如下几个比较常见的笛卡尔坐标系统,它们分别为机器人坐标系XR YR OR 、传感器坐标系XS YS OS原创 2020-09-05 23:20:33 · 12851 阅读 · 12 评论 -
搭建ROS小车编写启动功能包
3.6 ROS小车启动功能包编写3.6.1 前言本篇内容应该是大家期待已久的内容,从我自身的开发经验和小伙伴的疑问来看,STM32和ROS通信、以及ROS小车启动功能包的编写是搭建ROS小车比较核心且不容易实现的技术点。多数小伙伴都是在这两个问题上,浪费了很多时间。之前的文章已经完美解决STM32和ROS通信问题。本篇文章就是结合之前内容的铺垫解决ROS小车启动功能包的编写问题。适合各种类型的ROS小车、ROS机器人平台的开发者参考。3.6.2 明确ROS小车完成SLAM和导航的必备条件是什么?这里原创 2020-09-07 01:06:52 · 10850 阅读 · 65 评论 -
linux系统下串口设备和串口号绑定
3.7 linux系统下串口设备和串口号绑定3.7.1 问题由来在ROS小车的开发过程中,需要使用ROS通信串口模块、激光雷达的串口模块、IMU的串口模块等,为了防止每次开机这些设备的串口号发生变动,所以需要对串口号与串口设备绑定;为了更好的识别串口,我们也可以对串口号进行设置静态名称;为了更好的使用串口,我们也可以对串口进行权限设置。 一次设置,终身受益。3.7.2 原理在linux系统下,虽然每一个固定的端口可能由于外接设备启动的时间差异分配的ttyUSB*不同,但是对于每一个固定的端口,原创 2020-09-20 22:47:15 · 6395 阅读 · 2 评论 -
ROS机器人开机自启动设置
设备以及系统TX2、ubuntu16.04+ROS Kinetic源由调试过ROS机器人的同学都知道,反复调试、反复启动launch文件,调试还算方便,但是要是做产品的话,肯定不行,不可能让客户,手动的启动程序吧,所以有了下面一个比较简单实用方法。TX2上电立即开机网上写了一大堆,要是只想解决这个问题,就是将TX2板子上一个位置的两个焊盘用零欧姆电阻连接、或者直接用焊锡链接即可。具体焊接位置如下图:原理参考链接:ROS机器人开机自动执行roscore、roslaunch...原创 2020-07-19 00:42:48 · 5119 阅读 · 8 评论 -
自己的搭建的slam机器人建图导航测试
1、前言这里是对自己搭建的slam机器人建图导航的功能测试,原本并不想写这一篇的,因为每个小伙伴的需求都不一样,但是发现还是有同学有需求,于是就有了这一篇。本篇属于说明分享类文章,不涉及细节解释。按照步骤操作即可。本次测试需要建图算法my_slam_gmapping、导航框架navigation、以及explore_lite功能包、mbot_teleop键盘控制功能包等。环境:ubuntu mate 16.04 + ROS Kinetic功能包下载:在公众号:小白学移动机器人,发送:建图导航测试,即原创 2020-12-09 11:53:20 · 7918 阅读 · 20 评论