小鱼ros学习记录2

**

一.OOP程序过程

p24
**
1.创建空间/src mkdir -p town_ws/src
2.空间src目录下,创建功能包
ros2 pkg create village_li --build-type ament_python --dependencies rclpy
#功能包的作用生成基础性文件,生成和。
3.在–init–同级别目录下生成 具体文件名称li4.py
4. 1. 导入库文件 #文件最开始
2. 初始化客户端库 #rclpy.init(args=args) # 初始化客户端
3. 新建节点对象 通过class创建
4. spin循环节点
5. 关闭客户端库
5. set.up文件中,存入节点名字,这里的名字和8的运行有关
6. 在空间目录下进行编译
7. 空间目录下编入环境 source
8.空间目录下 ros2 run 文件上目录 节点

二.使用c来创建一个订阅者节点

1.创建空间/src mkdir -p town_ws/src
2.空间src目录下,创建功能包
ros2 pkg create village_wang --build-type ament_cmake --dependencies rclcpp
3.在village_wang目录下src中,创建文件cpp
4. 1.加入一个库
2.初始化库
3.创建节点
4.回旋节点,等待操作
5.关闭节点
5.txt文件中,最后加入
add_executable(wang2_node src/wang2.cpp)#wang2 路径文件
ament_target_dependencies(wang2_node rclcpp) wang2 依赖的库
install(TARGETS
wang2_node
DESTINATION lib/${PROJECT_NAME}
)
6.在工作空间下编译
7.source一下环境(同样工作空间下)
8.空间目录下 ros2 run 文件上目录 节点

三.话题和服务机制

p29
参数和action是基于话题和服务,所以学会这个就够了。

话题机制:.
话题名字是关键,订阅接口类型要相同,接受也是字符串来接受;
一个节点(指的是一个个具体的py或者cpp文件)可以发布或者订阅很多话题,一个话题同样可以有很多作者或者节点
CLI工具:
1.rqt_graph 通过这个指令来查看系统怎么运行
2. ros topic -h 去看带宽、速度、列表、类型、打印时时话题、
发布者创建
步骤:
‘’’
编写发布者的过程
1.导入消息类型
2.声明并创建发布者
3.编写发布逻辑发布数据
‘’’
通过class继承node的定义的方式来直接引用node.create_pub来定义
pub(消息类型,话题名称,qos默认设置)
回调函数

订阅者创建
1.导入订阅的话题接口类型
2.创建订阅回调函数
3.声明并创建订阅者
4.编写订阅回调处理逻辑


四.ros2接口介绍和服务介绍


接口就是一种数据类型(或者说是标准)比如:string和Unit32等等八种
接口可以解决不同编程语言的中定义不一样的困难。
ros2为我们定义了大量的拿来就用的接口
因此基本不需要自定义接口
除非特殊情况下:

话题接口:
服务接口
动作接口:基本不用

如何自定义接口:
1.创建一个接口功能包
2.新建srv文件夹,并在文件夹下新建XXX.srv
3.在xxx.srv下编写服务接口内容并保存
4.在CmakeLists.txt添加依赖和srv文件目录
5.在package.xml中添加xxx.srv所需的依赖
6.编译功能包即可生成python与c++头文件

20230516这天,反正接口这个功能包没有复现出来
到时候再说吧。目前来讲先跳过去
服务机制
话题属于单项的大量的传输,
服务机制属于双向的。
注意事项:同一个服务仅仅有一个节点
同一个服务可以被多个节点调用

创建服务机制的步骤:
小鱼老师链接
1.在导入服务接口
2.创建服务端回调函数(create_serve())
3.声明并创建服务端
4.编写回调函数的处理逻辑

xml文件中,指明了谁对谁的依赖关系,本目录下的功能包依赖ament

创创建客户端
1.在导入服务接口
2.创建接受回调函数(create_serve())
3.编写回调函数的处理逻辑
4.调用客户端发送请求

CLI
1可以通过服务查接口
2.可以通过接口哪些服务

参数和action

参数:键值对构成,基于服务实现的
action:基于服务和话题实现的
这两个基本不会用

launch

在实际应用的时候,肯定需要打开很多节点,因此需要launch来管理,从而使得节点联合起来。

RQT

命令:rqt
通过插件的方式来实现查看:进程,发布者,订阅者,日志。

rviz2

数据:图像、三维、地图、模型
通过已有的数据进行可视化数据

Gazebo

用于模拟真实环境产生的数据

最后一点命令行的屁股

ros2 :
就可以看到一堆东西
bag 记录话题 ros2 bag record /话题
ros -h 用来帮助
2.
rqt:插件工具,可以自己编写插件进行操作
3.
rviz2用来显示数据
4.
gazebo程序:
ros2 topic pub /demo/cmd_demo geometry_msgs/msg/Twis“线速度或者角速度”控制小车前进

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值