写在前面 购物机器人既然要购物,那么购物车自然是必不可少的,根据比赛要求,开始时购物车需要与机器人分离,所以就需要机器人主动去连接购物车,于是我们采用了电磁铁来进行连接购物车,就是说在我们的购物车上装一块铁片,然后机器人靠近购物车之后通过电磁铁吸住购物车从而进行下一步操作,那么本篇博客主要介绍电磁继电器控制电磁铁的调试,实物图如下 原理图 电路原理图如下 电磁铁 先来看一下电磁铁,这个电
我们已经了解了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
写在前面 我最近在调试购物车的底盘,底盘上有一个光电传感器,是通过串口接收命令并且进行上传感应结果的,第一次使用,特此写一篇博客记录调试过程,并且会在最后放出调试结果数据流传是这样的,首先由STM32F103C8T6芯片(后简称为103)发送数据读取命令0x57给光电传感器,光电传感器接收到数据读取命令之后会通过光电传感器上的串口发送其16个灯的状态给103(亮0灭1),最后由103通过USART
室外低速自动导航车的设计(1)——基础硬件配置 今天我们来开始做基于GPS和16线激光雷达的低速导航车项目。 因为不论做什么车,首先都要把硬件搭建起来,除了基础的机械机构(骨架和壳子)之外,基本的传感器,车轮的驱动器以及工控机都是要有的。 我们首先来看一下导航车应该有的基本结构: 室外低速自动导航车的硬件结构 传感器类: 激光雷达,我们选用用16线的rs_lidar,这个雷
Error: L6406E: No space in execution regions with .ANY selector matching 问题描述 今天往stm32f407的工程里面加入了u8g2这个12864点阵液晶的驱动库的时候,compile编译的时候没有问题,但是链接link的时候出现了错误,报了Error: L6406E: No space in executio
STM32标准库和HAL库的比较 使用STM32芯片的时候呢,大家可能都喜欢用库,什么标准库啦,HAL库啦,拿到了就一股脑的用,也没有深究其区别,这样出BUG的时候就只能两手一摊,程序瘫痪了,所以今天咱们来看看标准库和HAL库有啥区别,各个库它的优点在哪里。 串口通信 标准库初始化串口 void uart_init(u32 bound) { GPIO_InitTypeDef GPIO_Ini
解决IAR for msp430的工程文件报xxx.sfr文件有问题的warning 现象 最近在开发Ti的msp430f5529的板子,在网上找了例程,打开模板文件夹之后发现总会报这个错误,甚是烦恼,在网上几番搜索,终于找到了问题的原因。 原来是因为IAR版本变高了之后就不支持这个文件的存在了,所以高版本的IAR打开低版本的工程文件就可能出现这个问题了。 解决 关闭工程文件
程序处理逻辑 流程图 自然语言描述 自然语言描述起来的话还是比较简单的,既然要处理数据,那么最开始肯定先要把数据通过串口接收下来,这个时候就用到了HAL_UART_Receive_DMA(&huart8, uart8Rx, buffer_size);这个函数,当接收到了数据之后我们要判断帧头是否正确,如果正确的话我们就将数据复制到相应数组里面去,用的就是这个函数SERDEB_PushCm
normalplay的地位 流程图如下所示: 整个足球机器人的比赛规则中如果没有发生犯规的话,SOM软件一直执行的就是normalplay脚本。其实,在正常比赛中,因为小型机器人并没有像人一样这么智能,人会自主最大程度上的避免犯规,但是机器不会,所有犯规还是很常见的,甚至可以说在1个小时的比赛中,有半个小时甚至是半个小时以上SOM软件都是在执行犯规脚本,因此normalplay固然重要,但是也要
问题描述 今天在上嵌入式课时候又学习到了新知识哈,美滋滋~ 情况是这样的,我在STM32F429上跑RT-Thread系统,因为rtt系统里面既有.cpp文件又有.c函数(keil5以上就支持.cpp和.c在同一个工程中共存了),所以当我需要在.c文件里面调用.cpp文件里面的函数的时候就报了下面这个错误,可以看到工程在编译的时候没有问题,但是在链接(linking)的时候报了这个错误,说明工程的
写在前面 上一节我们实现了基本的2D-SLAM导航包的使用。 本节我们将在2D-SLAM的基础上,通过手动遥控实现控制云台俯仰角来生成三维点云(如下图,视频还没上传可以在我朋友圈看)。 看完本节,你将掌握: 动态发布三维空间下的TF坐标信息 激光雷达扫描点的三维空间变换 空间点云构成以及点云发布 ROS消息控制二维云台的运动 注意:本节涉及的矩阵和空间变换相关的
写在前面 在小型足球机器人的比赛中,因为足球机器人并不会像人一样那么智能,所以球出界是非常正常的事情。球出界之后就是进行罚球,因此罚球脚本就显得非常重要了,在所有的发球场景中,角球又是最容易进球的一个场景,因此我将分析旋转角球的task层和skill层实现。 自然语言描述 如上图所示,中场会在上半边的场内绕某点做公转的同时进行自转的操作,前锋会过去拿球,前锋拿到球过一段时间之后会将高尔夫球挑射到
写在前面 现在的裸机程序已经不能满足嵌入式机器人所需的代码结构要求了,因为一个嵌入式机器人的系统是非常庞大的,分别由感知算法,决策算法和控制算法等组成,这还没有算上一些需要联网的程序。庞大的代码需要一个芯片级的操作系统来屏蔽掉硬件对于上层算法的影响,同时向上层提供API,帮助上层的算法调用底层硬件,因此一个芯片级操作系统就十分重要了,而RT-Thread是一种国产的芯片级操作系统,而我的课程刚好也
写在前面 上一小节我们完成了数据包的构建,并且实现了对基础硬件的控制。从这一小节开始,我们将进入基于ROS的上位机程序设计。本小节主要介绍了: 三维空间测绘机器人的ROS节点分布 启动文件设计 上位机中的通讯(下位机驱动)程序 上位机中节点的分布 上位机功能模块概述 我们上位机整体将基于ROS进行设计,对ROS基础不是十分了解的亲们可以去http://wiki.ros.org进行学习。 在
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信