Huang A S, Olson E, Moore D C. LCM: Lightweight communications and marshalling[C]//2010 IEEE/RSJ International Conference on Intelligent Robots and Systems. IEEE, 2010: 4057-4062. LCM(Lightweight Co
此处自定义global_planner,local_planner流程一样但继承nav_core::BaseLocalPlanner 继承nav_core::BaseGlobalPlanner编写插件 需重写initialize,makePlan,footprintCost 读入参数的命名空间为/move_base/RobotGlobalPlanner/,通过move_base加载参数时默认
一、概述 ROS navigation为移动机器人导航相关包的集合,实现定位规划避障等相关功能。 整体工作流程为: 加载地图 navigation通过map_server加载现有地图。navigation无建图相关包,需另外实现后保存,默认只支持2维地图,其他包类似grid_map提供2.5维地图的加载。 发布TF坐标变换 navigation包内的AMCL提供map->odom的变换,AM
一、GNSS定位 卫星导航系统由空间段、地面段和用户段三部分组成,可在全球范围内全天候、全天时为各类用户提供高精度、高可靠定位、导航、授时服务,并且具备短报文通信能力,已经初步具备区域导航、定位和授时能力,定位精度为分米、厘米级别,测速精度0.2米/秒,授时精度10纳秒。 GNSS误差因素: 与卫星有关 卫星轨道误差 卫星钟差 相对论效应 与传播途径相关 电离层(折射)延迟 对流程(折射
IMU(Inertial Measurement Unit)惯性测量单元:加速度计,陀螺仪构成,输出加速度和角速度,并可以解算出姿态,结合加速度和角速度计可以获得较为准确的Roll和Pitch(旋转轴与重力方向垂直),yaw(旋转轴与重力方向平行)主要通过角速度积分获得,会有偏移误差无法长时间使用。 AHRS(Attitude and Heading Reference System)航姿参考系
一、激光雷达简介 通过持续不断的发射激光束,激光束遇到障碍物会产生反射,部分反射会被激光雷达(Lidar)传感器再次接收到,通过测量激光束发送和返回传感器的耗时(Round Trip Time)可以获得周围物体距离激光雷达的距离。除了距离(Distance)之外,激光雷达(Lidar)还返回反射值强度(Intensity),不同的障碍物材质反射的激光束的强度(Intensity)不同。 激光雷达的
一、问题分析 机器人可以基于码盘数据和底盘运动学模型进行航迹推演,得到机器人的轨迹,但实际轨迹与推演轨迹存在误差,分析原因如下: 底盘实际尺寸与理论模型存在偏差,如轮子半径,两轮间距等;底盘在运动过程中打滑或路面不平整导致偏差; 注意: 方向上的偏差较平移的偏差影响更大,会随着移动扩大误差。码盘里程计受电控,底盘机械结构影响,在路况复杂和室外场景下,误差会较大。 解决方案 直接线性(此处使用该方法
WebSocket是一种网络传输协议,可在单个TCP连接上进行全双工通信,位于OSI模型的应用层。 WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就可以建立持久性的连接,并进行双向数据传输。 一、配置 rosbridge_suite:Rosbridge provides a
SMACH BehaviorTree 一、简述 BehaviorTree_cpp_v3版本之间api存在改动,需注意版本问题 BehaviorTree.CPP has many interesting features, when compared to other implementations: It makes asynchronous Actions, i.e. non-blocking,
一、Planning Request Adapters Planning Request Adapters为规划处理适配器,用于处理运动规划(motion_planer)请求(before plan)和响应(after plan)的数据。 注意:不同版本ROS提供的适配器略有不同,如果需要使用新版本ROS或者自定义适配器,需要根据流程配置。 moveit_ros 二、自定义适配器 自定义适配器
一、配置 在kinetic版本无法直接通过apt-get安装descartes,因此直接下载源码到工作空间内编译使用(可去掉descartes_tests)。 git clone https://github.com/ros-industrial-consortium/descartes.git 二、解析 2.1 descartes简介 官方说明 Cartesian Planning: Whil
环境:Ubuntu16.04+ROS Kinetic ROS与底层串口通讯有两种方式: 底层作为ROS节点:https://blog.csdn.net/Kalenee/article/details/80644896采用传统的串口通讯方式进行通讯:https://blog.csdn.net/Kalenee/article/details/82422196 硬件: Arduino mega2560
环境:Ubuntu16.04+ROS Kinetic 硬件: Arduino mega2560(需拥有两个串口) 总线舵机(可采用dynamixel舵机,其带有ROS的功能包dynamixel_controllersTutorials) 前期准备: 完成MoveIt!配置完成机器人在ROS平台的搭建 一、修改功能包中文件 1.1、config文件夹参考fake_controllers.yaml创
一、实现流程 插补(Interpolation),即机床数控系统依照一定方法确定刀具运动轨迹的过程。也可以说,已知曲线上的某些数据,按照某种算法计算已知点之间的中间点的方法,也称为“数据点的密化”;数控装置根据输入的零件程序的信息,将程序段所描述的曲线的起点、终点之间的空间进行数据密化,从而形成要求的轮廓轨迹,这种“数据密化”机能就称为“插补”。 通常意义上的插补为二维平面上的轨迹插补,但机械臂末
环境:Ubuntu16.04+ROS Kinetic 一、简介 STOMP(随机轨迹优化运动规划算法)是基于PI^2算法的进行优化的运动规划器。它可以完成机器人手臂运动轨迹的平滑规划,同时避开障碍物和优化约束。 该算法不需要梯度,因此可以优化成本函数中的任意项,如电机工作。 注意:STOMP只能用于机械臂关节空间的路径规划,不能用于空间末端运动轨迹的规划。 二、配置 1、编译industrial_
一、简介Matlab_Robotic_Toolbox是一个功能强大的机器人工具箱,包含了机器人正、逆向运动学,正、逆向动力学,轨迹规划等等,其中的可视化仿真可使抽象的机器人学变得相对直观。 二、配置此处安装robotics toolbox 10.3 下载链接:http://petercorke.com/wordpress/toolboxes/robotics-toolbox CSDN下载:http
环境:MATLAB 2017B+Robotics Toolbox 9.10.0 前期准备:完成机械臂数学模型的建立+计算机械臂工作空间 https://blog.csdn.net/Kalenee/article/details/81990130 注意:这里采用几何法计算机械臂逆解,因此不一定适用于其他六轴机械臂构型。 一、运动学分析连杆变换是机器人进行运动学分析的基础,其建立主要涉及到坐标变换,其
一、旋转矩阵在机器人运动的过程当中,我们通常会设定一个惯性坐标系(或者叫世界坐标系),姑且认为这个坐标系是固定不动的。例如:是固定不动的世界坐标系,,,是机器人坐标系。存在一个向量,在世界坐标系下的坐标是,在移动机器人坐标系下的坐标是,通常情况下,我们通过传感器已知移动机器人坐标系统下的坐标,来求在世界坐标系下的坐标 二、旋转向量(轴角,Axis-Angle)旋转向量为一个三维向量,
一、概述 相关扩展 C/C++ Python CMake CMake Tools vscode-icons:给不同类型文件设置图标 ROS vscode-ros vscode-ros是在vscode上用于辅助ros开发的插件,因roboware不再更新所以切换到vs
一、简述 机器人控制系统是一个复杂设计,针对不同功能目标有不同的开发路线,若想开发一个通用的控制系统难度会非常高,因此确定目标需求非常重要,这里所述的目标需求有两种,一种为开发基本的控制系统再根据实际条件进行功能添加开发,另外一种为针对特殊情况开发专门的控制系统。 目标需求设计好后,根据要求可以搭建简单的框架,对于ROS开发来说,一个好的框架是开发的
一、动力学基础概念 基本动力学模型 建模方法 牛顿-欧拉法 拉格朗日法 连杆质量,连杆质心位置矢量,连杆质心惯性矩阵(通过动力学参数识别获得) 二、牛顿-欧拉法 运动外推:向外迭代计算连杆的角速度、角加速度和线加速度 力外推:计算作用在连杆质心上的惯性力和力矩 力矩内推:向内迭代计算关节力矩 2.1 运动向外迭
本文为A matlab-based identification procedure applied to a two-degrees-of-freedom robot manipulator for engineering students学习笔记,相关数据代码可以通过Matlab程序和数据下载 论文+Matlab程序和数据CSDN下载 一、概述 1.1 二轴机械臂
多姿态插补用于多个连续的姿态,此处采用Squad插值,贝塞尔相关参考深入理解贝塞尔曲线 一、中间点s的确定 Squad在控制点的姿态上是平滑的 因此从速度平滑上找到中间点 si需要满足两式相等,因此 程序实现 function [qa] = get_intermediate_control_point(j,q)
一、简述 一般来说移动机器人的运动模型可分为完整约束和非完整约束。 完整约束(Holonomic,控制数=自由度):可以用一个由位形变量x , y , θ x,y,\thetax,y,θ组成的方程来描述。包括全向轮模型。 非完整约束(Non-holonomic,控制数<自由度):只能用位形变量的微分方程描述,无法积分成一个位形变量的约束方程。包括双轮自行车模型和差速模型 。
符号意义 x ^ \hat{x}x^:状态x的估计状态,后验 x ˉ \bar{x}xˉ:估计状态x ^ k \hat{x}_kx^k的预估值,先验 P PP:协方差 一、卡尔曼滤波(KF) 1.1 状态观测器(State Observers) 使数学模型和实际系统相减
一、TF2简介 Since ROS Hydro, tf has been “deprecated” in favor of tf2. tf2 is an iteration on tf providing generally the same feature set more efficiently. As well as adding a few new features. tf2是TF1的
机械臂建模分析:https://blog.csdn.net/Kalenee/article/details/81990130 MoveIt规划下的关节空间运动分析:https://www.guyuehome.com/752 一、简介 在ROS平台下使用MoveIt进行机械臂控制时,默认调用AddTimeParameterization模块完成轨迹的运动规划,输出结果为
一、概述 机器人开发是一门综合学科,需要用到各方面知识,包括且不限于计算机,数学和物理等各个领域。因其综合程度高使其开发较为繁琐且困难,ROS的出现大大简单了机器人开发的门槛,ROS全称Robot Operating System,本质上是一个分布式系统架构,提供标准的通讯结构,实现功能的集成。 机器人开发的一般流程为:目标设计,构建框架,功能开发,整体优化,实体验证,该流程并非顺序执行,
一、运动规划算法简述 实现流程 通过给定的轨迹点,根据设定的最大速度和加速度计算每个点的速度,加速度和时间帧。 轨迹点:可通过插补获得,数据类型为moveit_msgs::RobotTrajectory 设定的最大速度和加速度:为URDF文件中设定参数 规划器 当前ROS提供三种规划器: Time-optimal Trajectory Paramete
一、标定实现 机器人工具坐标系标定就是确定工具坐标系相对于末端连杆坐标系的变换矩阵 1.1 TCP位置标定 标定步骤 控制机械臂移动工具从不同方位触碰空间中某个固定点,记录N组数据(n ⩾ 3 n \geqslant 3n⩾3); 计算获得工具末端点相对机械臂末端点的位置变换; 1.2 TCF姿态标定 &
环境:Ubuntu16.04+ROS Kinetic 一、kinect v1简介 Kinect v1深度相机拥有一个RGB彩色摄像头,一个红外线CMOS摄像机和一个红外发射器。相机的红外线CMOS摄像机和红外发射器以左右水平的方式分布。该相机采用的是以结构光为基础进行改进后的光编码(Light Coding)技术获得物体的深度信息。 Ki
相机标定(一)——内参标定与程序实现 相机标定(二)——图像坐标与世界坐标转换 相机标定(三)——手眼标定 一、简述 手眼标定目的在于实现物体在世界坐标系和机器人坐标系中的变换。 在标定时,一般在工作平面设置一个世界坐标系,该坐标系与机器人坐标系不重合,在完成相机的内外参标定后,可计算获得物体在世界坐标系中的位置。若需要机器人与视觉联动,需要获得物体在在机器人坐标系中的坐
相机标定(一)——内参标定与程序实现 相机标定(二)——图像坐标与世界坐标转换 相机标定(三)——手眼标定 一、坐标关系 相机中有四个坐标系,分别为world,camera,image,pixel world为世界坐标系,可以任意指定xw轴和yw轴,为上图P点所在坐标系。 camera为相机坐标系,原点位于小孔,z轴与光轴重合,xw轴和yw轴平行投影面,为上图坐标系XcYcZc。
相机标定(一)——内参标定与程序实现 相机标定(二)——图像坐标与世界坐标转换 相机标定(三)——手眼标定 一、张正友标定算法实现流程 1.1 准备棋盘格 备注:棋盘格黑白间距已知,可采用打印纸或者购买黑白棋盘标定板(精度要求高) 1.2 针对棋盘格拍摄若干张图片 此处分两种情况 标定畸变系数和相机内参,拍摄
相机标定是用于获取相机畸变,内参数和外参数的一个操作,是机器视觉中不可或缺的一个重要步骤。 畸变是相机因其自身成像特性无法避免产生的图像变形。内参数是对相机内部特性的描述,包括相机图像中心、相机焦距等。外参数描述的是相机在世界坐标系上的位置和方向。 一、畸变系数 畸变可分为两种,分别是切向畸变和径向畸变。 径向畸变的产生是由于当光线在远离透镜
环境:Ubuntu16.04+Tensorflow-cpu-1.6.0+ROS Kinetic+OpenCV3.3.1 前期准备: 完成Object Detection api配置 完成OpenCV配置 完成模型训练后就是模型的应用,这里通过ROS利用Object Detection api调用模型实现目标物体的识别。 一、模型导入 模型路径设置如下图所示,
文件目录结构 ├─Annotation │ └─XML文件 ├─data │ ├─csv文件 │ └─Record文件 ├─images │ └─图片 ├─eval │ └─测试集结果 ├─training │ ├─pbtxt文件 │ ├─config文件 │ └─model.ckpt文件 ├─model │ └─输出模型 一、准备图片 利
本文为A matlab-based identification procedure applied to a two-degrees-of-freedom robot manipulator for engineering students学习笔记,相关数据代码可以通过Matlab程序和数据下载 一、概述 1.1 二轴机械臂 1.2 参数识别概述 参数识别流程 二、动力学模型
古月居优秀创作者
CSDN博主white_Learner
积分
粉丝
勋章
TA还没有专栏噢
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信