机器人
文章平均质量分 80
cjn_
这个作者很懒,什么都没留下…
展开
-
6DOF位姿投影至3DOF位姿
double getYaw(const Eigen::Matrix3d& rotation){ Eigen::Matrix<double, 3, 1> direction = rotation * Eigen::Matrix<double, 3, 1>::UnitX(); return atan2(direction.y(), direction.x());} Eigen::Matrix3d tmp_R = location_T_world_b.原创 2020-08-06 15:07:05 · 283 阅读 · 0 评论 -
Eigen 四元数、欧拉角、旋转矩阵、旋转向量相互转换
一、旋转向量1.0 初始化旋转向量:旋转角为alpha,旋转轴为(x,y,z)Eigen::AngleAxisd rotation_vector(alpha,Vector3d(x,y,z))1.1 旋转向量转旋转矩阵Eigen::Matrix3d rotation_matrix;rotation_matrix=rotation_vector.matrix();Eigen::.........原创 2020-03-31 19:08:39 · 3387 阅读 · 1 评论 -
kalibr 标定双目相机
1、kalibr 源码编译ROS编译见kalibr install wiki:https://github.com/ethz-asl/kalibr/wiki/installation注意:按照wiki步骤安装所有依赖包,不然编译会各种报错,安装后也可能会提示缺少python依赖包,按照提示安装即可。ImportError: No module named smpip ins...原创 2019-11-07 16:26:33 · 2505 阅读 · 0 评论 -
VIDIOC_S_FMT: Device or resource busy
在使用小觅相机SDK过程中,提示:VIDIOC_S_FMT: Device or resource busyInstalling gtk2-engines-pixbuf should do the trick for the video problem:sudo apt-get install gtk2-engines-pixbuf...原创 2019-11-07 08:29:55 · 2600 阅读 · 0 评论 -
IMU 测量模型和运动学模型
一、概念高斯白噪声: 测量噪声是AD转换器件引起的外部噪声,波动激烈的测量白噪声随机游走(这里指零偏Bias): 随机游走噪声,是传感器内部机械、温度等各种物理因素产生的传感器内部误差的综合参数,是变化缓慢的bias二、陀螺仪目前大多数的陀螺校准其实就是去掉零点偏移量,采集一定的数据,求平均,这个平均值就是零点偏移,后续飞控所读的数据减去零偏即可。陀螺仪测量模型其中是随...原创 2019-06-17 22:49:56 · 3172 阅读 · 0 评论 -
里程计运动模型
里程计模型使用相对运动信息,该信息由机器人内部里程计测量。为了提取相对距离,运动信息被转变成三个步骤的序列:旋转、直线运动(平移)和另一个旋转。 算法流程: 变量,和是将高斯零均值随机噪声添加到实际测距读数的结果。实际上,将一个小的附加误差相加到每个姿势分量以避免对于零度量测...原创 2019-06-23 19:31:17 · 2556 阅读 · 0 评论 -
粒子滤波重采样
重采样主要是为了解决经典蒙特卡洛方法中出现的粒子匮乏现象。其主要思想是对粒子和其相应的权值表示的概率密度函数重新进行采样。通过增加权值较大粒子和减少权值较小粒子来实现。重采样虽然可以改善粒子匮乏现象,但也降低了粒子的多样性。两种较为常用的重采样算法:轮盘赌、低方差采样。一、轮盘赌(独立随机采样)每个粒子对应的权重大小就是图中各奖项对应的面积大小。每次采样就是转动一次转盘。 ...原创 2019-06-24 08:44:39 · 8389 阅读 · 1 评论 -
PCL ICP原理及实现
代码:#include <iostream>#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>#include <pcl/registration/icp.h>intmain (int argc, char** argv){ pcl::PointCloud<p...原创 2019-06-24 21:36:55 · 1282 阅读 · 1 评论 -
差速底盘运动解算
线速度当然也可以根据两轮δt时间走过的路程,通过...原创 2019-06-28 22:40:31 · 2387 阅读 · 1 评论 -
g2o曲线拟合
#include <iostream>#include <g2o/core/base_vertex.h>#include <g2o/core/base_unary_edge.h>#include <g2o/core/block_solver.h>#include <g2o/core/optimization_algorithm_lev...原创 2019-07-22 16:23:03 · 231 阅读 · 0 评论 -
数值积分
数值积分法是求定积分的近似值的数值方法。即用被积函数的有限个抽样值的离散或加权平均近似值代替定积分的值,是一种递推的方法。数值积分法也是计算机仿真模拟中常用的一种方法。在已知函数的微分方程时,求解函数下一时刻的值,我们主要有欧拉法、梯形法和龙格库塔法。欧拉积分欧拉积分法是这些方法中精度最低的,但也是最容易编程实现的一种方法。欧拉法的表达式可以写成下面的形式:微分方程:则欧拉...转载 2019-06-17 22:47:26 · 1361 阅读 · 0 评论 -
利用Kalibr标定Camera-IMU外参
一、参考论文Paul Furgale, Joern Rehder, Roland Siegwart (2013). Unified Temporal and Spatial Calibration for Multi-Sensor Systems. In Proceedings of the IEEE/RSJ International Conference on Intelligent Ro...原创 2019-04-10 11:46:38 · 3245 阅读 · 0 评论 -
navigation发送导航目标点,读取机器人全局位姿
#include <ros/ros.h>#include <actionlib/client/simple_action_client.h>#include <move_base_msgs/MoveBaseAction.h>#include "tf/tf.h"#include <tf/transform_listener.h>#include <geometry_msgs/PoseArra原创 2018-01-24 14:17:11 · 2310 阅读 · 4 评论 -
接收导航包全局规划路径话题
#include <ros/ros.h>#include <actionlib/client/simple_action_client.h>#include <move_base_msgs/MoveBaseAction.h>#include "tf/tf.h"#include <tf/transform_listener.h>#include <geometry_msgs/PoseArra原创 2018-03-27 16:20:45 · 335 阅读 · 0 评论 -
在PCL中实现欧氏聚类提取
1、数据集table_scene_lms400.pcd2、代码#include <pcl/ModelCoefficients.h>#include <pcl/point_types.h>#include <pcl/io/pcd_io.h>#include <pcl/filters/extract_indices.h>#include <pcl/filters/voxel_grid.h>#i原创 2018-05-02 21:05:30 · 8534 阅读 · 2 评论 -
卡尔曼滤波及例程
1、五大公式 预测状态 预测协方差 kalman增益 状态估计值 当前状态方差其中: 为测量值,为测量噪声,:预测值 A:状态转移矩阵 :状态的控制量 :过程造噪声,假定其符合均值为0,协方差矩阵为Q的多元正太分布,H:测量矩阵,从真实值到测量值的状态...原创 2018-08-11 10:21:12 · 1330 阅读 · 0 评论 -
三维空间的位姿描述和齐次变换
一、三维空间的位姿描述和齐次变换 首先规定一个坐标系,相对于该坐标系,点的位置可以用3维列向量表示;刚体的方位可用3×3的旋转矩阵来表示。而4×4的齐次变换矩阵则可将刚体位置和姿态(位姿)的描述统一起来,它具有以下优点:(1) 它可描述刚体的位姿,描述坐标系的相对位姿(描述)。(2) 它可表示点从一个坐标系的描述转换到另一坐标系的描述(映射)。(3)它可表示刚体运动前、...原创 2018-09-05 19:27:42 · 9510 阅读 · 1 评论 -
《Trajectory modification considering dynamic constraints of autonomous robots》理解
eletic band(橡皮筋)的定义:连接起始、目标点,并让这个路径可以变形,变形的条件就是将所有约束当做橡皮筋的外力。关于time eletic band的简述:起始点、目标点状态由用户/全局规划器指定,中间插入N个控制橡皮筋形状的控制点(机器人姿态),当然,为了显示轨迹的运动学信息,我们在点与点之间定义运动时间Time,即为Timed-Elastic-Band算法。一、T...原创 2019-02-22 16:47:58 · 6079 阅读 · 0 评论 -
雅可比矩阵与海森矩阵
在向量分析中, 雅可比矩阵是一阶偏导数以一定方式排列成的矩阵。其行列式称为雅可比行列式。一、Jacobian矩阵雅可比矩阵的重要性在于它体现了一个可微方程与给出点的最优线性逼近. 因此, 雅可比矩阵类似于多元函数的导数。 即:假设F: Rn→Rm是一个从欧式n维空间转换到欧式m维空间的函数。这个函数F由m个实函数组成: ...原创 2019-02-23 10:30:13 · 2561 阅读 · 0 评论 -
2d Laser 和 camera 外参标定
转自原文:https://blog.csdn.net/heyijia0327/article/details/85000943 1、论文Extrinsic Calibration of a Camera and Laser Range Finder (improves camera calibration)2、代码https://github.com/cjn0608/CamLase...转载 2019-02-18 21:16:31 · 2441 阅读 · 1 评论 -
teb_local_planner 理解
1、算法流程图 2、代码入口teb_local_planner_ros.cpp bool TebLocalPlannerROS::computeVelocityCommands(geometry_msgs::Twist& cmd_vel)bool success = planner_->plan(t...原创 2019-02-20 17:27:28 · 5640 阅读 · 1 评论 -
Ubuntu16.04 源码安装turtlebot
turtlebot 源码安装 在安装turtlebot之前本教程假定你已经正确安装了ros-kinetic-desktop-full1 、安装准备sudo apt-get install python-rosdep python-wstool ros-kinetic-ros sudo rosdep init rosdep update注:rosdep init命令执行失败,无法找到源的错误修复原创 2017-07-28 20:33:31 · 4709 阅读 · 3 评论