上一节介绍了激光雷达Scan传感数据的订阅和发布. 本节会介绍里程计Odom数据的发布和订阅.里程计在cartographer中主要用于前端位置预估和后端优化. 官方文档: http://wiki.ros.org/navigation/Tutorials/RobotSetup/Odom 目录 1:nav_msgs/Odometry消息类型 2:发布Odometry消息 3:订阅Odometry消息 1:nav_msgs/Odometry消息类型 在终端查看消息数据结构: rosmsg show…
上一节介绍和测试了cartographer的官方demo. 本节会编写ros系统中,最常用的激光雷达LaserScan传感数据的订阅和发布,方便在cartographer中加入自己的数据进行建图与定位.(作者使用的是SICK-NAV350) 官方文档: http://wiki.ros.org/navigation/Tutorials/RobotSetup/Sensors 目录 1:sensor_msgs/LaserScan消息类型 2:发布LaserScan消息 3:订阅LaserScan消息…
摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买到通用的底盘.一方面是因为底盘的尺寸结构和参数是要与具体机器人匹配的:另一方面是因为底盘包含软硬件整套解决方案,是很多机器人公司的核心技术,一般不会随便公开.出于强烈的求知欲与学习热情,我想自己DIY一整套两轮差分底盘,并且将完整的设计过程公开出去供大家学习.说干就干,本章节主要内容: 1.stm32主控硬件设计 2.stm32主控软件设计 3.底盘通信协议 4.底盘ROS驱动开发…
上一节介绍了里程计Odometry传感数据的订阅和发布. 本节会介绍陀螺仪Imu数据的发布和订阅.陀螺仪在cartographer中主要用于前端位置预估和后端优化. 目录 1:sensor_msgs/Imu消息类型 2:发布Imu消息 3:订阅Imu消息 1:sensor_msgs/Imu消息类型 在终端查看消息数据结构: rosmsg show sensor_msgs/Imu Odometry消息类型数据结构如下: Header header geometry_msgs/Quaternion…
上一节介绍了陀螺仪Imu传感数据的订阅和发布. 本节会介绍路标Landmark数据的发布和订阅.Landmark在cartographer中作为定位的修正补充,避免定位丢失. 这里着重解释一下Landmark,它与Scan,Odom,Imu数据不同,并不是直接的传感数据.它是地图上的特征点,通常是易被识别的物体. 在cartographer中,通常是用反光柱或者二维码做landmark,实际上反光柱用的更多,因为反光柱同样可以使用激光雷达识别,不需要添加多的传感器. 对于用反光板构建landma…
参考博文::https://blog.csdn.net/david_han008/article/details/53560736 https://blog.csdn.net/n66040927/article/details/79163496?utm_source=blogxgwz3 ICP是指,利用点云的匹配关系,来求解相机的三维运动. PNP是利用已知的三维结构与图像的对应关系,来求解相机的三维运动. 对极几何,利用对极几何的约束,恢复出图像之间的相机的三维运动. 视觉里程计,分成特征提取…
在移动机器人建图和导航过程中,提供相对准确的里程计信息非常关键,是后续很多工作的基础,因此需要对其进行测试保证没有严重的错误或偏差.实际中最可能发生错误的地方在于机器人运动学公式有误,或者正负号不对,或者定义的坐标系之间方向不一致等. 整个移动机器人的控制结构如下图所示,其中base_controller节点将订阅的cmd_vel信息通过串口或其它通信接口发送给下位机(嵌入式控制板).下位机中根据机器人运动学公式进行解算,将机器人速度转换为每个轮子的速度,然后通过CAN总线(或其它总线接口)将每…
摘要 在我的想象中机器人首先应该能自由的走来走去,然后应该能流利的与主人对话.朝着这个理想,我准备设计一个能自由行走,并且可以与人语音对话的机器人.实现的关键是让机器人能通过传感器感知周围环境,并通过机器人大脑处理并输出反馈和执行动作.本章节涉及到的传感器有激光雷达.IMU.轮式里程计.麦克风.音响.摄像头,和用于处理信息的嵌入式主板.关于传感器的ROS驱动程序开发和在机器人上的使用在后面的章节会展开,本章节重点对机器人传感器和嵌入式主板进行讲解,主要内容: 1.ydlidar-x4激光雷达 2…
回到目录 作用:完成数据库与数据库的数据同步 原理:源数据库发布需要同时的表,存储过程,或者函数:目标数据库去订阅它,当源发生变化时,目标数据库自己同步,注意,由于这个过程是SQL自动完成的,所以要求“启动SQL代理服务”. 一 源数据库建立一个本地发布:…
发布与订阅 1. 服务器状态在pubsub_channels字典保存了所有频道的订阅关系:SUBSCRIBE命令负责将客户端和被订阅的频道关联到这个字典里面,而UNSUBSCRIBE命令则负责 解除客户端和被退订频道之间的关联. 2. 服务器状态在pubsub_patterns链表保存了所有模式的订阅关系:PSUBSCRIBLE命令负责将客户端和被订阅的模式记录到这个链表中,而PUNSBUSCRIBLE命令则负 责移除客户端和被退订模式在链表中的记录. 3. PUBLISH命令通过访问pubsu…