ROS/gazebo
鸿_H
https://github.com/LiangHongY
展开
-
ROS学习笔记52--rosbag图片从compressed格式转raw格式代码实现接口介绍
ros的图片从compressed到raw接口简介原创 2023-02-04 21:20:19 · 693 阅读 · 0 评论 -
ROS学习笔记51--rosbag管理工具分享:时间戳过滤、话题过滤、多包过滤
环境:ubuntu20.04 、ros-noetic、python前言:这是分享一个自己写的rosbag管理工具,个人感觉实用性很强。import rosbagdef merge(): bag1 = rosbag.Bag('/home/ylh/dataset/1.bag','r') #包源1 bag2 = rosbag.Bag('/home/ylh/dataset/2.bag','r') #包源2 # bagn = rosbag.Bag('xxx/n.bag','r') #可原创 2022-05-21 16:03:36 · 1634 阅读 · 1 评论 -
学习笔记50--terminate called after throwing an instance of ‘YAML::BadFile‘ what(): bad file报错踩坑
环境:ubuntu20.04,ros-noetic背景:项目需要,折腾一些ros1包,其中涉及一些yaml文件读取报错提示:包涉及yaml文件的读取,编译时,....WORK_SPACE_PATH: /home/ylh/ros_ws/src/home/ylh/ros_ws/src/config/config.yamlterminate called after throwing an instance of 'YAML::BadFile' what(): bad file报错意思,读原创 2021-09-28 18:56:20 · 5185 阅读 · 3 评论 -
学习笔记15--tf2 方式: 根据odom的 msg的四元数计算 偏转角
环境:ros-kincetc ubuntu16.04假设:头文件\编译依赖以及相关的都已经配置好了.背景是这样子的,需要把小车的在运动一段距离后,计算小车的yaw偏转角,为后面的操作做准备.编写了一个node,然后里面定义了一个topic 来监听 odom ;虽然可以获取该odom的四元数信息,但是该消息类型是nav_msgs::Odometry::ConstPtr& msg ,里面的四元数的角度不是实际需要的(或者说里面的值没有是直接表示宏观的角度的).下面通过tf2方式获取需要的偏原创 2020-06-29 17:15:16 · 1264 阅读 · 2 评论 -
# ROS学习日记之ros系统初步认识
ROS学习日记之ros系统初步认识原创 2020-01-31 16:39:03 · 335 阅读 · 0 评论 -
ROS学习日记2之仿真建筑搭建学习
1、ros官网上面有一个比较详细的教程,链接为http://gazebosim.org/tutorials?cat=build_world&tut=building_editor。关于这教程,需要注意一些点,首先,整体根据步奏来做,很快就搭建好相应的例子环境。这里强调一点,一旦我们编辑好的建筑模型(就是一次退出建筑物编辑器后,建筑不再可编辑),是不支持再次修改的。这一点跟很多SolidWo...原创 2020-02-01 15:41:17 · 271 阅读 · 0 评论 -
ROS学习日记3之基本工作空间创建以及一些ros相关小知识
首先,明确一下,个人使用的是Ubuntu16.04,ros1,ros的kinetic版本的。1、工作空间(1)新打开导航界面,依次输入以下三指令(2)$ mkdir -p 〜/ catkin_ws(工作空间名,可以根据实际更改) / src(3)$ cd 〜/ catkin_ws (工作空间名,可以根据实际更改)/(4)$ catkin_make(5)另外打开一个导航窗口,打开bash...原创 2020-02-04 09:28:26 · 157 阅读 · 0 评论 -
ROS学习笔记之5----ROS kinetic版本 xacro语法原版搬运,重点推荐xacro的条件格式语法
这个是原版的xacro语法介绍,之前一直在查条件语句具体语法运用案例,但是一直没有找打具体的,所以就从官网那边看了这个很全面的,故分享给大家。**1.**Use of new features on IndigoMany of the features highlighted as “New in Jade” below are also accessible from Indigo. To ...转载 2020-03-25 15:02:58 · 1134 阅读 · 0 评论 -
ROS学习笔记6--关于仿真方面的一些环境变量
对于gazebo而言,常见的环境变量有如下:(1)GAZEBO_MODEL_PATH:冒号分隔的目录集,gazebo将在其中搜索模型eg:GAZEBO_MODEL_PATH=/home/…(具体路径文件夹)(2)GAZEBO_RESOURCE_PATH:冒号分隔的目录集,gazebo将在其中搜索其他资源,例如世界和媒体文件。eg:GAZEBO_RESOURCE_PATH=/home/…(具...原创 2020-04-08 15:40:45 · 866 阅读 · 1 评论 -
ROS学习笔记7--sdf与urdf个人看法
这里只是一些个人体会,只是一些参考.sdf与urdf的区别:(1)从作用上面看:sdf是用于gazebo仿真的;urdf是描述机器人整体状态,ros系统也是通过该文件来构建机器人的一切信息.当需要使用urdf做仿真时候,系统会自动将urdf文件装换为sdf格式加载到gazebo里面的.(2)从编写上面看:sdf的joint和link的定义没有存在承接关系,joints的位置定义对其相关的...原创 2020-04-08 16:10:02 · 2673 阅读 · 0 评论 -
ROS学习笔记8---同一个sdf文件里面多次调用同一个模型写法参考
#ubuntu16.04 ros-kinetic gazebo7 环境以及验证编写model.sdf时候,针对同一个模型多次引用时的代码写法:<include> <uri>model://hokuyo1</uri> <pose>0.42 0.201 0.27 -3.14 0 0</pose> <name>1&l...原创 2020-04-09 17:28:20 · 342 阅读 · 0 评论 -
ROS学习日记9---工作空间创建以及launch关键字含义
ubuntu16.04 ros-kinetic gazebo7(1)工作空间创建五部曲mkdir -p rr_ws //创建xxx_ws工作空间cd rr_ws //进入工作空间mkdir src //创建src,关于机器人的创建的文件都放在这里面catkin_make //编译,成功获取需要的工作空间在.bashrc文件...原创 2020-04-09 18:04:00 · 234 阅读 · 0 评论 -
ROS学习笔记11--工作空间/包/插件/urdf/sdf知识小记
(1)mkdir -p ~/xxx_ws/src 指令就是创建一个xxx_ws工作空间,里面也建了一个src.当然,需要进入src的上一级catkin_make,并且在bashrc里面设置环境变量,也就是source…这类,ROS的工作空间就创建完成了.(2)当我们需要创建一个一个程序包时候,我们需要进入工作空间的src里面,使用指令catkin_create_pkg创建程序包,当然,指令后面...原创 2020-04-14 14:16:53 · 333 阅读 · 0 评论 -
ROS学习笔记13--urdf文件报错:GazeboRosControlPlugin missing <legacyModeNS> while using DefaultRobotHWSim.....
环境:ubuntn16.04 ROS-kinetic vs-codeurdf文件运行时候报错如下:[ERROR] [1527494740.144219702, 307.635000000]: GazeboRosControlPlugin missing while using DefaultRobotHWSim, defaults to true.This setting assumes...原创 2020-04-14 14:39:39 · 1474 阅读 · 0 评论 -
ROS学习笔记14--C++编写源文件,生成node的一些问题解决经验总结
ooo原创 2020-04-15 14:56:57 · 473 阅读 · 0 评论 -
学习笔记16 -- ros 关于自定义与node和topic编写的记录
环境:ros-kinetic ubuntu16.04 vscode这里记录一下如何编写一个自定义node来服务一些功能上面需求.这是个人一些经验记录,仅仅供参考.举个简单例子(方便自己以后也能一看就明白,哈哈哈),编写一个node来记录车子的运动和实际距离偏差.写node的话,有三个主要地方要注意.:aaa.cpp / CMakeList.txt /package.xml首先,CMakeList.txt 要添加相应的 编写需要的相关库文件,以及要编译的文件等等,常见的标签有:cs_ad原创 2020-06-29 20:19:04 · 363 阅读 · 0 评论 -
学习笔记17 --使用matlab自带函数,将旋转矩阵计算成欧拉角
个人环境是使用matlab2017b该公式计算欧拉角有个要求,必须是3x3的旋转矩阵(尝试过4x4的计算不了)。matlab自带的由旋转矩阵计算欧拉角公式是,rotm2eul(),可以指定旋转顺序,否则默认旋转顺序为ZYX....原创 2020-07-10 09:39:49 · 10609 阅读 · 1 评论 -
学习笔记18--urdf中的活动关节加载到gazebo中,整个模型碰就飞起来或者重力异常问题解决
环境:ubuntu16.04 ros-kinetic gazebo7.16针对的是关节类型活动类型的,如下面案例中:<joint name="axis_to_link" type="revolute">问题表现:模型在gazebo世界中出现重力异常,或者漂浮状态,甚至飞起状况.原因是:加载urdf模型到gazebo中时候,我们没有定义活动关节的pid,导致gazebo无法进行该活动关节的计算,导致上述情况出现.解决方式:在启动urdf模型的launch文件中添加加载一个语句,加载一个原创 2020-07-14 10:51:45 · 3082 阅读 · 5 评论 -
学习笔记19 --gazebo仿真使用的bumper传感器无数据输出问题解决
环境:ubnutu16.04 ros-kinetic gazebo7.16问题:在urdf添加了仿真时候用的碰撞传感器bumper(这个是gazebo本身自带的,直接在urdf里面声明就可以使用了),但是无论怎么碰撞测试,该topic都是没有数据输出的.原因有:1)定义的传感器没有裸露在外侧,没有办法和外界接触2)排除了1)的可能性后,就是在urdf定义该传感器问题了:gazebo-sensor-contact-collision 没有指定定义bumper的link的sdf中的collision原创 2020-07-14 11:45:38 · 1103 阅读 · 0 评论 -
学习笔记20--世界文件(.world)加载其他模型或者模型文件(.sdf)里面引用其他模型的方法总结
环境:ubuntu16.04 ros-kinetic gazebo7.16利用gazebo仿真时候,需要用到的是sdf文件的,虽然机器人模型使用的是urdf,但在gazebo运行时候,其内部也会把机器人文件urdf转为sdf加载到gazebo里面的.但是,这不是本次总结的重点.这里总结的是gazebo仿真时候,常用到的两种文件,a.world,model.sdf文件,前者用于launch文件中加载的是自己搭建的世界环境;后者是可以在gazebo-insert选项里面选择插入的.那么,对于model.s原创 2020-07-14 16:56:59 · 2156 阅读 · 1 评论 -
学习笔记21--解决cartographer安装后(环境是ros-kinetic ,gazebo7),工作空间编译时提示protoc版本冲突错误.
问题描述:安装了ros-kinetic,gazebo7,后面安装cartographer,再次编译工作空间时候,提示类似错误:/usr/include/gazebo7/gazebo/msgs/wrench_stamped.pb.h:17:2: error: #error This file was generated by an older version of protoc which is/usr/include/gazebo7/gazebo/msgs/wrench_stamped.pb.h:18:2原创 2020-07-15 15:35:09 · 1085 阅读 · 0 评论 -
学习笔记22--Setup and Configuration of the Navigation Stack on a Robot(机器人导航包的配置以及设置)
最近在学习导航包东西,发现了官网这篇文章介绍很全面,靠着躺过6级的能力,用尽吃奶的力气,花了近7个小时把里面的东西按照自己理解的翻译出来,希望有一定参考价值.有理解错误地方,麻烦指出来哈.(吐槽一下,以前刷6级试题连续几个小时就恶心不行,现在居然没事,果然有兴趣不累,哈哈哈)材料来源:http://wiki.ros.org/navigation/Tutorials/RobotSetup机器人导航包的配置以及设置简介:本教程逐步说明如何让导航包在机器人上面跑起来.主要内容包括:使用tf发送装换信息,翻译 2020-07-17 17:27:58 · 521 阅读 · 0 评论 -
学习笔记23--自定义gazebo模型缓慢跳动问题解决
因为项目需要,创建一个带用贴图模型的,模型创建好了(下次写一个一个怎么创建带二维码图片的gazebo模型教程),但是发现一个问题,在gazebo里面,插入模型时候,发现模型缓慢跳动的.根据跟仿真打交道几个月时间,一般都是里面的link转动惯量设置不正常导致的,然而按照实际计算的转动惯量填写到sdf文件里面还是有这个问题,没有办法,查找很久没能解决这个问题.只能把自己的问题发在gazebo的answer社区上面,厉害的人还是很多的.下面链接就是大牛解决这个问题的方法.https://answers.gaz原创 2020-07-18 20:26:21 · 3776 阅读 · 17 评论 -
学习笔记24--gazebo模型带有revolute关节连接的link不停晃动问题解决
环境:ubuntu16.04 ros-kinetic gazebo7.16问题描述:创建一个gazebo模型(.sdf),里面有个关节属于revolute类型的.但是,从gazebo-insert把创建的模型加载进来时候发现,活动关节似乎一直绕着它自身转轴不断晃动,似乎不受重力的影响.原因:活动关节链接的link的重心在自身关节的转轴上面或者关节的阻尼没有正常设置.解决方式:(1)在sdf里面对应的关节添加添加阻尼,如:<joint name='revolute_joint' typ原创 2020-07-18 21:08:29 · 2817 阅读 · 0 评论 -
学习笔记25 --贴有图片或者二维码的gazebo模型创建
环境:ububtu16.04 ros-kinetic gazebo7.16问题来源:做仿真时候,涉及相机方面的仿真,需要创建的一个在特定位置贴有指定图片,如二维码/AR码,的gazebo模型.具有一般gazebo模型的随意insert的特性.下面是以带有图片标签的叉车托盘例子型创建的过程:1)参考案例创建这个模型可以参考gazebo里面的beer模型基本架构,个人也是参考那个模型获得灵感创建自己的模型的.2)模型文件的几大部分创建及解析创建文件夹forkboardbbb,包含整个模型的所有文件原创 2020-07-19 15:35:49 · 3919 阅读 · 4 评论 -
学习笔记26-- 在solidwork里面绘制世界环境,制作成gazebo的.world世界文件基本方法
环境:ubuntu16.04 ros-kinetic gazebo7.16要求基础:基础urdf文件launch文件内容能够理解并可以参考编写问题来源:仿真时候,机器人可能需要各种形式的世界环境,虽然gazebo里面有创建世界建模工具,弄出来也色彩挺好的.但是对于学机械工程的汪而言,仿真时候一般只要一个实体结构就OK了,对色彩要求基本上没有,并且在gazebo上面建模不如solidwork来的方便呀.当然,我们获取只有STL格式的文件.如果喜欢其他绚丽的dae格式文件,可以用其他的建模工具获取.制作原创 2020-07-20 16:48:36 · 3422 阅读 · 1 评论 -
学习笔记27--在用于加载到gazebo的.world世界文件中添加actor活动人模型编写方法
环境:ubuntu16.04 ros-kinetic gazebo7.16问题来源:项目想仿真模拟机器人视觉避障能力,基本场景就是路上有人走来做去,移动机器人能快速停下避让.解决方式:在其 .world文件里面添加一个人在里面走来走去就ok了.当然,gazebo的确提供了相应的办法实现.这个案例基于上一个笔记博客里面(链接:https://blog.csdn.net/qq_45701501/article/details/107466727)展开的.内容上就增加一个人在里面绕圈圈.预览一下效果图:原创 2020-07-21 19:18:56 · 1806 阅读 · 14 评论 -
学习笔记28 --常见活动关节以及控制器的urdf,控制器的yaml,以及对应的launch文件编写以及对应的仿真测试
环境:ubuntu16.04 ros-kinetic gazebo7.16 turtlebot_teleop包注意,代码中使用到的中文注释,使用时候一定要删除,否则会报错的.来源:以前编写机器人urdf时候,关节控制器编写,控制器yaml编写,把控制器正常加载到ros里面的launch文件编写吃了不少功夫,这次总结一下以往的近一年来摸索的到的经验.下面以一个案例来展示.案例:制作一个差速轮式运动机器人,上面有一个顶升以及一个可以绕z轴一定范围内摇动的力臂案例中测试用到turtlebot_tel原创 2020-07-22 21:33:20 · 964 阅读 · 0 评论 -
学习笔记29 -- gazebo里面雷达噪声定义
环境:ubuntu16.04 ros-kinetic gazebo7.16问题来源:仿真时候,激光雷达传感器数据过于完美了,有点不符合实际应用.那么,知道如何定义模拟传感器的噪音大小很有必须.当然,仿真里面在urdf里面定义的参数含义理解也是很重要的.解决方法:下面截取urdf里面对应一个激光传感器作为案例展示: <gazebo reference="scanner_link"> <sensor type="ray" name="hokuyo_sensor">原创 2020-07-23 17:57:11 · 573 阅读 · 0 评论 -
学习笔记30--ros-gazebo仿真的一些插件学习推荐以及一些urdf关节理解分享
环境:ubuntu16.04 ros-kinectic gazebo7.16<一>gazebo支持以下几种插件类型,并且所有插件类型都可以链接到ros,但只能通过urdf文件引用:ModelPlugins,提供对Physical :: Model API的访问SensorPlugins,提供对sensor: Sensor API的访问VisualPlugins,提供对render :: Visual API的访问关于插件的使用:(1)urdf就是文件里面直接插入代码来调用插件;原创 2020-07-23 20:00:16 · 486 阅读 · 0 评论 -
学习笔记31 --编写urdf时关于复杂rpy计算技巧分享
urdf使用环境:Ubuntu16.04 ros-kinetic gazeborpy计算环境:window10 solidwork19 matlab17b问题来源:根据机器人sw文件,编写urdf时候,每个link都会要求填写xyzrpy坐标,xyz的值还是比较好算的,但是这个rpy就不简单了。如果属于单纯某一轴转90°来写还简单,但是对于相机这类对安装要求苛刻的的link编写时候,这个rpy填写就不容易了。难点在于,rpy属于欧拉角,填写urdf时候写的是其的弧度制形式欧拉角;对于欧拉角,个人理原创 2020-07-26 16:48:37 · 1777 阅读 · 3 评论 -
学习笔记33-- ros使用的launch文件常见关键字解析
Launch文件的关键字:<launch> 根元素,在文件中有且仅有一个,所有关键字描述都在其内编写<node> 启动一个节点<machine> 声明用于启动的机器<include> 引用其他roslaunch文件,简单理解就是引用launch文件<remap> 声明一个名称重新映射<env> 为启动节点指定的环境变量<param> 在参数服务器上设置参数<ro原创 2020-07-29 16:27:52 · 307 阅读 · 0 评论 -
学习笔记32--仿真使用的urdf的物理属性定义解析
环境:ubuntu16.04 ros-kinetic gazebo7.16导入:搞项目不一定要等到实际机器人结构出来,才能测试代码的,很多时候需要根据需要手动编写urdf来仿真测试的.那么,仿真时候,机器人的一些摩擦系数转动惯量是怎么定义,在哪定义,这很有必要知道的.下面就一个urdf的基本组成link片段进行解析:<!--left_wheel--> <joint name="left_wheel_joint" type="continuous">//left_wh原创 2020-07-29 16:11:41 · 821 阅读 · 0 评论 -
学习笔记34-- 在urdf里面引用yaml文件参数来定义link的位置样式
环境:ubuntu16.04 ros-kinetic gazebo7.16来源:urdf里面有些link的位置参数是可调的,希望可以从一个yaml文件里面统一读取.下面介绍如何把yaml文件参数加载到urdf里面.要注意,这里假设urdf采用的是xacro格式是编写的<?xml version="1.0"?> <robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="robot">..........<x原创 2020-07-29 17:18:00 · 477 阅读 · 0 评论 -
学习笔记35-- 仿真时用到的d435以及16线雷达在urdf中定义以及launch注意点
环境:ubuntu16.04 ros-kinetics gazebo7.16来源:仿真有d435以及16线雷达的urdf编写注意,urdf采用的是.xacro编写的d435_16vel.urdf.xacro:<?xml version="1.0"?><robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="robot"> <xacro:arg name="gpu" default="false"/>原创 2020-07-30 10:41:42 · 1101 阅读 · 0 评论 -
学习笔记36--d435深度相机点云数据转为pcd并查看的方法
环境:ubuntu16.04 ros-kinetic rviz背景:领域大佬们一般都知道,做真实d435相机标定(点云匹配)时候,需要使用pcd文件,而d435发出的是pointcloud2点云数据,需要转换.这里假设d435相关驱动以及例子展示包都根据官方装好了,然后,ros-kinetic以及rviz也是可以正常使用前提下,使用该方法的.步骤:1.把本地的d435包内的的launch文件中allow_no_texture_points参数设置为true,如:<arg name="all原创 2020-07-30 11:18:27 · 2152 阅读 · 1 评论 -
学习笔记37--urdf定义位置控制器时,加载到gazebo时报错案例解决分享
环境:ubuntu16.04 ros-kinetic gazebo7.16来源:运行机器人launch文件时,终端报以下错误:[ WARN] [1574934496.055405284, 0.194000000]: The default_robot_hw_sim plugin is using the Joint::SetPosition method without preserving the link velocity.[ WARN] [1574934496.055428573, 0.194原创 2020-07-30 11:49:34 · 761 阅读 · 0 评论 -
学习笔记38--键盘遥控建图时,一些报错解决经验
环境:ubuntu16.04 ros-kinetics gazebo7.16来源:在仿真环境,尝试使用gmaping包来建图时候,发现一些报错.保存地图时,使用指令:rosrun map_server map_server -f mapname ,出现报错一.报错一:[ WARN] [1575603290.546981824]: Using deprecated map server interface. Please switch to new interface.修正方式,将指令第原创 2020-07-30 14:29:59 · 1438 阅读 · 2 评论 -
学习笔记39--仿真时,监听某个link的受力情况,urdf编写案例分享
环境:ubuntu16.04 ros-kinetic gazebo7.16来源:gazebo仿真时,机器人有些部分出现异常移动,需要获取某些link受力情况信息.这里是基于个人这个博客的urdf来演示怎么监听一个link的受力情况.https://blog.csdn.net/qq_45701501/article/details/107521623想要复现这个例子,可以保证上面环境一致,然后把链接里面的urdf左轮link替换成如下:<!--left_wheel--> <原创 2020-07-30 15:49:29 · 242 阅读 · 0 评论 -
学习笔记41--关于机器人solidwork模型到urdf的link的位置快速定义的经验分享
环境:Ubuntu16.04 ros-kinetic ;windows solidwork19来源:通过三维模型,怎么不费脑力计算获取各个link的位置关系呢?要了解的经验知识:urdf的link位置定义属于子link以父link的坐标系来定义的;没有特殊要求,就把joint的位置和link的几何中心重合一起,这个习惯可以提高编写效率。urdf上面的link的位置快速定义方式:在sw三维模型,创建好各个零件的几何中心点(sw-插入-参考坐标系-xxx);然后利用sw上面的测量工具,测出相关的xyz原创 2020-08-11 18:01:26 · 540 阅读 · 0 评论