
ROS
文章平均质量分 63
sunyoop
分享是最好的老师~
展开
-
rplidar ros sdk 无原因挂死情况分析解决
今天在rplidar sdk上遇到个问题,怀疑以前也遇到过,这里记录一下问题环境rplidar A3 + ubuntu16.04问题现象运行rplidar sdk ,无原因程序死掉,无错误日志问题定位及解决想查看core的堆栈信息,使用命令ulimit -c unlimited ,配置了输出路径,重启,结果还是看不到. 此路不通,估计需要进一步分析原因用代码注释的...原创 2018-08-28 16:08:17 · 988 阅读 · 0 评论 -
ros导航路径规划算法
调试了很长时间的机器人自动导航,一直以为路径规划是个很高大上的东东。直到看完路径生成及选择代码,结果好无语。可能这是最简单的路径规划算法,毕竟叫做simple trajectory generator。路径规划分成两部分:1.样本路径生成。2.最优路径选择第一部分 样本路径生成1.获取当前的x轴速度vx,y轴速度vy,和z轴转向角速度th。这部分数据一般从odom获取,并且在2d地图上,y轴速度一...原创 2018-06-07 19:20:52 · 10489 阅读 · 2 评论 -
ros之调试orbbec摄像头
orbbec摄像头分几种:有mini和mini_s,其中mini是0.6m~8m,mini_s是0.4m~2m。当前时间2018年1月18日:mini使用的是一代芯片,用rviz查看的点云数据噪点特别多,而mini_s使用的是二代芯片,查看的点云数据非常清晰。用ros的启动方式: roslaunch astra_launch astra.launch注意事项:1.使用apt-get install原创 2018-01-18 19:10:06 · 1690 阅读 · 0 评论 -
ros之tf经验总结
1.概念搞ros都离不开tf,当建立一个机器人模型时,第一步就是要确定机器人的tf结构。以kobuki导航运行为例,首先是map:地图坐标,固定坐标系odom : 机器人初始位置坐标,固定坐标系base_link:机器人中心位置坐标一般想法认为有map和base_link就可以了,而从网上的各种资料看来,多出来的odom是因为:在机器人导航运行过程中会出现视觉定位偏差,里程计误差积累等等问题,当算原创 2018-01-18 16:25:02 · 6149 阅读 · 0 评论 -
navigation调试之转圈问题分析定位
问题描述:规划路线后,需要机器人原地转动角度大于180度,在机器人转动时,会大概率出现不断转圈问题分析过程:smoother初始参数:speed_lim_v: 0.8speed_lim_w: 5.4accel_lim_v: 1.0 # maximum is actually 2.0, but we push it down to be smoothaccel_lim_w:原创 2018-01-22 20:06:29 · 3543 阅读 · 3 评论 -
ros之模拟导航算法
导航算法在move_base节点中,当修改一些规划路线的参数时,又不想每次实际去跑,又想有定量的分析。就可以用rosbag方式。实现步骤:1.记录log数据rosbag recoved -O mydata /tf /scan /map /map_metadata /odom /tf_static /move_base_simple/goal2.模拟运行roscorero原创 2018-01-24 17:42:12 · 822 阅读 · 0 评论 -
ros中如何模拟建图(gmapping/hector/cartographer)
ros中有一个模拟器组建,turtlebot_gazebo,上面可以模拟建图和导航的过程。不过由于turtlebot_gazebo中的场景是模拟的,扫描数据(/scan)也是模拟的,雷达/深度摄像头都是虚拟的,生成的scan数据里面有很多的参数可以调试。在正常场景中,雷达的性能也要考虑进去,扫描的数据也会因为环境变化也发生变化,这里就介绍下如何用现实场景的扫描数据模拟建图场景。建图使用gm原创 2018-01-23 14:19:43 · 4468 阅读 · 0 评论 -
navigation 调试 -2- 机器人在行进中晃动问题
问题:前提条件:机器人底盘部分有减震弹簧1.弹簧太松,并且重心偏高,机器人速度突变阶段有晃动。2.加速度最大值和速度最大值都太小在运行过程中会发生晃动现象。3.有导向轮悬空(或者在停止状态下可以轻易转动),说明加载的重量不够需要增加负载,这种情况下会出现晃动现象。未完待续~还有一种情况:使用rosbag播放日志的方式控制机器人会发生抖动现象,因为rosbag pla原创 2018-01-23 14:19:11 · 2200 阅读 · 0 评论 -
navigatoin 调试 -3- 解决costmap动态障碍不更新问题
机器人导航过程中,有两个问题1.在行进过程中,当扫描到动态障碍后,将障碍记录到地图信息中,如果这块区域不再扫描到,则这块动态障碍区域永远不再消失。如果指定目的地为这块区域时,算法会显示该地方不可到达2.很多人围着机器人,地图中会出现很多动态障碍,当人群散开不再围着机器人时,costmap中会残留很多动态障碍,并且长时间不消失。通常来说是扫描范围中最左边和最右边的区域里动态障碍不会消失,怀疑原创 2018-06-07 19:21:26 · 4775 阅读 · 3 评论 -
navigation 调试 -2- 小车的配置问题
1.确定传感器(sensors)在小车的位置影响:导航,建图a.前提是使用kobuki机器人模板,传感器使用深度+rgb摄像头(例如kinect),默认camera的位置信息由robot_state_publisher节点维护,配置文件位置在:turtlebot_description/urdf/sensors/kinect.urdf.xacro,文件格式为urdf格式,从中可以看到有原创 2018-06-07 19:21:17 · 1148 阅读 · 0 评论 -
安装real-sensor驱动注意事项
目前用的是ubuntu 14.04,ros版本是indigorealsensor是intel的一款双目摄像头,在ros中用来做动态避障使用realsensor方便的是:驱动,节点代码都在gitlab上参考链接:http://wiki.ros.org/librealsense#Installation_Prerequisites注意事项:安装完驱动,重启后发现bcm无线网卡驱动不生效了,导致mini...原创 2018-01-29 17:23:07 · 1872 阅读 · 0 评论 -
ros aruco marker
参考链接: 1. aruco ros 2. aruco github首先要有图片源,可用一个简单的uvc摄像头,这里选择uvc图片源。rosrun uvc_camera uvc_camera_node需要注意的是,图片是需要经过校准的,即在默认路径下有默认文件。~/.ros/camera_info/camera.yaml校准过程的参考链接: camera calibrat...原创 2018-04-26 15:11:30 · 1959 阅读 · 0 评论 -
ros calibration单孔摄像头经验总结
环境:ubuntu 14.04 ros indigo,摄像头:Microsoft Corp. LifeCam HD-3000准备摄像头ros中的驱动,在ros中Microsoft Corp. LifeCam HD-3000属于uvc设备(USB video device class)参考链接:http://wiki.ros.org/camera_calibration/Tutorials/Mon...原创 2018-04-16 11:39:26 · 1352 阅读 · 0 评论 -
ros中如何根据map.yaml和tf数据确定地图中机器人的位置
地图的yaml格式中有其中origin是建图时机器人的初始位置,单位是米m问题1:如何将orgin转换成实际地图中的位置?1.确定地图的坐标系,为最右上角的像素为坐标(0,0)整副地图都处于坐标系的第三像限2.解析origin x=-2.5m y=-1.6m,将x,y的值除以分辨率resolution(米/像素)得出x=-50个像素,y为-32个像素从地图的最右上角像素数,往左数第50个像素,再往...原创 2018-04-16 20:29:15 · 12187 阅读 · 8 评论 -
ros中uvc摄像头驱动
如果没有额外的需求,只需要显示拍摄到的图片,使用apt-get命令下载ros软件库放置的软件即可sudo apt-get install ros-indigo-uvc-camerarosrun uvc_camera uvc_camernode如果需要修改原生代码,则参考链接:http://wiki.ros.org/uvc_camerahttp://wiki.ros.org/libuvc_came...原创 2018-04-16 11:49:21 · 1591 阅读 · 0 评论 -
解决"/usr/include/opencv-3.1.0-dev/opencv"non-existent path问题
ros indigo版本需要手动安装opencv3sudo apt-get install ros-indigo-opencv3但在编译whycon时,出现错误CMake Error in whycon/CMakeLists.txt: Imported target "opencv_xphoto" includes non-existent path "/usr/incl原创 2018-04-14 15:46:35 · 2206 阅读 · 1 评论 -
ros降低astra双目摄像头的帧率
orbbec双目摄像头就使用的是astra驱动,相比kinect摄像头,降低帧率的方法非常简单。首先下载ros_astra_camera源码,然后通过查看配置文件ros_astra_camera/cfg/Astra.cfg,就可以看到有个参数“data_skip”。gen.add("data_skip", int_t, 0, "Skip N images for every image publ...原创 2018-03-27 16:22:11 · 1292 阅读 · 0 评论 -
ros降低kinect的帧率
在slam过程中,双目摄像头的分辨率默认是640x480@30Hz,而有时我们不需要这么高的分辨率和帧率,因为这样浪费CPU资源和网络带宽。降低cpu资源有两种方法:第一种是降低分辨率ros中kinect有两个驱动1.freenect,2.openni使用freenect驱动的话,只有两种分辨率SXGA (1): 1280x1024@15Hz, VGA (2): 640x480@30Hz. 使用o...原创 2018-03-27 15:36:23 · 1552 阅读 · 0 评论 -
ros中使用工具自动检测双目摄像头的高度和角度
在摄像头实际安装过程中,会发生0~5度的倾斜而肉眼无法感知,但这倾斜角度在1~2米后会造成十几里面或者几十里面的偏差,所以需要精确地度量出双目摄像头的的倾斜角度。使用github上现有的工具:depth_nav_tools,参考链接:https://github.com/mdrwiega/depth_nav_tools里面有个工具depth_sensor_pose。下载,编译,配置环境变量,运行深...原创 2018-03-19 17:16:21 · 1953 阅读 · 2 评论 -
nodelet解决Failed to load nodelet问题
在写nodelet节点时,出现错误:process[rosout-1]: started with pid [31069]started core service [/rosout]process[standalone_nodelet-2]: started with pid [31076]process[Talker-3]: started with pid [31087][ INFO] [15...原创 2018-03-10 15:31:07 · 20263 阅读 · 9 评论 -
移植使用百度apollo 2.0 ros platform到机器人
apollo代码及资料,可见https://github.com/apolloauto我们的算法在ros原生架构上出现cpu占用过高,topic通信延时过大的问题,后来查看到百度的apollo平台优化了ros整体架构,优点见资料,就进行了apollo ros platform的移植。将release 2.0的压缩包解压,并source里面的setup.bash。由于setup.bash中只将环境变...原创 2018-03-09 11:34:57 · 4840 阅读 · 4 评论 -
ros中的rgb,depth,PointCloud数据
一个深度摄像头可以输出rgb数据和depth数据,而pointcloud数据是由rgb数据和depth数据结合生成出来的。rgb图:以rgb24或者rgb888为例,一个像素的rgb数据为3个字节,每个字节里面有8位,可表示为0~255级一共256级强度。depth图:一个像素为一个double类型的长度,这个长度可以介绍为障碍到摄像头中心点的距离,pointcloud:每个像素不光有原创 2018-01-29 17:52:51 · 2571 阅读 · 0 评论 -
navigation 调试 -1- 解决导航过程中边前进边转圈问题
机器人在给客户演示时,概率出现一个问题现象:制定目的地后,机器人在行进过程中不断朝一个方向转圈式前进,最终达到目标位置,这过程中可以避障。见下图:粉色框:起点蓝色框:终点黑色线:规划路径红色线:实际行进路径分析:1.从行进过程中可以看到,机器人最后还是可以运行到目标位置,这说明它的里程计(odom)信息是准确的,可以准确定位机器人的位置并运行到目标位置。这说原创 2018-06-07 19:21:04 · 5752 阅读 · 5 评论 -
用hector slam和Hokuyo创建地图并导航
投入了接近一天的时间,总算把这个场景搞定了,虽然还有一点小问题,但不影响大局得意于ros的架构,不同节点间除了topic和service相互独立,可以把这个场景看成四个独立的应用。第一部分:kobuki,使用命令就可以拉起:roslaunch turtlebot_bringup minimal.launch发布topic :/odom 发布tf transform : od原创 2017-09-26 17:10:34 · 3195 阅读 · 0 评论 -
ros编译运行Cartographer算法
google的Cartographer算法现在还在不断更新,如果想使用的话选取一个release版本,最好选取旧的版本,新的版本都没人趟过,都是雷和眼泪~~这里面有旧的代码,共享目录:https://pan.baidu.com/s/1htG8guS需要安装三个软件包cartographer,cartographer_ros, Ceres Solver安装依赖:sudo apt-ge原创 2018-01-12 17:34:53 · 2942 阅读 · 0 评论 -
裁剪rplidar的扫描数据
rplidar ,角度裁剪 ,原创 2017-10-21 11:04:07 · 6262 阅读 · 3 评论 -
ros中的map_server package分析
map_server package有两个节点:1.map_server node:读取地图信息,并作为ROS service 为其余节点提供地图数据2.map_saver node:保存现有扫描到的地图信息启动map_server节点: 如果现有地图,则需要配置环境变量TURTLEBOT_MAP_FILE,这样打开rviz就可以看到配置的地图信息。地图文件指原创 2017-10-13 16:54:22 · 4568 阅读 · 1 评论 -
开机自动启动ros节点--robot_upstart
1.安装package,默认是indigo版本sudo apt-get install ros-indigo-robot-upstart2.相信您已经安装了好多的ros package,我这里没有新建package,采用的是turtlebot_navigation在turtlebot_navigation/launch目录下创建文件start.launchstart.launch原创 2017-10-17 15:56:14 · 3246 阅读 · 1 评论 -
rplidar适配说明
rplidar ros package ,支持设备rplidar A2/A1rplidar是一款低消耗的的激光雷达传感器,可用于室内机器人导航。rplidar提供360度扫描区域,最远可达8米,频率为5.5Hz/10Hz.A2每秒钟可提供超过4000个距离测试样本,A1则为2000个。都可以达到每次旋转360个样本。API1.发布的主题scan (sensor_msgs原创 2017-10-31 10:10:54 · 1487 阅读 · 0 评论 -
kobuki中的tf解析
研究了很久的kobuki设备,这次一起来看看kobuki相关的tf1.连接kobuki设备后看到的tf启动命令roslaunch turtlebot_bringup minimal.launchrqt ;执行命令后点击窗口中的pluginsvi -> visualization -> tf 就可以看到图形化的tf其中odom是由/mobile_base_nodelete_manag原创 2017-10-10 10:54:18 · 614 阅读 · 0 评论 -
导航中的robot footprint和各种radius
在导航运行和路径规划中,robot的footprint非常重要,地图上它表现出robot的形状,注意和base_footprint坐标系进行区分。需要了解几个概念;costmap基本参数:文件turtlebot_navigation/param/costmap_common_params.yaml1.inflation_radius:膨胀半径,robot的中心点不能接近以障碍网格为中心原创 2017-10-12 16:18:43 · 4361 阅读 · 1 评论 -
使用新的robot跑gmapping例子不能动态避障原因分析
如题。前提:1.要保证传感器节点正常运行,即发布到主题/scan(或者是laserscan)数据是ok的,可以通过rostopic echo /scan 查看是否有数据生成2.通常使用的设备为kobuki+kinect(或者3d其他的设备)时,运行turtlebot_navigation中gmapping的例子就可以实现kobuki动态避障功能3.运行例子后,运行命令 rosl原创 2017-10-11 11:27:28 · 2212 阅读 · 1 评论 -
kobuki driver的逻辑分析
玩kobuki设备的人都知道可以在上面运行不同的原生程序,像turtlebot_teleop keyboard_teleop.launch,turtlebot_navigation gmapping_demo.launch等等,这些原生程序就像是跑在机器上的app,由于kobuki driver对上对下都提供了详细的通信方式。因此想充分了解kobuki,重点要分析kobuki driver。对原创 2017-09-22 09:49:41 · 1381 阅读 · 0 评论 -
ros中的move_base
学习ros了很长时间,也跑过很多很多的例子,玩了kobuki也一个月还适配turtlebot的minilauncher到一个新的地盘上。最后才发现在navigation stack中最重要的就是move base这个节点。总览:见图如下蓝色模块:根据平台不同而不同,但是必须的。比如base controller基于设备地盘,sensor sources和sensor tra原创 2017-10-09 09:39:47 · 3080 阅读 · 0 评论 -
kobuki驱动通信规范
kobuki node和kobuki 底盘framwork通信通过串口/dev/kobuki(默认情况下),分析下kobuki驱动通信的规范,就可以清楚的明白kobuki地盘framwork做了什么工作。再结合kobuki node订阅和发布的topics,就可以清楚知道kobuki node做了什么工作。通信分成两种:命令(node->framwork)和反馈(node通信方式seria原创 2017-09-18 20:57:56 · 2625 阅读 · 0 评论 -
ros中的nodelet
在ros的节点通信过程中,以topic,service和param进行,但这些总要有一些传出延迟和拥赛。而nodelet设计出来就是为了加快节点间的通信速度,做到zero copy。通常用于在一个处理过程中多个算法间数据无需拷贝即可实现。roscpp已经有做优化使得在同一个节点中发布和订阅做到zero copy 的指针传递。nodelete允许动态加载类到一个相同的node中,但由于命令空间不同使原创 2017-09-11 14:39:46 · 1399 阅读 · 0 评论 -
ros本地连接和远程连接
通常robot上都有一块主机板(一台mini pc机或者就是笔记本),robot的电机板通过USB端口/串口连接主机板,而扫描传感器例如激光雷达也通过USB端口连接到主机板。1.本地连接直接在主机板上跑gmapping,amcl等节点。这样主机板也相当于控制器,直接与外围设备连接。由于不涉及远程连接,在.bashrc中只需配置如下即可。export ROS_HOSTNAME=loc原创 2017-10-31 15:38:33 · 8664 阅读 · 1 评论 -
增加Hokuyo Laser到你的turtlebot注意事项
可以参考:http://wiki.ros.org/turtlebot/Tutorials/hydro/Adding%20a%20Hokuyo%20laser%20to%20your%20Turtlebot但文中有几处出错的地方1.加载驱动时,赋予777权限,但举例中是666权限2.文章挂在ros的hydro版本下面,举例确实indigo版本3.~/.bashrc中的修改举例的路原创 2017-09-08 15:10:20 · 537 阅读 · 0 评论 -
解决无法找到lua.hpp问题
在编译cartographer_ros时出现一个问题,找不到lua.hpp文件,具体问题如下:在这个文件/usr/local/include/cartographer/common/lua.h中找不到lua.hpp文件,进入lua.h文件中查看#ifndef CARTOGRAPHER_COMMON_LUA_H_#define CARTOGRAPHER_COMMON_LUA_H_#inclu原创 2018-01-12 16:48:56 · 7377 阅读 · 4 评论 -
手动下载turtlebot_gazebo models
最近在使用turtlebot_gazebo,运行roslaunch turtlebot_gazebo turtlebot_world.launch时,总是提示大量如下信息Warning [ModelDatabase.cc:334] Getting models from[http://gazebosim.org/models/]. This may take a few seconds.Warning [ModelDatabase.cc:205] Unable to connect to model d原创 2017-12-25 10:54:36 · 822 阅读 · 0 评论