
ros1
文章平均质量分 63
ros1学习笔记
Simulink_
这个作者很懒,什么都没留下…
展开
-
ROS学习笔记14——URDF语法
URDF 文件是一个标准的 XML 文件,在 ROS 中预定义了一系列的标签用于描述机器人模型,机器人模型可能较为复杂,但是在URDF中主要简化为两个部分:连杆(link标签) 与 关节(joint标签)。关于gazebo标签,后期在使用 gazebo 仿真时,才需要使用到,用于配置仿真环境所需参数,比如: 机器人材料属性、gazebo插件等,该标签不是机器人模型必须的,只有在仿真时才需设置。1、urdf 中为了保证 xml 语法的完整性,使用了robot。原创 2024-09-26 23:35:35 · 1315 阅读 · 0 评论 -
ROS学习笔记13——rosbag功能包的简单使用
rosbag是用于录制和回放 ROS 主题的一个工具集,实现了数据的复用,方便调试和测试。rosbag本质也是ros的节点,当录制时,rosbag是一个订阅节点,可以订阅话题消息并将订阅到的数据写入磁盘文件;当重放时,rosbag是一个发布节点,可以读取磁盘文件,发布文件中的话题消息。原创 2024-09-18 00:52:50 · 1039 阅读 · 0 评论 -
ROS学习笔记12——tf坐标变换
以ros自带的小乌龟作为案例的载体,完成通信方式、坐标变换等的练习,实现程序启动之初 产生两只乌龟,中间的乌龟(turtle1) 和 左下乌龟(turtle2),turtle2 会自动运行至turtle1的位置,并且键盘控制时,只是控制turtle1 的运动,但是turtle2 可以跟随turtle1 运行。1、创建功能包创建项目功能包依赖于roscpp、rospy、std_msgs、 tf2、tf2_ros、tf2_geometry_msgs、geometry_msgs、turtlesim原创 2024-04-29 14:12:19 · 648 阅读 · 0 评论 -
ROS学习笔记11——ROS中的重名问题
设置参数时,首先需要创建 NodeHandle 对象,然后调用该对象的 setParam 函数,该函数参数1为参数名,参数2为要设置的参数值,如果参数名以 / 开头,那么就是全局参数,如果参数名不以 / 开头,如果NodeHandle 对象创那么,该参数是相对参数还是私有参数与NodeHandle 对象有关,建时如果是调用的默认的无参构造,那么该参数是相对参数,如果NodeHandle 对象创建时是使用ros::NodeHandle nh("~"),那么该参数就是私有参数。原创 2024-01-29 23:23:17 · 1376 阅读 · 0 评论 -
ROS学习笔记10——自定义源文件调用
调用自定义源文件的时候需要配置cmakelists文件,刚学感觉还挺繁琐,用一个小案例记录一下。原创 2024-01-23 09:52:43 · 668 阅读 · 0 评论 -
ROS学习笔记9——ROS三种通信机制的比较
三种通信机制中,参数服务器是一种数据共享机制,可以在不同的节点之间共享数据,话题通信与服务通信是在不同的节点之间传递数据的,三者是ROS中最基础也是应用最为广泛的通信机制。可以概括为: 两个节点通过话题关联到一起,并使用某种类型的数据载体实现数据传输。二者的实现流程是比较。原创 2024-01-17 22:18:59 · 1055 阅读 · 0 评论 -
ROS学习笔记8——实现ROS通信时的常用命令
机器人系统中启动的节点少则几个,多则十几个、几十个,不同的节点名称各异,通信时使用话题、服务、消息、参数等等都各不相同,一个显而易见的问题是: 当需要自定义节点和其他某个已经存在的节点通信时,如何获取对方的话题、以及消息载体的格式呢?ROS 提供了一些实用的命令行工具,可以用于获取不同节点的各类信息。原创 2024-01-17 16:23:09 · 517 阅读 · 0 评论 -
ROS学习笔记7——ROS通信机制3(参数服务器)
参数服务器是以实现的,参数服务器在ROS中主要用于实现不同节点之间的数据共享。参数服务器相当于是独立于所有节点的一个公共容器,可以将数据存储在该容器中,被不同的节点调用,当然不同的节点也可以往其中存储数据。参数服务器,一般适用于存在数据共享的一些应用场景。参数服务器不是为高性能而设计的,因此最好用于存储静态的非二进制的简单数据。原创 2024-01-17 13:23:42 · 783 阅读 · 0 评论 -
ROS学习笔记6——ROS通信机制2(服务通信)
服务通信中,客户端提交两个整数至服务端,服务端求和并响应结果到客户端,请创建服务器与客户端通信的数据载体。在功能包下创建srv目录,添加文件AddInts.srv.原创 2024-01-14 22:40:24 · 1346 阅读 · 1 评论 -
ROS学习笔记5——话题通信自定义msg
在 ROS 通信协议中,数据载体是一个较为重要组成部分,ROS 中通过 std_msgs 封装了一些原生的数据类型,比如:String、Int32、Int64、Char、Bool、Empty.... 但是,这些数据一般只包含一个 data 字段,结构的单一意味着功能上的局限性,当传输一些复杂的数据,比如: 相机的信息... std_msgs 由于描述性较差而显得力不从心,这种场景下可以使用自定义的消息类型。原创 2024-01-14 18:26:18 · 2004 阅读 · 1 评论 -
ROS学习笔记4——ROS通信机制(话题通信)
ROS Master 负责保管 Talker 和 Listener 注册的信息,并匹配话题相同的 Talker 与 Listener,帮助 Talker 与 Listener 建立连接,连接建立后,Talker 可以发布消息,且发布的消息会被 Listener 订阅。ROS Master 会根据注册表中的信息匹配Talker 和 Listener,如果Talker和Listener的话题一致,就会 Listener 发送 Talker 的 RPC 地址信息。4、上述实现流程是做好封装的,可以直接调用。原创 2024-01-14 15:07:10 · 2168 阅读 · 1 评论 -
ROS学习笔记3——ROS文件系统相关命令
rospack find 包名 //查找某个功能包是否存在,如果存在返回安装路径。catkin_create_pkg 自定义包名 依赖包 //创建新的ROS功能包。sudo apt install xxx //安装 ROS功能包。rosed 包名 文件名 //修改功能包文件。rosls 包名 //列出某个包下的文件。roscd 包名 //进入某个功能包。//运行指定的ROS节点。rosout 日志节点。原创 2024-01-13 23:08:25 · 352 阅读 · 1 评论 -
ROS学习笔记2——launch文件
一个程序中可能需要启动多个节点,比如ROS内置的小乌龟程序,实现这个案例需要开启roscore节点、小乌龟可视化节点、键盘控制节点,显然是一个很繁琐的方法。launch文件的根标签,每个launch文件都需要有这样一个根标签,并且文件的所有内容必须包含在这个标签内,只要i有这样一个根标签,运行launch文件时,就会开启roscore。launch中的标签远不止这些,并且launch文件在ros工程中使用非常频繁,在后续的学习中,慢慢完善更新标签及其作用。pkg、type、name是三个最主要的参数。原创 2024-01-13 22:31:43 · 2228 阅读 · 1 评论 -
ROS学习笔记1——用ros输出helloworld
add_executable(节点名称 src/可执行cpp文件在功能包下的路径.cpp)1、选定 src 右击 ---> create catkin package。2、可以在vscode中新建终端,目录会自动定位在该代码的工作空间下。此时可以用ctrl + shift + B 测试能否成功编译。在功能包的src下创建cpp文件,注意cpp文件命名规范。快捷键 ctrl + shift + B 调用编译,点击。1、ctrl + shift + B 快捷键进行编译。4、开一个新终端,刷新环境变量。原创 2024-01-13 17:01:09 · 1091 阅读 · 2 评论 -
鱼香ros一键安装
【代码】鱼香ros一键安装。原创 2024-01-02 18:10:15 · 1003 阅读 · 1 评论