敲代码的雪糕
好好学习,天天向上。
展开
-
ROS学习(开篇)Ubuntu16.04安装ROS Kinetic详细教程
之前关于ROS学习的博客,都是在win10虚拟机环境下运行的ubuntu18.04系统,对应的ros版本为melodic。由于电脑性能不好,运行导航仿真感觉卡顿,所以我把家里的台式机搞成了ubuntu16.04和win10双系统。ubuntu16.04系统的安装网上很多资料,本篇只是记录下ros的安装步骤,仅供参考。本篇文章只解决我遇到的错误,若不能解决你的错误,请自行百度,哈哈,网上的资料还是很多的。原创 2021-05-14 21:05:21 · 15301 阅读 · 36 评论 -
ROS学习(30)自定义移动机器人模型gazebo仿真(激光雷达+kinect)
之前自定义实现过一款机器人模型,后续文章中提到另一款模型(博客19),主要用于后续学习使用,所以在这里记录下。原创 2022-08-30 09:51:09 · 2878 阅读 · 0 评论 -
ROS学习(28)Web GUI
ROSWebtools社区开发了很多功能强大的web功能包。针对本篇文章,创建新的工作空间catkin_js_ws,并进行初始化等操作。原创 2022-07-21 11:11:02 · 3190 阅读 · 1 评论 -
ROS学习(27)有限状态机SMACH
有限状态机是一款用于对象行为建模的工具,其主要作用是描述对象在生命周期内所经历的状态序列,以及如何响应来自外界的各种事件。。 ROS提供了有限状态机功能包SMACH来处理机器人任务中的多个状态模块。 SMACH是基于Python实现的一个功能强大且易于扩展的库,不依赖于ROS,可用于任意python项目ROS中的executive_smach功能包将SMACH和ROS集成到一起,为机器人复杂应用开发提供任务级的状态机框架,同时集成了actionlib和smach_viewer,用于管理actio原创 2022-06-28 16:08:31 · 1891 阅读 · 0 评论 -
ROS学习(26)动态参数配置
之前的学习中,曾了解过ROS参数服务器的通信机制,如果Listenner不主动查询参数值,就无法获取Talker是否已经向Master更新了参数值。 很多情况下,我们需要动态的更新参数,比如参数调试等,ROS提供了dynamic_reconfigure功能包,实现动态参数配置。 ROS的动态参数修改采用C/S架构,在运行过程中,客户端修改参数后不需要重启,而是向服务器发送请求;服务器通过回调函数确认,即可完成参数的动态配置。创建名为dynamic_tutorials的功能包,命令如下:2、创建原创 2022-06-28 11:31:03 · 3313 阅读 · 0 评论 -
ROS学习(25)rviz plugin插件
RVIZ是ROS提供的一款3D可视化工具,其作为一种可扩展化的视图工具,可以使用插件机制添加丰富的功能模块。RVIZ中常用的激光数据、图像数据的可视化显示其实都是官方提供的插件。 下面,通过实现一个速度控制的插件,熟悉rviz plugin插件的实现过程。 这篇文章源码来自胡老师的书-《ROS机器人开发实践》。界面如图:该插件使用Qt开发,包含三个输入框,分别是话题名、线速度和角速度。命令如下:这个功能包依赖于RVIZ,因为RVIZ是基于Qt开发的,所以不需要单独列出对Qt的依赖。文件内原创 2022-06-28 09:31:19 · 4219 阅读 · 0 评论 -
ROS学习(24)plugin插件
ROS中的插件就是可以动态加载的扩展功能类。 ROS中的pluginlib功能包提供了加载喝卸载plugin的C++库,开发者在使用插件时,不需要考虑plugin类的链接位置,只需要将插件注册到pluginlib中,即可直接动态加载。如图所示:实现一个插件需要如下几个步骤:按照上述步骤,下面利用pluginlib实现一个插件。创建名为pluginlib_tutorials的功能包,命令如下:注意,创建时添加pluginlib依赖。在include/pluginlib_tutorials/po原创 2022-06-24 16:23:21 · 1153 阅读 · 0 评论 -
ROS学习(23)action通信机制
ROS中常用的通信机制是话题和服务,但是很多场景下,这两种通信机制往往满足不了所有需求。 action通信机制,是一种带有连续反馈的上层通信机制,底层基于ROS话题通信。ROS中的actionlib功能包,用于实现action的通信机制。action类似于服务通信机制,不同之处在于action带有连续反馈,可以不断的反馈任务进度,也可以在任务过程中中止运行。action采用客户端/服务器的工作模式,如下:Action客户端与Action服务端之间通过actionlib定义的action pro原创 2022-06-21 13:07:17 · 996 阅读 · 0 评论 -
ROS学习(22)TF变换
机器人本地和机器人的工作环境中存在大量的组件元素,在机器人设计和应用中都会涉及不同组件的位置和姿态,这就需要引入坐标系以及坐标变换的概念。 坐标变换是机器人系统中常用的基础功能,ROS中的坐标变换系统由TF功能包维护。 TF是一个让用户随时间跟踪多个坐标系的功能包,使用树形数据结构,根据时间缓冲并维护多个坐标系之间的坐标变换关系,帮助开发者在任意时间、在坐标系间完成点、向量等坐标的变换。...原创 2022-06-21 09:41:57 · 4205 阅读 · 0 评论 -
ROS学习(21)机器人SLAM功能包——orbslam的安装与测试
在前面的学习中,我们完成了rgdbslam的安装和测试,本篇在此基础上完成ORB-SLAM的安装,这里需要安装的东西就不多了,之前安装RGBD-SLAM时,多数都已安装完毕。Pangolin 作为可视化和用户界面。这里需要安装0.5版本的Pangolin,若安装最新版本的,会在SLAM项目编译时报错。Pangolin0.5下载地址:https://github.com/stevenlovegrove/Pangolin/releases/tag/v0.5解压到指定目录,输入命令如下:编译成功,效原创 2022-06-14 17:30:47 · 3251 阅读 · 0 评论 -
ROS学习(20)机器人SLAM功能包——rgbdslam的安装与测试
在前面的学习中,slam构建出的地图都是二维地图,而目前很多算法可以实现三维信息的地图构建,机器人不仅知道地图中的什么位置有障碍物,而且还知道该障碍物是什么。ROS提供了多种3DSLAM的功能包,rgbdslam就是其中一种,本篇主要学习rgbdslam的安装与测试。...原创 2022-06-14 12:59:00 · 3353 阅读 · 5 评论 -
ROS学习(19)机器人SLAM功能包——cartographer
cartographer的核心是cartographer_node节点,当运行该节点时,需要一个Lua编写的.lua文件,该文件的主要作用是进行参数配置,这与gmapping、hector在launch文件中直接配置参数不同。cartographer的亮点在于代码规范与工程化,适合商业应用和二次开发,能有效避免建图过程中环境中移动物体的干扰,支持多传感器数据建图,支持2D-slam和3D-slam建图。...原创 2022-05-29 18:20:35 · 2373 阅读 · 0 评论 -
ROS学习(18)机器人SLAM功能包——cartographer的安装与测试
本篇主要介绍常用的slam功能包——cartographer,为谷歌开发,在计算资源有限的情况下,可以实现机器人在二维和三维条件下的定位及建图功能。目前该算法采用基于图网络的优化方法,主要基于激光雷达来实现SLAM。...原创 2022-05-22 15:35:55 · 2452 阅读 · 0 评论 -
ROS学习(17)机器人SLAM功能包——gmapping和hector_slam
本篇主要介绍常用的slam功能包——hector_slam,在这之前,先简单了解下gmapping。前面文章中所有涉及slam的demo,全部基于gmapping+激光雷达。原创 2022-05-20 10:04:10 · 3945 阅读 · 0 评论 -
ROS学习(16)自定义机器人自主探索SLAM
之前的文章中,介绍了如何创建地图和创建自定义地图,当时我是使用键盘控制机器人运动的,而后续实现了机器人的自主定位和导航。那么,在导航避障过程中,能不能同时实现地图创建呢?答案当然是肯定的。从本篇开始,使用RoboWareStudio进行开发。...原创 2022-05-10 16:32:49 · 2302 阅读 · 6 评论 -
ROS学习(15)RoboWare Studio的安装使用
RoboWareStudio是一个ROS集成开发环境.使ROS开发更加直观、简单,并且易于操作.可进行ROS工作空间及包的管理,代码编辑、构建及调试。可惜的是,目前已经停更。。。右键点击learning_topic功能包,新建Msg文件夹右键点击生成的msg文件夹,新建msg文件,命名为Person.msguint8sexuint8age如上所述,我们分别新建person_publisher.cpp和person_subscriber.cpp文件。rosrosros。...原创 2022-05-05 09:48:36 · 3646 阅读 · 1 评论 -
ROS学习(29)gazebo模型的安装
Gazebo可以在线连接国外网站加载模型,但是这种方法受限与网速模型下载很慢导致很卡,所以可以先把所有模型下载安装到本地,这样再打开软件时模型加载的速度就会很快。https然后解压到上述指定目录即可。...原创 2022-04-15 08:58:51 · 3735 阅读 · 0 评论 -
ROS学习(14)自定义四轮小车的ROS导航
本篇为自定义四轮小车的ROS导航仿真,与前面自定义机器人导航类似。该篇源码非原创,特此说明,作者博客地址在这里https//blog.csdn.net/wangchao7281/article/details/53691351,本想转载,但是没找到快捷键。。。所以再记录一下吧。再次声明,本篇源码非原创,作者链接见前言,四轮小车成功移动到目标点。httpshttps。...原创 2021-07-07 10:13:49 · 5106 阅读 · 15 评论 -
ROS学习(13)自定义机器人的ROS导航
上一篇针对我家户型,完成了自定义环境的建图工作。本篇主要完成对导航功能包集的配置,实现机器人在此环境下的定位导航功能。该篇在mbot_sim_gazebo_navigation功能包下进行。原创 2021-04-20 20:08:43 · 5190 阅读 · 13 评论 -
ROS学习(12)使用ROS创建自定义地图
上一篇使用的是柳树车库环境,实现完整建图工作比较复杂,所以准备新建一个简单点的环境,在此基础上实现后面的自定义机器人定位与导航。原创 2021-04-07 21:06:48 · 7325 阅读 · 3 评论 -
ROS学习(11)使用ROS创建地图
创建地图是一件比较复杂的工作,ROS利用map_server地图服务器,借助激光雷达和机器人的里程信息来完成这项工作。本篇我们还是利用柳树车库作为默认的地图环境。主要介绍了地图的创建、保存、加载,下一篇尝试配置导航功能包集,并在gazebo仿真环境下完成自定义机器人的自主导航。httpshttpshttpshttps。...原创 2021-04-01 20:56:51 · 10732 阅读 · 3 评论 -
ROS学习(10)自定义移动机器人gazebo环境下的移动
所谓滑移转向,对机器人机身两侧轮子分别进行驱动,通过不同的转速,完成机器人的转向。可以通过上述方法,驾驶机器人穿越整个房间,但是我怎么赶脚操控有点难度。。。至此,一个自定义移动机器人的建模与仿真基本结束,下一篇开始接触导航,加油啊。https。...原创 2021-03-24 23:58:19 · 2519 阅读 · 6 评论 -
ROS学习(9)自定义移动机器人模型Gazebo仿真
想在ROS系统中对我们自定义的机器人进行仿真,需要使用Gazebo,其是一种适用于复杂室内环境和室外环境的仿真环境。截止到目前,我们为自定义的机器人模型,添加了摄像头和激光雷达,又为其添加了地图,下一篇开始介绍如何控制机器人在仿真环境下的移动。httpshttpshttpshttpshttpshttpshttpshttps。...原创 2021-03-22 22:53:50 · 4873 阅读 · 15 评论 -
ROS学习(8)通过xacro自定义移动机器人模型
首先,上一篇使用urdf文件创建了一个四轮小车模型。这一篇想使用xacro文件创建一个正真的机器人模型。xacro比urdf更具可读性和可维护性。它还允许我们创建模型并复用这些模型去创建相同的结构。在里面我们可以进行宏定义、变量定义、头文件包含、数学运算等操作。我们确定下机器人的形态一个带有摄像头、激光雷达的四轮移动机器人,其中两个轮子是带有电机的差动轮,另外两个为支撑轮。我们需要确定的参数如下httpshttps。...原创 2021-03-20 21:14:56 · 2944 阅读 · 12 评论 -
ROS学习(7)通过URDF自定义四轮小车模型
标准化机器人描述格式URDF是一种用于描述机器人其部分结构、关节、自由度等的XML格式文件。这是通过urdf文件,建立的四轮小车模型,但是urdf文件模型冗长、重复内容多,参数修改麻烦、不利二次开发并且没有参数计算的功能。所以出现了xacro这个进化版本,下一篇我们使用xacro建立一个更真实一点的机器人模型底盘。httpshttpshttpshttpshttpshttpshttps。...原创 2021-03-18 18:01:08 · 4949 阅读 · 9 评论 -
ROS学习(6)可视化和调试工具二
ROS自带了大量功能强大的工具,其中包括消息日志系统、诊断消息、可视化及检测工具。该篇为上一篇的延续。内容较多,在以后的学习中熟练运用就好。httpshttps。原创 2021-03-17 14:59:36 · 2809 阅读 · 0 评论 -
ROS学习(5)可视化和调试工具一
ROS自带了大量功能强大的工具,其中包括消息日志系统、诊断消息、可视化及检测工具。感觉乱乱的,反正消息命名我是没看懂,有看懂的大佬们讲解下,哈哈。httpshttpshttpshttpshttpshttpshttps。原创 2021-03-16 23:25:36 · 2024 阅读 · 0 评论 -
ROS学习(4)ROS编程初体验
本篇从几个小demo开始学习ROS编程,我的目录结构如下:创建两个节点,分别为example1_a.cpp和example1_b.cpp,a文件将会发送带有节点名称的数据;b文件将这些数据显示到命令行窗口。example1_a.cpp文件内容如下:example1_b.cpp文件内容如下:二、编译运行节点1、手动编辑CMakeLists.txt文件2、编译节点3、运行节点效果如下,在b命令行窗口可以看到a节点发布的消息:在功能包下创建msg文件夹,并创建一个新文件chapter2_原创 2020-11-03 21:25:10 · 1951 阅读 · 0 评论 -
ROS学习(3)ROS的部分命令
本篇开始,我们正式进入ROS的相关练习,如何创建包、如何使用节点和参数服务器,如何通过Turtlesim移动仿真机器人等,重点学习ROS的相关的命令。原创 2020-11-02 11:23:15 · 1685 阅读 · 0 评论 -
ROS学习(2)-ROS架构及概念之理解ROS计算图级
上一章从ROS文件系统级角度对ROS进行简单理解,这一章从ROS计算图级理解ROS的其他概念。原创 2020-11-01 13:03:44 · 1793 阅读 · 0 评论 -
ROS学习(1)-ROS架构及概念之理解ROS文件系统级
3)功能包清单提供关于功能包许可证、依赖关系、编译标志等的信息,写入功能包下的package.xml文件中,也就是说该xml文件必须在每个功能包中。这是因为新的功能包会使用其他包的一些功能。(4)元功能包多个功能包组织到一起,称为元功能包或综合功能包。(1)工作空间工作空间就是一个文件夹,其中包含功能包,功能包又包含源文件和环境或工作空间,从而提供编译这些功能包的一种方式。(5)元功能包清单类似于功能包清单,但有一个XML格式的导出标记,同样写入一个package.xml文件中。...原创 2020-10-22 08:29:17 · 1943 阅读 · 0 评论