自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (1)
  • 收藏
  • 关注

原创 卡尔曼滤波算法实例剖析--机器人足球赛场中的定位算法

卡尔曼滤波(Kalman filtering)最早在阿波罗飞船的导航电脑中使用,它对阿波罗计划的轨道预测很有用。卡尔曼滤波是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。是目前应用最为广泛的滤波方法, 在通信, 导航, 制导与控制等多领域得到了较好的应用。卡尔曼滤波本身是贝叶斯滤波体系的,建立在马尔科夫概率模型基础上。大多数关于卡尔曼滤波的文章都

2015-09-22 20:43:01 8362 6

原创 ROS 学习系列 -- 使用Rviz观察智能车的运动轨迹 无陀螺仪计算角度转动

视频录像根据两边轮子转动的速率不同,推算出转动的角度。包括原地旋转。计算的原理和代码可以查看文章 ROS 教程之 navigation : 用 move_base 控制自己的机器人(2)

2015-04-07 16:13:50 6367

原创 手势控制四轮智能车移动

视频请看这里1. 输入设备这里使用的是Andriod手机,根据加速计的来推测手势:停止,前进,后退,左右转向2. 手机与智能车通讯智能车上的树莓派运行一个tornado web service, 当检测到一个动作后通过http访问url即可。该web service可以驱动轮子转动

2015-04-07 14:09:39 3188 3

原创 使用补偿算法对陀螺仪和电子罗盘进行数据融合,计算方位角

电子罗盘如  HMC5883L或者 MPU9250的AK8963测方位角时,经常会发现测量角度抖动很厉害。即使不动,角度也在不停的小范围内变化。这时候就需要使用陀螺仪对方位角进行补偿融合,得出稳定的数据。本文只讨论2D空间的方位角,就是电子罗盘X, Y两轴数据融合陀螺仪Z轴数据。1. 电子罗盘和陀螺仪测量物理意义电子罗盘:0-360度的方位角,也称为 yaw 。角度为arcta

2015-03-29 21:57:51 7643 1

原创 ROS 学习系列 -- 使用Rviz 可视化调试9轴机器人姿态融合

机器人平面行走时只需要知道行进方向角度即可,也就是yaw. 但当行走在有坡度的地方时则需要识别出其它两个倾角:pitch 和 raw. 借助9轴传感器的姿态融合就可以识别。下面就是在Rviz中的识别效果测试(IE可能无法观看):1. 九轴姿态融合,欧拉角和四元数机器人三维空间的姿态的表达是用欧拉角, 就是ptich roll 和 yaw. 详见链接ROS中使

2015-03-19 20:06:50 13755 4

原创 ROS 学习系列-- 四轮机器人线性速率、角速度和电机PWM线性关系的定量分析

ROS中的机器人导航需要底层轮子驱动十分精确的对行进的速率和角速度进行控制。本文根据大量的实验数据进行图形化分析,找出线性速率、角速度和电机PWM线性关系,并得出计算公式。1. ROS导航机器人驱动功能分析ROS的navigation包内容十分丰富,并封装完整。开发机器人其实就是开发轮子驱动与ROS 进行通讯。这是一个双向通讯:1.1

2015-03-15 18:32:14 17965 7

原创 ROS 学习系列 -- RViz中移动机器人来学习 URDF,TF,base_link, map,odom和odom 主题的关系

前面已经介绍了如何使用URDF建造机器人小车并显示在Rviz的仿真环境里面,但是小车是静止的。下面介绍如何让它在Rviz里面动起来,并理清URDF,TF 和 odom 主题的关系。1. ROS中base_link, odom, fixed_frame, target_frame和虚拟大地图map的关系一般在urdf文件中都要定义base_link,它代表了机器人的主干,其它所有的fra

2015-01-31 21:56:10 32446 6

原创 ROS 学习系列 -- 使用urdf创建机器人模型在Rviz中3D观察 之二 joint 使用

在ROS 的 机器人仿真环境下建立四轮小车进行导航模拟。RViz是一个三维的仿真环境,可以避障,导航,控制。

2015-01-21 20:21:39 12020 2

原创 ROS 学习系列 -- 使用urdf创建机器人模型在Rviz中3D观察 之一 link使用

使用ROS强大的机器人功能,建立ROS可以识别的机器人模型是第一步,也是无法绕过去的环节。Unified Robot Description Format (URDF) 就是描述机器人硬件尺寸布局的模型语言。它是同ROS沟通的渠道,有了机器人的物理尺寸,ROS就可以有效的进行Navagation和碰撞检测(collision detect)了。未来,该语言会从ROS独立出来,集成到Ubuntu

2015-01-18 20:35:57 21707 2

原创 ROS 学习系列 -- RViz 实时观测机器人建立导航2D封闭空间地图过程 (SLAM)

ROS提供了非常强大的图形化模拟环境 RViz,这个 RViz 能做的事情非常多。今天我们学习一下如何使用 RViz 对机器人在路径探索过程中对地图动态观测。一 基本概念ROS 对机器人导航提供了非常强大的支持,这可以让我们在不了解细节和海量复杂无比的科学计算的情况下就可以对机器人的导航,定位,路径规划。这其中第一步就是要建立一个封闭环境的地图,这个过程叫做SLAM (simultaneo

2015-01-11 11:48:27 18929 7

原创 ROS中单独开辟线程接受message

ros::AsyncSpinner 已经可以开辟许多线程来接收message,但是有时候我们需要指定某个线程来单独对摸个topic的message进行接收处理。#include <ros/ros.h>#include "ros/callback_queue.h"void processImageGrabed(const sensor_msgs::Image::ConstPtr &a...

2018-04-13 16:44:27 2212

原创 gdb调试ros node崩溃地址

编译Debug版本catkin_make -DCMAKE_BUILD_TYPE=Debuggdb启动ros noderosrun --prefix 'gdb -ex run --args' package node[Thread debugging using libthread_db enabled]Using host libthread_db library "/lib/aarc...

2018-03-22 18:20:46 3442

原创 Caffe SGD solver代码阅读分析

代码文件:sgd_solver.cppsgd更新公式推导:这里以 L2 的regularization为例W( t+ 1) = W ( t )  − lr ∗ wd ∗ W ( t )   − lr ∗ delta(W)  −  momentum ∗( W ( t-1 ) - W ( t ) )               = W ( t ) −  lr ∗ [ wd ∗ W ...

2018-02-13 18:22:15 792

原创 IntelliJ IDEA License Server本地搭建教程

使用PyCharm总是需要注册,网上所有的注册都被封了。只能自己创建注册服务器。1. 下载 https://mega.nz/#!f4A2WQRB!fMNbcuSt0YxrjXclW81_GZol-g6dURrO1htqXPMYa8Q打开压缩包,选择对应操作系统,我选择的是Linux AMD64版本:IntelliJIDEALicenseServer_linux_amd642. 修改执行权限sudo...

2018-01-21 21:26:33 2463

原创 安卓编译caffe错误 ‘undefined reference to `stderr'’

NDK:android-ndk-r15ccaffe:https://github.com/sh1r0编译错误:[ 76%] Building CXX object src/caffe/CMakeFiles/caffe.dir/util/insert_splits.cpp.o[ 77%] Building CXX object src/caffe/CMakeFiles/caffe.di

2018-01-11 15:42:27 7763 1

原创 Velodyne tracking相关代码

yolo v2 之车牌检测

2018-01-07 22:03:14 941

原创 YOLO2从darknet到caffe转换的开源项目

gklz1982/caffe-yolov2 这个好像有完整的实现,包括reorg层的实现,提供了把darknet模型转换成caffe模型的脚本hustzxd/z1 这个也有完整的实现,并且提供了工具转换marvis/pytorch-caffe-darknet-convert 这个看起来很牛,三个平台的互相转换xingwangsfu/caffe-yolo 这个只是yolov1的实现

2018-01-05 21:06:04 6833 1

原创 使用PCA 计算点云平面法向量,并旋转至二维XoY坐标系

PCA对点云平面处理后,返回三个特征向量,分别是平面自身坐标系的X轴,Y轴和Z轴在点云全局坐标系中的向量。其中Z轴信息最少,就是平面的法向量。要想把点云从全局坐标系下转化到XoY的二维平面,只需把点按照旋转矩阵R变换后,PCA返回的三个向量就组成了3X3的旋转矩阵R。换句话说,PCA对平面点云的变换,就是把点转换到三个特征向量组成的新的XYZ坐标系下,新坐标系的原点和全局原点是相同的。

2017-12-24 19:33:33 7536

原创 ROS 学习系列 -- 程序发送点云PointCloud2到Rviz显示

方法1  直接加载PCD文件:#include // PCL specific includes#include #include #include #include // Create a ROS publisher for the output point cloudpub = nh.advertise ("filtered_plane", 1); pcl::PCLP

2016-03-11 09:48:53 16265 2

原创 ROS 学习系列 -- 动态程序控制Rviz眼睛位置和目的焦点

在ROS开发中,我们经常需要使用Rviz去观察机器人运行的状态,但是手工控制往往观察位置和焦点是不够灵活的,我们需要程序自动控制改变Rviz的行为。这个的具体实现插件就是 rviz_animated_view_controller首先安装:sudo apt-get install ros-indigo-rviz-animated-view-controller在程序中只需要向

2016-01-10 20:29:36 3046 2

原创 C 角度计算经验代码集合

double angle_diff(double a, double b){ double d1, d2; d1 = a-b; d2 = 2*PI - fabs(d1); if(d1 > 0) d2 *= -1.0; if(fabs(d1) < fabs(d2)) return(d1); else return(d2);}

2015-12-27 21:39:00 1945

原创 ROS 学习系列 -- image_transport 发布jpg图片文件流在image_view中看视频效果

目标:       目录/home/camera 中保存了2000张照相机连续拍照的JPG文件,名字按数字排序 1.jpg  2.jpg  3.jpg  ......... 现在需要在ROS中建立一个node按频率发布所有照片,并可以在image_view中看视频效果。       详细见链接:http://wiki.ros.org/image_transport/Tutorials/Pu

2015-12-16 11:37:02 14535

原创 ROS 学习系列 -- 执行turtlebot navigation的方法

我们讲一下如何使用现有的turtlebot launch文件来启动navigation,并在PC上使用rviz指挥。1. 网络环境布置turtlebot单片机我们使用的是firefly,rviz运行在PC上,它们使用wifi通讯。master ros运行在firefly上,PC需要指向firefly。在PC修改IP到firefly主机的映射,修改/etc/hosts 文

2015-11-19 10:19:36 11051 2

原创 ROS 主动蒙特卡罗粒子滤波定位算法 AMCL 解析-- map与odom坐标转换的方法

ROS AMCL 算法根据订阅到的地图数据配合激光扫描特征,使用粒子滤波获取最佳定位点,该点称为Mp (point on map), 它是相对于地图map上的坐标,也就是base_link相对map上的坐标。odom 的原点是机器人启动时刻的位置,它在map上的位置或转换矩阵是未知的。但是AMCL可以根据最佳粒子的位置推算出 odom->map的tf转换信息并发布到 tf主题上

2015-10-16 09:37:05 27864 10

原创 ROS代码经验系列-- tf进行位置查询变换

include文件:// For transform support#include "tf/transform_broadcaster.h"#include "tf/transform_listener.h"#include "tf/message_filter.h"#include "tf/tf.h"#include "message_filters/subscriber.h"

2015-10-14 14:13:14 18556 2

原创 Grass Gis 峡谷堰塞湖预测模型r.lake剖析--湖心灌水洪泛算法

Grass Gis 是20世纪80年代初,美国军方建筑工程研究实验室(USA/CERL)的Bill Gorgan负责遴选一款具有土地管理、环境规划、环境评估的GIS软件。它有400多个地质分析模块,今天我们剖析一下r.lake算法。1. 堰塞湖预测建模r.lake能做什么如下图1左为一张地形栅格图,也是最常见的2D平面图。从图中可以看到许多的凹地盆地,当有山洪暴雨时就会形成堰塞

2015-08-27 23:49:56 2477

原创 ROS 学习系列 -- Roomba, Xtion Pro机器人制作地图在Android手机无法实时观测地图

turtlebot 配合Android应用 Make a Map可以允许用户通过手机操纵机器人扫描室内地图并在手机上显示出来,效果图如下: ROS机器人与安卓设备的通讯协作是通过rocon实现的,细节这里不作描述。本文适合已经对该技术非常熟悉的人阅读。1. 问题描述下载安卓rocon remocon和Make a map并安装,在turtlebot上启动机器人:$ roslaunch turt

2015-07-30 21:23:59 5933

原创 ROS 学习系列 -- Roomba, Xtion Pro live 实现360度全景照片panorama 无法启动的解决方案

turtlebot 有个实现iPhone360全景照相功能的应用 panorama.  官方使用Create底座和Kinnect,  在使用Roomba底座和Xtion Pro Live配套时发现,按照教程的方式启动不了。1.  启动roslaunch turtlebot_bringup minimal.launch \\加载轮子驱动roslaunch turt

2015-07-24 23:16:20 2871

原创 ROS 学习系列 -- iRobot 第二代机座 Roomba 作为Turtlebot使用时无法开关机

iRobot 推出了第二代机座 Roomba来取代Create.  这是一个绿脸的机座。如果使用在turtlebot上,几乎是完全兼容的,不用该什么代码,但是波特率提高了一倍,所以需要更改环境变量。但是在停止所以turtlebot的进程后,发现Roomba不再有任何反应,灯灭了,按任何按钮都不管用,也无法充电,但是电池一直在放电。原因是退出进程时没有进入到passive模式。在full

2015-07-05 17:30:06 3172 4

原创 ROS学习 —— qt_gui_main() found no plugin matching ‘xxx' 解决方法

在使用 rocon_app_manager 控制 ROS进程时,打开某个QT的控制程序,出现以下错误:qt_gui_main() found no plugin matching "rocon_qt_teleop"rocon_qt_teleop  已经安装完成,问题出在 qt 的缓存没有更新安装插件。解决办法:$ rm ~/.config/ros.org/rqt_gu

2015-06-28 23:52:19 4075 2

原创 ROS 学习系列 -- rocon_app_manager 中 'unegister service [/Cybernetic Pirate/XXX]' 错误处理方法

1. 错误描述今天在PC和开发板上下载了 rocon_app_manager_tutorials,并尝试在安卓系统上遥控远程ROS进程,执行下面命令启动 rocon app 和 interaction集合:roslaunch rocon_app_manager_tutorials pairing.launch --screen结果出现了下面的红惨惨的错误:/opt/ros/in

2015-06-28 22:14:52 2753

转载 ROS学习 ——使用rosinstall下载源文件

ROS的stack库分作两部分,一部分为核心部分,即main部分,简而言之就是使用下面命令,安装ROS系统时就已经安装到我们用户电脑上的那部分。$ sudo apt-get install ros-diamondback-desktop-full另一部分为选用部分,即universe部分,它不仅包括一些开源库的支持,如opencv,pcl,openni_kinect等,还有更上面以机器人功

2015-06-14 11:06:39 9908 1

原创 HMC5883L 电子指南针用树莓派进行磁场干扰过滤 校准

本文适合所有的电子指南针校准,不仅限于 HMC5883L.  硬件的连接和树莓派的搭建以后再写。本文仅限于固定强度和方向磁场干扰的过滤,例如机器人自身其它设备产生的磁场。但对于环境如扩音器喇叭等磁场干扰无效磁场干扰类型

2015-03-07 22:55:31 6946 2

原创 HMC5883L 电子罗盘芯片中 Declination 的作用和取值方法

网上有好多文章介绍如何从HMC5883L电子罗盘中获取旋转的角度。但是其中有个重要的参数Declination并没有太多介绍,而且该参数是必要的。本文结合美国国家地理的彩图介绍了Declination

2015-02-03 22:56:26 4524

原创 ROS 学习系列 -- 树莓派编译安装完整版本ROS

介绍如果在树莓派中安装完整的ROS

2015-02-02 20:01:30 29492 24

原创 树莓派控制SG90舵机

9G舵机接线与驱动" title="辉盛SG90 9G舵机接线与驱动" height="293" width="569" align="middle">SG90一共三根线,红线接5V电源,棕线GND。黄线为数据控制线,该线接到GPIO上,这里我们是BCM模式的pin 21.SG90 脉冲周期为20毫秒(millisecond) 不是20微秒(Microsecond),两者差

2015-01-12 21:32:31 32815 3

原创 树莓派搭建 ROS 系统下四论驱动车,并用 IPad, 手机控制

使用树莓派在安装了ROS后,按照ROS的架构可以开发一个简单的四轮驱动Wifi小车:如图。配件说明双向电机马达 X4树莓派B+ X1双路转向控制芯片 X1万向轮 X4五号电池盒 充电宝 各一个面包板一个底盘支架1套重点说明         这里需要4节电池对马达进行直接供电,马达伺服电机虽然可以输出5V稳定电压,但是无法给树莓派供电。所以要搭载一个充电宝对树莓派

2015-01-06 20:45:58 17820 4

grass gis r.lake 模块示意图

Grass Gis 峡谷堰塞湖预测模型r.lake剖析--湖心灌水洪泛算法http://blog.csdn.net/crazyquhezheng/article/details/48032409 示意图

2015-09-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除