上一章节我们介绍了机械臂的底层驱动相关内容,这一节开始,我们来简单介绍肌电的处理。 1.肌电的基础人体生理知识 当我们进行运动的时候,不同肌肉之间的神经元会产生放电现象,通过置于人体皮肤的电极可以捕捉到这种运动过程中的神经元放电,这就叫做表面肌电(SEMG)采集。 人的一条胳膊中有很多块肌肉,不同肌肉负责的运动部位可以参考这篇博客;通过采集不同肌肉对应部位的肌电(EMG)
上一节我们说到了机械臂的关节与关节舵机驱动程序的基本原理;这一节我们将使用STM32单片机来实现机械臂运动的编程。 0. 本节基本内容 本节主要介绍了如何利用单片机蓝牙-串口中断控制6路舵机转角;具体涉及的技术点为: 配置STM32单片机的Timer3与Timer8比较输出 配置STM32的串口中断,基于中断传输帧格视的数据 配置HC-05蓝牙,并与笔记本上的蓝牙调试器进行
明日机甲——DIY一套基于脑/肌电的“意念控制”机械臂 (0)意念机甲与外骨骼 小蘑菇非常喜欢影视剧中的机械外骨骼——让仿生机器人随着我们的想法来运动一定是十分炫酷的事情;例如下面的图就是我们团队打造的一台SSVEP脑控仿生机器人和脑控机械臂样机: 本着干货就要共享的原则,从今天开始,小蘑菇将用一个月左右的时间,带着大家一起打造一套用脑电/肌电系统控制的人体外骨骼,来实现类
写在前面 我们之前使用gmapping绘制了一张完整的地图,但是在大多数情况下,我们对机器人的需求都是让机器人在已知的场景做导航(例如送餐和扫地机器人)。这就需要我们在一张“已知”的地图上进行定位。 但是“已知”的地图又不会一成不变,这就需要我们能够在已知地图的基础上对局部做一些重建和修改。例如一个机器人在美食街中导航,而美食街有总会增添一些临时的展台 这个教程尝试将ros中的gmapping,地
A*算法是一种Greedy算法,ROS中的navigation导航包中的global_planner中就能找到。 今天,我们从头入手,自己移植并完成关于A*算法在ROS上的移植和实现。 首先来说一下我们最后想实现的目的: 我们首先画一个200*200像素的“交通路段” 在开始我们的算法之前,首先感谢网友[一路向北]的开源A*算法,他MFC界面的源代码网址如下: 点击打开
在一台机器人中不可避免地会具有很多种传感器(雷达,视觉,深度...);在机器人的导航中对这些传感器的融合,并形成完整的导航策略是很关键的。对于一台室内/室外机器人来讲,传感器的融合主要分为两个方面: 融合定位,使用GPS/IMU/里程计/视觉/雷达等传感器的数据确定机器人的位置和姿态。 融合导航,在机器人的定位确定的前提下,使用雷达/声呐/图像/深度等数据对机器人进行融合避障。 今天我们就从不
我们已经了解了ROS地图的特征。现在我们假设已知在地图上某个位置有一台机器人,我们要将ROS地图转换为图片,同时机器人在地图上的位置传输至外部用户终端;使用户终端能够实时显示机器人位置。 我们先从用户终端(Windows小程序)的设计入手: 小程序使用Python结合pygame进行编程,在程序中要解决的三大问题: 1)机器人实际环境与像素位图的比例匹配 2)机
第4节我们说到ROS与APP之间的地图交互与坐标系变换,今天我们来实现一个与ROS地图对接的APP,实现以下功能: 1)机器人的ROS地图能够通过网络方式传输到APP上,同时APP上能显示机器人位置 2)使用者绘制APP中地图上的某个区域,这个点能在ROS中以PoseArray的形式发布出来。 我们首先来使用Python完成一个APP的设计: 1. APP向机器人请求二维地图,并获
在很多商用机器人中都涉及到机器人与外部设备(比如APP)之间的交互。而在交互中,最为首要的就是地图与机器人位置的交互了。在这一个章节中,我们介绍一个机器人将内部的地图,机器人位置等数据与用户端进行同步的案例。 1. 实际场景与机器人(ROS)地图的对应关系: 我们来看一下下面这副图片,这是一个机器人在实际环境中绘制的二维地图,在图片的左下角是地图原点(map所在的位置),在原点上已经标明了
今天来学习一下英特尔D435深度传感器的相关内容: 首先,我们找到D435官网:https://www.intelrealsense.com/developers/ 我们打开一个终端,按照官网提示输入以下内容: 1)在软件库中添加Intel服务器并注册服务器公钥: echo 'deb http://realsense-hw-public.s3.amazonaws.com/Debia
写在前面 上一节我们简单讨论了在生成点云的过程中的矩阵变换。如果大家看本章有点懵逼的话,不妨先看一下我上节写的内容。 我们本节将基于激光雷达与矩阵变换关系,将激光雷达的LaserScan数据转换为三维空间下的PointCloud点云数据。 本节涉及到知识点主要为: ROS中的TF空间变换的读取和发布 激光雷达数据LaserScan与基础点云(PointCloud)的消息类型 激光
室外低速自动导航车的设计(2)——多线激光雷达的点云解析 我们在前面硬件系统的构建中通过网络接收到了多线激光雷达的原始数据,这些数据在空间中形成了一个个的点,每一个点都代表了某个物体表面的回波。我们采用的激光雷达是16线的。不太严格的说,16线就代表了这个雷达在空间的z轴上扫过16个平面。每个平面又包含一组xy平面的信息。 这些多平面的激光雷达的回波点被称作点云(PointCloud,PC
室外低速自动导航车的设计(1)——基础硬件配置 今天我们来开始做基于GPS和16线激光雷达的低速导航车项目。 因为不论做什么车,首先都要把硬件搭建起来,除了基础的机械机构(骨架和壳子)之外,基本的传感器,车轮的驱动器以及工控机都是要有的。 我们首先来看一下导航车应该有的基本结构: 室外低速自动导航车的硬件结构 传感器类: 激光雷达,我们选用用16线的rs_lidar,这个雷
写在前面 上一节我们实现了基本的2D-SLAM导航包的使用。 本节我们将在2D-SLAM的基础上,通过手动遥控实现控制云台俯仰角来生成三维点云(如下图,视频还没上传可以在我朋友圈看)。 看完本节,你将掌握: 动态发布三维空间下的TF坐标信息 激光雷达扫描点的三维空间变换 空间点云构成以及点云发布 ROS消息控制二维云台的运动 注意:本节涉及的矩阵和空间变换相关的
写在前面 上一小节我们完成了数据包的构建,并且实现了对基础硬件的控制。从这一小节开始,我们将进入基于ROS的上位机程序设计。本小节主要介绍了: 三维空间测绘机器人的ROS节点分布 启动文件设计 上位机中的通讯(下位机驱动)程序 上位机中节点的分布 上位机功能模块概述 我们上位机整体将基于ROS进行设计,对ROS基础不是十分了解的亲们可以去http://wiki.ros.org进行学习。 在
写在前面 上一小节我们介绍了机器人的舵机驱动与串口通讯的原理。到目前为止,我们已经完成了: 机器人编码器和轮胎的驱动 机器人头部舵机的驱动 机器人与上位机通讯串口的基本配置 到这里,机器人的在硬件配置和底层驱动上已经可以实现基本功能了,我们今天来完成机器人与上位机基于“数据包”的通讯,这样我们就可以使用ROS/HTTP等方式来对机器人进行控制了~ 数据包——万物通讯皆可数据包
写在前面 上一小节我们讲到了机器人的轮胎(编码器)驱动,本节我们来介绍: 机器人上舵机的工作原理,硬件连接和舵机的软件驱动方法 串口通讯的底层通讯机理,单片机-主机串口通讯以及“数据包”的基本介绍 机器人的舵机与云台控制 云台和舵机的硬件连接及原理 我们机器人上有一个两轴的云台,云台上又两个舵机分别控制云台的横向和纵向旋转。 舵机一般有三条控制线,分别对应着电源正
写在前面 在上一节中我们讲到了测绘小车的基本架构。今天我们来一起学习机器人的下位机。 我们测绘小车的下位机采用STM32F103RCT6,下位机的四个基本功能为: 接收轮胎编码器的数据获取机器人轮胎里程,同时对轮胎进行控制 驱动两路舵机实现二维云台的控制 与Linux处理器进行通讯,执行Linux处理器的控制指令,并上传硬件状态 其他功能(电量采集,蜂鸣器,灯光控制等) 下面我
低成本3D空间导航/测绘机器人——从零开始 读前必看——三维测绘/导航机器人 很多朋友们都知道使用ROS的move_base等软件包配合激光雷达可以实现二维地图的绘制,但很少有能做三维测绘/导航的低成本的机器人。类似于电影“普罗米修斯”的测绘狗仔。 实际上,三维空间导航机器人在仓库巡检,智能安防领域也明显更实用。但是高昂的成本让机器人的DIY爱好者以及轻量级机器人生产商望而却步。
网络问题,你安装ROS的时候应该把源改为国内的;不更改源的话 楼上的答复可能解决不了你的问题
1. pwm 不依赖中断,用的是timer捕获输出 2. 速度反馈在串口中断的处理函数里(下一节有介绍) 3. 速度控制直接用中断的,每次中断编码器变量++ 4. 高速轮会一直在中断里边卡死,解决方案使用Timer高级定时器的正交捕获
哈哈等我开个淘宝店
串口波特率那部分,“发送端的时钟每走1个周期,接收端才走一个周期。 改为“发送端的时钟每走2个周期,接收端才走一个周期。 原文有误,谢谢大家~
好的,我后面单独写一张介绍元器件
机器人爱好者
积分
粉丝
勋章
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信