ros
Jane.zhong
底层码农,仰望大佬。
展开
-
在Ubuntu14.04中安装ROSIndigo
本文主要介绍一下ROS是什么,如何在Ubuntu中安装ROS,以及如何基于ROS在Gazebo模拟器中通过键盘控制TurtleBot移动。ROS是什么ROS为RobotOperatingSystem(机器人操作系统)的简写,是一个面向机器人的开源元操作系统(open-source,meta-operatingsystem)。它能够提供类似传统操作系统的诸多功能,如硬件抽象、底层设备控制、进程间消息...原创 2018-05-21 19:05:48 · 834 阅读 · 0 评论 -
使用zeal离线方式查看ROSAPI文档
用习惯了QT Assistant查看API,觉得非常的方便。但是每次查看ROS的API都会去打开官网看,觉得难受。以前张瑞雷老师在课堂上向我们推荐了zeal也教了我们怎么安装。这里我就写一写如何使用zeal安装ros的api。 首先我们需要下载zeal,这里可以参照zeal官网上的教程来安装。官网是这么说的:当官方软件包过时时,我们自己的PPA存储库提供了最新版本。所以我把官网...原创 2018-11-10 18:49:42 · 1654 阅读 · 7 评论 -
catkin build初探
最近开始看张瑞雷老师的《ROS机器人高效编程》。编译其中的源码时,阅读readme文档发现其要求使用catkin build方式编译。由于我以前一直用的都是catkin_make方式进行编译,一时间还摸不着头脑。 这种编译方式,我在官网上也只是看到了使用方法,却没有一个清晰的解释,说明其和catkin_make之间的差别。不过从视图上来看确实要炫酷得多。 要使用c...原创 2018-11-08 21:37:20 · 16237 阅读 · 5 评论 -
只有激光雷达也能跑gmapping
Gmapping是基于滤波SLAM框架的常用开源SLAM算法。在ros中使用gmapping需要提供odom和激光信息,但是我手里只有一个rplidar A2,我也想跑gmapping怎嘛办?这里我们可以使用laser_scan_matcher包提供odom信息。 laser_scan_matcher包是增量激光扫描配准工具。 该软件包允许扫描连续的sensor_msgs /...原创 2018-11-28 21:35:18 · 5691 阅读 · 41 评论 -
在ros下使用karto slam建立地图
KartoSLAM是基于图优化的方法,用高度优化和非迭代 cholesky矩阵进行稀疏系统解耦作为解.图优化方法利用图的均值表示地图,每个节点表示机器人轨迹的一个位置点和传感器测量数据集,箭头的指向的连接表示连续机器人位置点的运动,每个新节点加入,地图就会依据空间中的节点箭头的约束进行计算更新。karto slam需要odom和laser scan的信息。 在ros当中使用k...原创 2018-11-28 21:50:42 · 6775 阅读 · 14 评论 -
在ros上使用mrpt_rbpf_slam建立地图
Mobile Robot Programming Toolkit (MRPT)是一个跨平台的、开源的C++库,旨在帮助机器人研究员设计和实现SLAM、机器视觉和运动规划(避障)的算法。 RBPF SLAM 采用粒子 来 表 示机器人的位姿,而环境特征的估计依然利用 EKF 解析计算。 这种将状态分解为采样部分和解析部分的粒子滤波方法一般称为 RBPF 。 由于这 种 分 解 , ...原创 2018-11-29 22:17:13 · 2038 阅读 · 4 评论 -
在ros上使用mrpt_graphslam_2d建立地图
GraphSLAM又被称为Graph-based SLAM,它的基本思想是将机器人不同时刻的位姿抽象为点(pose),机器人在不同位置上的观测所产生的约束被抽象为点之间的边,或者叫约束(constraint)。所谓的约束可以有多种多样的形式,比如机器人在A点和B点都看到同一个消防栓(我们可以认为这是固定在地图上的landmark),那么机器人在AB点观测到消防栓的相对位置,就对机器人在A...原创 2018-11-29 23:14:24 · 1451 阅读 · 0 评论 -
在ros上使用mrpt_icp_slam_2d建立地图
该SLAM算法通过使用ICP算法将新范围扫描与点点或占用网格图对齐来逐步建立地图。 icp算法 根据点集P1中的点坐标,在曲面S上搜索相应最近点点集P2; 计算两个点集的重心位置坐标,并进行点集中心化生成新的两个点集; 由新的两个点集计算矩阵W=∑ni=1qiq′Ti,并对这个矩阵进行分解为W=U∑VT,R=U∗VT. 得到旋转矩阵和平移矩阵Rt,就可以计算点集P2进行刚体变换之...原创 2018-11-30 11:52:44 · 2359 阅读 · 2 评论 -
在ros下使用crsm_slam建立地图
CRSM SLAM代表临界光线扫描匹配SLAM(同时定位和映射)。 其主要特点如下:使用扫描到地图匹配,而不是通常的扫描到扫描匹配,旨在减少噪声累积。通过随机重启爬坡算法(RRHC)执行扫描匹配。只有临界射线参与RRHC。 至关重要的是表示包含比其他信息更多的空间信息的光线。根据当前的环境结构,使用动态强度执行地图更新。 这是indigo下的一个slam包,但我用...原创 2018-11-30 18:06:31 · 1919 阅读 · 0 评论 -
ubuntu16下使用rplidar A2
笔者以前使用激光雷达都是公司配好,无需管理。最近需要自己从头配置,于是笔者特此记下使用过程以做笔记,也为初次使用者提供帮助。 首先笔者下载了rplidar的ros包:git clone https://github.com/robopeak/rplidar_ros 在跑包之前需要对系统做一些设置,不然每次开机都需要做USB接口写入的设置, 非常麻烦。 ...原创 2018-11-27 23:13:29 · 1791 阅读 · 0 评论 -
ros节点调用gdb调试器和调用valgrind分析节点
在很多情况下我们需要调用gdb调试器去调试自己的代码。有时候也需要使用valgrind来检测程序的内存泄露情况。下面我们就来介绍如何启动gdb或者valgrind分析ros节点。 我是使用的launch文件去启动ros节点和调试器,并且查看调试信息。下面就来看看看简单地启动文件 以上两个文件是我分别启动gdb和valgrind的launch文件。 下面就看看启...原创 2018-11-10 17:49:40 · 2105 阅读 · 0 评论 -
在真实机器人上使用cartographer建立地图
在slam(即时定位与建图)领域,通用建图包有一下几种:hector、gmapping、cartographer。hrector由于不需要使用里程计,所以在特征不太明显的区域容易出现长廊效应,gmapping中规中矩,室内建图效果也是蛮不错的。cartographer是谷歌2015年开源的建图功能包,其效果非常不错,对地图的修复效果很棒。本人最近在真实机器人上尝试了使用ca...原创 2018-09-10 16:57:56 · 11086 阅读 · 15 评论 -
使用rrt(快速搜索随机树)算法实现机器人自主巡墙建图
本人最近在做项目的时候,需要实现机器人在任意未知环境实现自主建图。通过搜寻可用算法案例时,发现zhangrelay老师有介绍rrt并且给出了一个rrt exploration tutorials 的链接,通过学习该案例,本人在自己的机器人上实现了自主巡墙建图功能。在此由衷感谢zhangrelay老师提供的方案。 为写本篇博客,本人随手利用husky仿真做了一个自主巡墙建图。效...原创 2018-09-06 17:15:20 · 4198 阅读 · 23 评论 -
机器人的描述文件Xacro解读
XACRO文件和URDF实质上是等价的,都是用来描述机器人的文件. 但是XACRO格式提供了一些更高级的方式来组织编辑机器人描述. 主要提供了三种方式来使得整个描述文件变得简单. 借用在教程中一句话来形容xacro的优势: “Fortunately, you can use the xacro package to make your life simpler”.下面我们就来看看XACRO文件,下...原创 2018-05-21 22:22:23 · 1852 阅读 · 0 评论 -
ArbotiX配置文件解读
ArbotiX是什么:ArbotiX是含有一个差速驱动机器人的rviz模拟器,机器人运动及topic数据的3D显示,但不包含物理学引擎。使用ArbotiX控制机械臂非常便捷。在讲ArbotiX配置文件之前我们来看看机器人模型这是ros_by_example 2当中的机器人。主要由三部分组成:头部,机械臂和底座头部关节由上下摇摆关节和左右转向关节组成机械臂由以下几部分组成:肩关节,肘关节,前臂关节,...原创 2018-05-23 19:59:50 · 2602 阅读 · 1 评论 -
cannot marshal None unless allow_none is enabled
今天运行一个launch文件的时候出现了以下报错load_parameters: unable to set parameters (last param was [/robot_state_publisher/publish_frequency=20.0]): cannot marshal None unless allow_none is enabled原因是我之前写一个arbotix配置文件...原创 2018-05-24 10:25:08 · 6877 阅读 · 9 评论 -
rostopic发布一个负数消息
话不多说 --原创 2018-05-24 11:21:39 · 638 阅读 · 0 评论 -
ros无法启动节点
错误如下图错误:无法启动类型为[mrobot_teleop / mrobot_teleop.py]的节点:无法找到程序包[mrobot_teleop]中的节点[mrobot_teleop.py]这个错误解决办法其实很简单:就是把你写的节点设置为可执行文件权限cd yourpackage(进入到你存放节点代码的目录下)chmod 777 yournode (把权限设置为777)...原创 2018-06-15 12:18:14 · 5073 阅读 · 3 评论 -
kinetic下键盘控制机器人(python实现)
完整的代码我会放到文章末尾我们的代码分为三个部分:1,键盘事件监控2,速度反馈3,主函数(主要实现控制)首先我们创建了两个字典,一个用于改变机器人运动方向,一个用于机器人速度控制MoveBindings = { 'w':(1, 0), 's':(-1, 0), 'a':(0, 1), 'd':(0, -1), 'q':(1, 1), 'e':(1, -1), ...原创 2018-06-17 20:55:39 · 3651 阅读 · 1 评论 -
opencv函数学习(python)
最近在看胡春旭老师的<ROS机器人开发实践>,第七章讲机器视觉,于是跟随胡老师的代码写了一遍.接下来我就把整理的在这一章学习的有关opencv的几个函数分享出来 1. CvBridge(): 这是一个在opencv图像和ros图像消息之间转换的对象 2. imgmsg_to_cv2()和cv2_to_imgmsg():这两个函数一个是将sensor_msgs/Ima...原创 2018-06-19 13:04:37 · 1444 阅读 · 0 评论 -
关于使用sudo apt-get install命令下载ros软件包报错404 NOT FOUND解决方法
笔者最近在使用apt-get install命令安装ros的arbotix时遇见了404 NOT FOUND问题。 笔者就在想是否是因为网络问题所导致的,于是使用firefox打开ros包储存库的官网packages.ros.org/ros/ubuntu/pool/main/r,发现能打开。不过对比sudo apt-get install命令所使用的地址来说,包储存库确实没有该版本号...原创 2018-07-28 15:38:28 · 5382 阅读 · 2 评论 -
alsa/asoundlib.h: No such file or directory
笔者最近在使用ros语音库pocketsphinx时出现了alsa/asoundlib.h: No such file or directory这个问题。 当然笔者还有其他的问题,但这里我们就只说这个问题。其实就是缺少一个包,装上就好啦 sudo apt-get install libasound2-dev...原创 2018-07-22 15:17:06 · 3215 阅读 · 0 评论 -
通过修改rplidar的ros包源码达到屏蔽雷达角度的目的
rplidar是一款非常好用的激光雷达。但是,它同时也是一款360度无死角的雷达。我们有时候并不需要360度。比如笔者放在笔记本电脑上建图,只需要180度的激光数据就好了。 笔者这里通过修改rplidar的node.cpp源码达到了剪切雷达角度的目的,并且可以在launch文件当中通过设置参数的方法来动态剪切雷达角度。 下面笔者就将自己修改的部分贴上以供参考 ...原创 2018-11-27 23:31:19 · 3122 阅读 · 2 评论