ROS任务汇报

任务1–
对ROS工作空间的目录结构的理解
1.build 目录是构建空间的默认位置,同时cmake和make也是在这里被调用来配置和构建你的软件包

2.devel 目录是开发空间的默认位置, 在安装软件包之前,这里可以存放可执行文件和库

3.src 目录是存放代码的位置,在编写完代码之后,要将代码放入src文件夹

launch文件启动一个节点的语句语法和注意事项
1.对launch的解释:在这里插入图片描述
开头的“<launch 声明表明了这是一个launch文件

从“<group ns=" "到“</group是创建了一个分组,并以namespace 来区分,这样就做到了可以同时启动两个相同名字的节点且不会产生冲突

从“<node pkg="" name="" type="“到”</node 是启动节点并对话题的输入和输出分别重命名

"/launch这一行使得launch文件的XML标签闭合

launch文件的语法
pkg=“节点所在功能包的名称”
type=“节点的可执行文件的名称”
name=“节点运行时的名称”
output="screen"意为将输出放在终端屏幕上
respawn=”true”启动完所有请求启动的节点之后,roslaunch 监测每一个节点,让它们保持正常的运行状态。对于每一个节点,当它终止时,我们可以要求 roslaunch 重新启动它.
required=”true”
当一个必需的节点终止时,roslaunch会做出响应,终止其他所有的节点并退出它自己。
注意: required 和 respawn 不可以同时在单一节点中同时存在

"<param/ <rosparam可设置系统运行中的参数,存储在参数服务器中
param name=“output_frame” value=“odom”/>
• name:参数名
• value:参数值

<remap
重映射ROS计算图资源的命名。

include标签
<include
包含其他launch文件,类似C语言中的头文件包含。
<include file="$(dirname)/other.launch" /
• file:包含的其他launch文件路径

lunch 示例

  • catkin_create_pkg learning_launch
    创建一个launch文件夹,无需依赖
  • 写入.launch文件
  • catkin_make
  • roslaunch **.launch

CmakeList.txt 文件的基本指令的写法和注意事项

  • 创建可执行性文件:
 add——executable(obj_name src/cpp_name.cpp)
  • 为可执行目标添加依赖项到消息生成目标
`add_dependencies(obj_name package_name_cpp)`
  • 使用以下变量来依赖所有必需的目标:
target_link_libraries(obj_name ${catkin_LIBRARIES})
  • 若有自定义类型的msg文件
  • 打开package.xml, 确保它包含以下两行且没有被注释。如果没有,添加进去:
<build_depend>message_generation</build_depend>
  <exec_depend>message_runtime</exec_depend>

注意,在构建时,其实只需要message_generation,而在运行时,我们只需要message_runtime。

  • 在CMakeLists.txt文件中,为已经存在里面的find_package调用添加message_generation依赖项,这样就能生成消息了。
find_package(catkin REQUIRED COMPONENTS
   roscpp
   rospy
   std_msgs
   message_generation
)
  • 确保导出消息的运行时依赖关系:
catkin_package(
  ...
  CATKIN_DEPENDS message_runtime ...
  ...)
  • 找到如下代码块:
  /#FILES
   /#Message1.msg
   /#Message2.msg
 )

将/#Message1.msg修改为自己的msg文件

  • 取消下面几行的注释:
/# generate_messages(
/#   DEPENDENCIES
/#   std_msgs
/# )
  • 若有自定义类型srv文件
  • 先打开package.xml,确保它包含以下两行且没有被注释。如果没有,添加进去:
 <build_depend>message_generation</build_depend>
  <exec_depend>message_runtime</exec_depend>
  • 在CmakeList.txt中,将message_generation添加到COMPONENTS列表中
find_package(catkin REQUIRED COMPONENTS
   roscpp
   rospy
   std_msgs
   message_generation
)

(别被名字迷惑,message_generation对msg和srv都适用)

  • 修改服务字段
/# add_service_files(
/#   FILES
/#   Service1.srv
/#   Service2.srv
/# )
  • 确保导出消息的运行时依赖关系:
catkin_package(
  ...
  CATKIN_DEPENDS message_runtime ...
  ...)
  • 取消下面几行的注释:
/# generate_messages(
/#   DEPENDENCIES
/#   std_msgs
/# )

几种机制的内容和基本语法

  • 话题(topic):
    由一个或者多个节点向话题发布消息,由另外的一个或多个节点从话题接收消息
    在这里插入图片描述
    其中/publisher为向外发布消息的节点,/person_info为话题,/student和/subscriber为从话题获取消息的节点

在这里插入图片描述
上图为运行的效果

  • 服务
    客户端向“服务”发出request并接收response,服务端向“服务”接收request并发出response
    在这里插入图片描述

在这里插入图片描述

  • 参数服务器

为什么要用参数服务器:
1.使用参数服务器配置系统的参数,是全局可见的,方便我们检索和更改系统的配置状态。
2. 参数服务器为ROS节点之间提供了另一种信息交互方式

用cpp实现参数的设置
在这里插入图片描述
实现截图
在这里插入图片描述

  • 动作(action)
    动作是一种问答通信系统,且带有反馈机制,可以使动作在任务过程终止
    动作系统的接口:
  1. goal : 发布目标任务
  2. cancel : 请求取消任务
  3. status : 通知客户端当前状态
  4. feedback : 周期反馈任务运行的监控数据
  5. result : 向客户端发送任务的执行结果,只发布一次

在这里插入图片描述服务端是/fibonacci 客户端是/test_fibonacci

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值