前言 在上一个Part,我们知道了坐标转换的一些基础只是,其实三维空间的刚体运动与其也有紧密的联系,可以理解为刚体运动为持续的把运动坐标系中的坐标变换到固定坐标系中,此外再加上旋转这一过程。 世界坐标系与里程计坐标系 世界坐标系:世界坐标系(world坐标系)一般指固定坐标系,在系统运行过程其全局坐标不发生改变。在建图时,经常会认为起点为世界坐标系原点,而本体初始旋转角度为0。里程计坐标
前言 在 相机投影及相机畸变一文 中,已经和大家介绍了三维世界到二维世界的图像投影和图像畸变及其去除相关问题。有了内参,我们可以一定程度的还原相机到底看到了什么。但是相机观测的数据还是处于相机坐标,我们还需要将局部观测转变到全局观测上来。将传感器坐标系观测转换到载体坐标系需要通过外参。本章将介绍坐标系转换及相机外参这两部分内容。 坐标系变换 坐标系变换其实在解决同一个物体在不同坐标系观察下的
相机投影及相机畸变 现实中的物体如何与照片中的像素关联起来,需要涉及到相机成像的物理过程和坐标系转换。 相机成像 针孔相机模型 针孔相机模型是目前大部分相机的成像模型,其成像原理为小孔成像。 按照光线再同一介质中按直线传播的原理,在小孔另一面会形成一个按比例缩小的倒立实相。 如果不借助其他介质,成像过程将遵循:小孔越小,成像越好,光线越暗的规则。 如果想要解决照片既清
如何开发智能小车的应用功能 工具篇 工欲善其事必先利其器,在正式开发智能小车的应用功能之前,大家需要准备好自己手头上的工具。 当然按照咱们的惯例,同样需要和大家先铺垫一些内容。 镜像版本,大家在使用电脑时一般习惯了看到图形化界面,但是一般而言在机器人开发中为了减少CPU桌面显示损耗让开发板有更好的表现会使用到无图形方式。这就引入了镜像的两个版本,serve版本和desktop版本。
如何实现智能小车的通信协议 通信协议设计 在Part2《如何开发智能小车的驱动器软件》中我们已经介绍了什么是通讯方式的协议层,它是指通信双方对数据传送控制的一种约定,协议中包括数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等,通信双方必须共同遵守。更具体一些常见的协议如下图所示 接下来以OriginCar机器人为例,介绍其通信协议。 首先关于几个细节需要和大家拉
如何开发智能小车的驱动器软件 驱动器软件总体架构 先来看整个机器人系统的整体架构,不难看出,其实驱动器软件的上下游是硬件外设和中间件软件,那想要开发驱动器软件就需要对上下游非常熟悉吗?不一定,但是作为一个嵌入式工程师需要懂得如何和对应开发者进行交流。 首先对于硬件开发者,他们会给我们提供一份原理图,以及一般性的我们需要知道芯片的使用手册,这样才能辅助我们去正确的使用硬件的各个IO,避免如
此部分共分为五个小节,通过这个 Part 的学习,我们将了解机器人的概念和组成,对机器人的整体设计有一个明确的思路,然后通过机械结构、驱动系统、传感系统、控制系统四大组成部分,展开介绍设计一款智能小车的基本思路。 通过这一讲课程,我们希望大家脑海中能够对智能小车有一个明确的认识和开发思路,未来我们再逐个击破,把它一点一点做出来。 总体设计思路 从控制的角度来讲,机器人可以划分为图中四大组
为了方便进行无人机的编队演示,以及在各种场景下实现队形的灵活切换,开发了一套专门的上位机控制平台。本文将重点介绍应用于tello无人机的编队操作面板及其核心功能。 操作面板页面 下图展示了操作面板,其中包含5种编队动作和3个可选位置设定。用户可以根据实际需求选择动作,并对动作参数进行配置。该平台嵌入了两套通讯系统:仿真系统和物理系统。用户可以在仿真环境中验证动作的合理性和安全性,然后在物理系统中进
0. 简介 局部的高精地图现在在自驾领域越来越受到关注,鸟瞰图(BEV)感知模型可以用于通过更少的人力构建高精度地图(HD-Maps)。虽然在线的局部地图推算是非常有必要的,但是它们的结果通常不可靠,并且表明从不同视角预测的高精度地图存在明显的不一致性。这是因为BEV感知通常是以“车载”方式设置的,其计算资源有限,这阻碍了算法同时推断多个视图。《MV-Map: Offboard HD-Map Ge
模块,包,变量 模块 包 变量作用域 类、对象和面向对象的编程 √1、类(class): √2、实例化: √3、对象: √4、面向对象: √5、类的定义: √6、类里定义函数时,语法规定第一个参数必须是 self 。 √7、 init函数, √8、对象调用类里的函数,用对象.函数名; √9、对象调用类里的变量,用对象.变量名。 √10、类内定义函数时,
一、程序 首先上程序 client端的程序 #include <arpa/inet.h> #include <netinet/in.h> #include <netinet/ip.h> #include <stdio.h> #include <stdlib.h> #include <strings.h> #i
虚拟机 VMware16官网下载:vmware官网网盘下载:链接: https://pan.baidu.com/s/1-vWg9VwiHmVXmiQ0IKge1g?pwd=g4jx提取码:g4jx ubuntu系统 ubuntu18. 04官网下载:https://www.ubuntu.org.cn/global网盘下载:ubuntu18. 04 链接:https://pan.baidu.c
前言 该论文的标定间比较高端,一旦四轮定位后,可确定标定板与车辆姿态。以下为本人理解,仅供参考。 工厂标定,可理解为车辆相关的标定,不涉及传感器间标定 该标定工具不依赖opencv;产线长度一般2.5米Factory Calibration Tools:四轮定位+多位姿标定板 1、Calibration Board Setup Tools 1)根据传感器安装位姿,生成标定板放置范围2)检
简介:在上一节的内容中,我们通过ROS2的话题发布功能将小车实时视频信息发布了出来,同时使用GUI工具进行查看,在这一节内容中,我们学习一下如何订阅话题并处理话题消息,具体实现的功能就是通过方向键控制小车行驶。 1、安装pynput 我们要通过键盘方向键控制小车行走,需要用python编码实现键盘事件监听,我这里使用了pynput库,默认系统时没有安装的,需要手动安装一下: $ pip3
FlashDB简介FlashDB 是一款超轻量级的嵌入式数据库,专注于提供嵌入式产品的数据存储方案。与传统的基于文件系统的数据库不同,FlashDB 结合了 Flash 的特性,具有较强的性能及可靠性。并在保证极低的资源占用前提下,尽可能延长 Flash 使用寿命。 FlashDB 提供两种数据库模式: 键值数据库 :是一种非关系数据库,它将数据存储为键值(Key-Value)对集合,其中
0. 简介 激光雷达的畸变矫正是一个非常重要的工作。由于扫描式激光雷达传感器需要有限的时间来创建点云,所以一次扫描过程中传感器的运动会导致点云发生畸变,这种现象被称为运动畸变或者卷帘快门。运动畸变校正方法已经存在,但是它们依赖于外部测量或者多次激光雷达扫描上的贝叶斯滤波。《Correcting Motion Distortion for LIDAR HD-Map Localization》一文提出
1.git 下载安装 首先下载windows版本的git安装包https://git-scm.com/download/win 我这里选择64位 windows版本,大部分人用的也是这个版本。安装过程很简单,基本都是下一步再下一步。 2.用户配置 git安装完成之后,在电脑文件夹的任意位置,右键鼠标在更多选项里选择“Open Git Bash here”。 下面就进入git的命令
前言 最近这段时间再整理openGauss数据库相关内容,在这里总结记录并分享一些基础的操作以及遇到的一些问题和解决方法。本文将介绍如何使用Navicat进行远程连接openEuler系统下的openGauss数据库。 一、环境准备 参照下面链接进行操作openEuler快速入门-openEuler系统安装&openGauss数据库安装 二、openGauss服务设置步骤 2.1
3.1 轨迹 轨迹是具有特定时间属性的一条路径。 3.1.1 平滑一维轨迹 一个真正的机器人关节都有一个额定的最大速度,而且为了使关节运动时间最短,应使其运行在最大速度上的时间尽可能长。因此我们希望速度曲线的顶部是一条直线。 混合曲线轨迹:延长最大速度运行时间,使得速度曲线顶部为一平直线,两侧为加减速段。 3.1.2 多维的情况 大多数实用的机器人都有一个以上的运动轴或自由度。我们将其
0. 简介 之前时间同步也写过一篇文章介绍机器人&自动驾驶中的时间同步。在最近的学习中发现一些额外需要阐述学习的内容,这里就再次写一些之前没写到的内容。 1. NTP NTP 是网络时间协议,用来同步网络中各计算机时间的协议,把计算机的时钟同步到标准世界时间即UTC时间。NTP version 1 出现于1988年6月,最新的NTP协议标准NTPv4,精度在局域网中可以达到0.1ms,在互
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信