随笔分类 - ROS
摘要:1.ros::spin()和spinOnce含义 如果在节点中如果订阅了话题,那么就必须要调用ros::sping()或者ros::spinOnce()函数去处理话题绑定的回调函数,否则该节点将不会调用节点所订阅的所有回调函数来处理接收到的数据.换句话说如果一个节点里面没有订阅话题只有发布话题,那么
阅读全文
摘要:1. 安装 从官网下载最新版本的Clion https://www.jetbrains.com/clion/ 并解压到指定的目录,例如: /home/xkc/software/clion-2017.2.3 默认Clion可以免费使用30天,学生可以凭借学生证,免费使用的话可以申请一年. 授权方法:激
阅读全文
摘要:机器人的复杂行为的控制结构CA(Contrl Architecture)通常使用有限状态机来实现,例如ROS提供的smach。行为树是另外一种实现机器人控制的方法,ROS下代表的开源库有pi_trees和ROS-Behavior-Tree。 参考资料 [1]. ROS-Behavior-Tree [
阅读全文
摘要:如果有多个usb链接到电脑,如果插入的先后顺序不同,那么会导致对应的usb口也会不同,例如当只有一个激光的usb链接到电脑,其设备名字为/dev/ttyUSB0;当如果有底盘的usb以及激光的usb连到电脑时,如果先插入底盘的usb,再插入激光的usb底盘的usb,那么激光的usb对应的设备名字就变
阅读全文
摘要:这里提供两种方法。 第一种方法:clang_format 1.安装clang format 2.从github的roscpp_code_format项目,下载格式文件.clang-format,注意它是一个隐藏类型的文件,可以通过Ctrl+H显示出来 3.将.clang-format文件拷贝到工作空
阅读全文
摘要:1.各种最新开源的SLAM a.OpenSLAM。这里收集了各种最新的开源SLAM资料,包含了比如: ORB_SLAM, ORB_SLAM2, hector_slam,ethzasl_ptam,g2o,fastfusion,lsd_slam,rgbdslam_v2,dso,rtabmap_ros,s
阅读全文
摘要:在一些应用中会需要获取master的uri地址,发布的话题,订阅的话题,发布的服务,节点的信息等等。这些功能我们通常可一通过rosnode list, rosnode info, rostopic list, rostopic info, rosservice list和 rosservice in
阅读全文
摘要:参考资料: 官方教程:Writing and Using a Simple Plugin
阅读全文
摘要:目录 Overview pluginlib 是一个C++ 类库,用于从一个ROS包中加载和卸载插件 plugins. 插件plugins是一种能从运行库(例如:共享对象,动态链接库)中动态导入的类. 使用 pluginlib, 我们就不必在程序中显式地声明或定义类库,而是可以在代码中的任何位置动态的
阅读全文
摘要:1.Actionlib原理 英文版:DetailedDescription 翻译版:actionlib的身世之谜 2.Actionlib官方教程 Actionlib是ros的重要部件,对于复杂动作的执行问题,例如机械臂捉取物品和move_base实现等,使用actionlib是非常有效的。参考官方的
阅读全文
摘要:用Eclipse Neon做ROS开发需要几个常用的插件,可以大大加速开发的进度。 1.常用插件 a.CMake Editer 地址:http://cmakeed.sourceforge.net/eclipse/ b.PyDev 地址: http://www.pydev.org/updates c.
阅读全文
摘要:Actionlib是ROS非常重要的库,像执行各种运动的动作,例如控制手臂去抓取一个杯子,这个过程可能复杂而漫长,执行过程中还可能强制中断或反馈信息,这时Actionlib就能大展伸手了。 1.原理 1.1功能 在任何一个比较大的基于ROS的系统,都会有这样的情况,向某个节点发送请求执行某一个任务,
阅读全文
摘要:Dynamic Window Approach(DWA)是重要的局部轨迹规划算法,ROS中使用了DWA算法获得了很好的局部路径规划的效果。具体的教程可参考官方的导航调试资料Navigation Tuning Guide。ROS的DWA(dwa_local_planner)应用到新机器人调试时,有一些
阅读全文
摘要:ROS软件包开发完成后,需要安装包,如果你用的是catkin创建的工作空间,那么即可使用命令"catkin_make install"完成此项任务.下面介绍其安装的过程: 1.源码准备 准备好需要安装的代码,通常可以使用catkin来创建工作空间,包和编译整个项目.本例子假定工作空间为catkin_
阅读全文
摘要:机器视觉中,3D相机产生的深度图像(depth image)通常需要配准(registration),以生成配准深度图像(registed depth image)。实际上配准的目的就是想让深度图和彩色图重合在一起,即是将深度图像的图像坐标系转换到彩色图像的图像坐标系下。下面我们来介绍其推导的过程。
阅读全文
摘要:深度图转激光在ROS包depthimage_to_laserscan中实现,本篇讲解其计算过程。关于点云转激光数据的思路也是类似的,只需要将一定高度范围内的数据进行投影即可。 1. 深度图转激光原理 原理如图(1)所示。深度图转激光中,对任意给定的一个深度图像点\(m(u,v,z)\),其转换激光的
阅读全文
摘要:深度图转点云的计算过程很简洁,而里面的原理是根据内外参矩阵变换公式得到,下面来介绍其推导的过程。 1. 原理 首先,要了解下世界坐标到图像的映射过程,考虑世界坐标点M(Xw,Yw,Zw)映射到图像点m(u,v)的过程,如下图所示: 详细原理请参考教程"相机标定(2) 摄像机标定原理",这里不做赘述。
阅读全文
摘要:cv_bridge默认依赖的oencv版本是2.4.8,如果安装了新的opencv版本,比如2.4.11,那么在编译cv_bridge时候会提示无法找到opencv 2.4.8.so的库。 为解决这个问题,必须要先把旧版本的cv_bridge卸载掉: 然后下载新版本的cv_bridge: 将里面的c
阅读全文
摘要:两台机器同时运行过程中,对于ROS的tf变换,其要求两台机器的时钟要保持一致。 1、查询时间 首先通过以下命令,看两台机器时钟是否有差异。在本机上,查看远程master的机器时间: 例如 或者在终端直接输入date命令可以查询本机的时间: 2、安装chrony 执行如下命令: 3、配置 然后编辑配置
阅读全文
浙公网安备 33010602011771号