![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ROS编程技术
文章平均质量分 74
蓝黑艾伦
这个作者很懒,什么都没留下…
展开
-
ROS学习笔记17:MoveIt!机械臂控制
为开发者提供了一个易于使用的集成化开发平台,由一系列移动操作的功能包组成,包含运动规划、操作控制、3D感知、运动学、控制与导航算法等,且提供友好的 GUI ,可以广泛应用于工业、商业、研发和其他领域。已知机器人的初始姿态和目标姿态,以及机器人和环境的模型参数,那么可以通过某种算法,在躲避障碍物和防止自身碰撞的同时,找到一条到达目标姿态的较优路径,这种算法称为机器人的运动规划。1)组装:在控制机器人之前需要有机器人,可以是真实的机械臂,也可以是仿真的机械臂,但都要创建完整的机器人URDF模型。原创 2022-12-09 15:02:50 · 12702 阅读 · 6 评论 -
ROS学习笔记16:机器人系统建模与仿真
一、概述:1.机器人系统仿真: 是通过计算机对实体机器人系统进行模拟的技术,在 ROS 中,仿真实现涉及的内容主要有三:对机器人建模(URDF)、创建仿真环境(Gazebo)以及感知环境(Rviz)等系统性实现。(1)仿真优势:低成本、高效、高安全性。(2)仿真缺陷:仿真器所使用的物理引擎目前还不能够完全精确模拟真实世界的物理情况;仿真器构建的是关节驱动器(电机&齿轮箱)、传感器与信号通信的绝对理想情况,目前不支持模拟实际硬件缺陷或者一些临界状态等情形。2.机器人系统仿真所需组件:(1)创建机原创 2022-12-05 21:23:32 · 5319 阅读 · 0 评论 -
ROS学习笔记15:rosbag数据记录与回放(ROS常用组件)
这个警告意思是:暂停了,没有进行数据的录制。原因在于ROS tf 的发布时间晚于 topic 的时间,Rviz 在做 msg 的 tf 变换时,默认把过时的 msg 丢掉。为了方便调试测试,ROS提供了数据记录与回放的功能包rosbag,可以帮助开发者收集ROS系统运行时的消息数据,然后再离线状态下回放。解释:rosbag record就是数据记录的命令;-a参数意为所有发布的消息;-O参数意为存为压缩文件。查看数据记录文件的详细信息。回放指定的bag文件。原创 2022-11-23 14:42:48 · 1855 阅读 · 0 评论 -
ROS学习笔记14:Gazebo仿真环境(ROS常用组件)
虽然Gazebo中的机器人模型与rviz使用的模型相同,但是需要在模型中加入机器人和周围环境的物理属性,例如质量、摩擦系数、弹性系数的等。Gazebo是一款功能强大的三维物理仿真平台,具备强大的物理引擎、高质量的图形渲染、方便的编程与图形接口,而且开源免费。在Gazebo左侧的模型列表中,有一个insert选项罗列了所有的可使用模型,只需把需要的模型拖到3D视图区即可。选择左侧的绘制选项,在上侧的白色网格窗口中使用鼠标绘制,下侧窗口中即可实时显示绘制的仿真环境。Gazebo有两种创建仿真环境的方法。原创 2022-11-23 14:42:28 · 1961 阅读 · 0 评论 -
ROS学习笔记13:rviz三维可视化平台(ROS常用组件)
(1)rviz可以用XML对机器人、周围物体等任何实物进行尺寸、质量、位置、材质、关节等属性的描述,并且再界面中呈现出来。(3)rviz通过机器人模型参数、机器人发布的传感器信息等数据,为用户进行所有可检测信息的图形化显示。(2)rviz还可以通过图形化方式,实时显示机器人传感器的信息、机器人的运动状态、周围环境的变化等。rviz是一款三维可视化工具,很好地兼容了各种基于ROS软件框架的机器人平台。原创 2022-11-23 14:42:05 · 3265 阅读 · 1 评论 -
ROS学习笔记12:Qt工具箱(ROS常用组件)
rqt_plot是一个二维数值曲线绘制工具,可以将需要显示的数据在xy坐标系中使用曲线描绘,在界面上方的Topic输入框中输入需要显示的话题消息。为了方便可视化调试和显示,ROS提供了一个Qt架构的后台图形工具套件rqt_common_plugins,在使用之前,确保已安装Qt工具箱。rqt_console工具用来图像化显示和过滤ROS系统运行状态中的所有日志消息,包括info、rqt_graph工具可以图形化显示当前ROS系统中的计算图。(1) 启动界面后显示当前系统所有可配置参数;原创 2022-11-23 10:46:57 · 798 阅读 · 0 评论 -
ROS学习笔记11:launch启动文件(ROS常用组件)
在launch文件中通过元素加载parameter,launch文件执行后,parameter就加载到ROS的参数服务器上了。启动文件是ROS中一种可以通过xml文件,同时启动多个节点并可以实现每个节点的各种配置的途径,它还可以自动启动ROS Master节点管理器,为多个节点的操作提供很大的便利。XML文件必须包含一个根元素,launch文件中的根元素采用标签定义,文件。5)required=“ture”:必要节点,当该节点终止时,launch文件中的其他节点也被终止。原创 2022-11-23 10:37:03 · 1645 阅读 · 0 评论 -
ROS学习笔记10:TF坐标变换(ROS常用组件)
旋转参数的第一种命令格式使用以弧度为单位的yaw、pitch、roll角度(yaw是围绕z轴旋转的偏航角,pitch是围绕y轴旋转的俯仰角,roll是围绕x轴旋转的翻滚角),第二种命令格式使用四元数表达旋转角度。机器人本体和机器人的工作环境中往往存在大量的组件元素,在机器人设计和应用中会涉及不同组件的位置和姿态,这就需要引入坐标系和坐标变换的概念。可视化系统当中的所有tf的关系,监听5s,把5s之内所有坐标系之间的关系保存下来,并生成一个pdf。(2)机器人夹取的物体相对于机器人中心坐标系的位置;原创 2022-11-22 17:33:50 · 2809 阅读 · 0 评论 -
ROS学习笔记9:参数的使用与编程方法(实践作业)
参数可以理解为ROS中的全局变量,储存在ROS Master中(也就是roscore中),每一个节点都可以访问ROS Master中的参数。(4)rosparam set param_key param_value命令:设置某个参数值。(5)rosparam dump file_name命令:保存参数至文件,文件默认位于主文件夹。(7)rosparam delete param_key命令:删除某参数。(1)rosparam命令:查看与参数相关的命令。(2)get函数获取参数;(3)set函数设置参数。原创 2022-11-17 22:33:34 · 600 阅读 · 0 评论 -
ROS学习笔记8:服务器与客户端(实践作业)
Client发布显示某人信息的Request(自定义服务数据),Server收到该Request,显示后反馈Response。Server通过topic给海龟发送速度指令,Client发布request控制Server是否给海龟发指令。(1)初始化ROS节点,创建名为“Velocity_spawn”的节点;(4)在回调函数中完成服务功能的处理,并反馈应答数据。(3)循环等待服务请求,进入回调函数;(2)创建一个Client实例;(2)创建一个Server实例;(3)发布服务请求数据;原创 2022-11-17 21:55:06 · 365 阅读 · 0 评论 -
ROS学习笔记7:话题发布与订阅(实践作业)
1)add_executable:设置需要编译的代码和生成的可执行文件。第一个参数为期望生成的可执行文件名称,第二个参数为参与编译的源码文件。很多功能需要使用系统或第三方的库函数,通过该选项可以配置执行文件链接的库文件。(1)初始化ROS节点,创建名为“Velocity_publisher”的节点;(2)向ROS Master注册节点信息,包括发布的话题名和话题中的消息类型;(1)初始化ROS节点,创建名为“pose_subscriber”的节点;(3)循环等待话题消息,接收到消息后进入回调函数;原创 2022-11-17 18:14:38 · 1818 阅读 · 0 评论 -
ROS学习笔记6:C++基础知识(续)
子类Son2以保护的方式继承了Base类,在其内部可以访问m_A和m_B且它们都是保护成员,不能访问父类中的私有成员m_C。类外的全局函数test01()既不能访问保护成员m_A和m_B,也不能访问m_C。子类Son3的子类GrandSon3(姑且叫它孙子类吧)以公共的方式继承了Son3类,但由于Son3类中的成员均为私有权限,因此m_A和m_B以及m_C都不可访问。子类Son3以私有的方式继承了Base类,在其内部可以访问m_A和m_B且它们都是私有成员,不能访问父类中的私有成员m_C。原创 2022-11-12 15:57:14 · 399 阅读 · 0 评论 -
ROS学习笔记5:C++基础知识
(2)扩展性差:面向过程程序设计没有“封装”和“隐藏”的概念,要访问某个数据结构中的某个变量可以直接访问,但要修改该变量时需要将所有访问该变量的语句都找出来修改,且难以差错和重用代码。C++是C语言的继承,既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。类把属性和方法进行封装,同时对类的属性和方法进行访问控制。友元可以是一个函数(友元函数),也可以是一个类(友元类),在这种情况下,整个类及其所有成员都是友元。原创 2022-11-11 16:39:21 · 1207 阅读 · 0 评论 -
ROS学习笔记4:创建工作空间和功能包
3)rostopic pub [话题名称] [消息类型] [参数]:使用指定的话题名称发布消息。3)rosservice call [服务名称] [参数]:用输入的参数服务请求。2)rosservice info [服务名称]:显示指定服务的信息。(2)功能:创建一个名为“file”的新的空白文件,相当于记事本。2)rostopic info [话题名称]:显示指定话题的消息。2)rosnode info [节点名称]:检查指定节点的信息。(2)功能:执行指定的功能包中的一个节点的命令。原创 2022-11-10 18:46:47 · 1212 阅读 · 0 评论 -
ROS学习笔记3:ROS架构(了解)
一个节点可以针对一个给定的话题(Topic)发布消息(这个节点称为发布者Talker),也可以关注某个话题并订阅特定类型的数据(这个节点称为订阅者Listener)。ROS是一个优秀的机器人分布式框架。服务类型定义了ROS客户端/服务器通信模型下的请求和应答数据类型,可以使用ROS系统提供的服务类型,也可以使用.srv文件在功能包的srv文件夹中进行定义。消息是ROS节点之间发布/订阅的通信信息,可以使用ROS提供的消息类型,也可以使用.msg文件在功能包的msg文件夹下自定义所需要的消息类型。原创 2022-11-09 21:33:36 · 3376 阅读 · 0 评论 -
ROS学习笔记2:ROS安装和小乌龟仿真
rosdep是ROS中自带的工具,主要功能是为某些功能包安装系统依赖,同时也是某些ROS核心功能包必须用到的工具。rosinstall是ROS的一个常用工具,可以下载和安装ROS中的功能包程序。在“下载自”一栏选择安装源,这里选择最好国内源(下载速度快)。解决方法:对于ubuntu20.04系统,键入以下指令。打开第一个终端,运行ROS的节点管理器。PS:初始化可能遇到的问题与解决方法。打开一个新终端,运行键盘控制的节点。(1)使用该命令,确保之前的软件源修改得以更新。(2)ROS桌面完整版安装。原创 2022-11-08 23:28:25 · 1713 阅读 · 0 评论 -
ROS学习笔记1:Ubuntu20.04系统安装图文讲解(双系统,机械硬盘)
Ubuntu双系统安装,ROS原创 2022-10-21 19:22:36 · 4794 阅读 · 1 评论