【ROS】ros入门21讲(下)

前言:上文讲了话题的通信机制,接下来是ROS的第二种重要通信机制—服务。
【ROS】ros学习21讲(上)

客户端请求,相当于开关,一次开,再一次关,控制运动的状态。服务端应答。

ROS

七:客户端Client的编程实现

7.1 如何实现一个客户端:
1.初始化ROS节点
2.创建一个Client实例
3.发布服务请求数据
4.等待Server处理之后的应答结果
turtle_spawn.cpp

7.2 配置客户端代码编译规则
配置CMakeLists.txt中的编译规则:在learning_service的CMakeLists.txt 中设置需要编译的代码和生成的可执行文件,设置链接库,放在##Install##上面

add_executable(turtle_spawn src/turtle_spawn.cpp)
target_link_libraries(turtle_spawn ${catkin_LIBRARIES})

7.3 编译并运行客户端

cd ~/catkin_ws
catkin_make
roscore
rosrun turtlesim turtlesim_node
rosrun learning_service turtle_spawn

发布者运行后,可在海龟终端界面看到出现了第二个海龟。

八:服务端Server的编程实现

8.1 如何实现一个服务端:
1.初始化ROS节点
2.创建Server实例
3.循环等待服务请求,进入回调函数
4.在回调函数中完成服务功能的处理,并反馈应答数据
turtle_command_server.cpp

8.2 配置客户端代码编译规则
配置CMakeLists.txt中的编译规则:在learning_service的CMakeLists.txt 中设置需要编译的代码和生成的可执行文件,设置链接库,放在##Install##上面

add_executable(turtle_command_server src/turtle_command_server.cpp)
target_link_libraries(turtle_command_server ${catkin_LIBRARIES})

8.3 编译并运行客户端

cd ~/catkin_ws
catkin_make
roscore
rosrun turtlesim turtlesim_node
rosrun learning_service turtle_command_server
rosservice call /turtle_command "{}"

rosservice call运行后,可在海龟终端界面看到海龟开始圆周运动,再次运行rosservice call海龟则停止运动。

九:服务数据的定义与使用

自定义服务数据
9.1 定义src文件; 在learning service的目录下创建文件夹srv,再创建文件Person.srv 。
Person.src

string name
uint8 sex
uint8 age
uint8 unknown=0
uint male = 1
uint female = 2
---
string result

9.2 在package.xml中添加功能包依赖

<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>

9.3 在CMakeLists.txt添加编译选项

find_package(... message_generation)

add_service_files(FILES Person.src)
generate_messages(DEPENDENCIES std_msgs)

catkin_package(... message_runtime)

9.4 编译生成语言相关文件(catkin工作空间的根目录下编译)
9.5 写client和server的.cpp文件,按照之前的海龟步骤进行
person_client.cpp, person_server.cpp
CMakeLists.txt中编译规则分别多一步

add_dependencies(Person_server ${PROJECT_NAME}_gencpp)
add_dependencies(Person_client ${PROJECT_NAME}_gencpp)

编译并运行:

catkin_make
roscore
rosrun learning_service person_server
rosrun learning_service person_client

十:参数的使用与编程方法

learning_parameter.cpp
10.1 初始化ROS节点
10.2 get函数获取参数
10.3 set函数设置参数

十一. ROS中的坐标管理系统

11.1 小海龟跟随实验

sudo apt-get install ros-kinetic-turtle-tf
roslaunch turtle_tf turtle_tf_demo.launch
rosrun turtlesim turtle_teleop_key
rosrun tf view_frames

可视化工具

rosrun rviz rviz -d 'rospack find turtle_tf' /rviz/turtle_rviz.rviz

十二. launch启动文件的使用方法

launch可自动启动 ROS master (XML标签格式)

十三. 常用可视化工具的使用

Qt工具箱
13.1 日志输出工具 rqt_console
13.2 计算图可视化工具 rqt_graph
13.3 数据绘图工具 rqt_plot
13.4 图像渲染工具 rqt_image_view
Rviz工具箱 三维可视化工具
roscore
rosrun rosrviz rosrviz
Gazebo 三维物理仿真平台

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "ROS2入门21"是一套图文教程,以简单易懂的方式介绍ROS2的基本概念和操作。通过这套教程,读者可以了解Ros2的工作原理,学习如何使用ROS2搭建机器人系统。教程分为21个部分,每个部分解一个话题,包括ROS2的体系结构,节点,Topic,服务等。对于初学者来说,这套教程是学习ROS2的良好入门材料。在学习过程中,读者可以循序渐进地学习相关知识,通过实际操作,了解ROS2的核心技术。教程还提供了大量的示例代码和操作指南,帮助读者更好地理解ROS2的操作过程。此外,教程也提供了一些高级内容的介绍,如如何自动部署ROS2应用,如何实现ROS2的多机通信等。总体而言,ROS2入门21图文教程是一套非常实用的教程,适合初学ROS2的读者使用。学习这套教程可以让读者了解ROS2在机器人系统中的应用,从而更好地掌握相关技能。 ### 回答2: 如今,ROS成为了机器人领域调试、开发和测试的标准,ROS 2是其最新版本,它主要带来了更快的性能、更好的可靠性和更好的可扩展性等特性。 为了帮助大家更快、更好地学习ROS 2,本着开放、分享、合作的精神,一位名为vxy10的作者为我们制作了《ROS 2入门21图文教程》。 该教程分为多个章节,涵盖了ROS 2的基础知识、常用工具的使用以及一些实例案例的解等内容。 首先,作者详细阐述了ROS 2的基础概念,例如节点、话题、服务、参数、行为等,为读者提供了一个清晰的整体认识。然后,课程解了ROS 2常用的工具和函数,包括Rviz、rostopic、rosnode、rqt等,为新手提供了一个快速入门的方式。接着,课程分别解了一些实例案例,例如如何使用 ROS 2进行控制机器人、如何使用ROS 2进行机器人的对话等,为读者提供了一个更加深入的了解。 本教程不仅提供了详尽的代码示例,还有丰富精美的图例,能够帮助读者更好地理解各种概念和示例。此外,每个章节都配有习题和答案,帮助读者巩固所学知识,提高学习效率。 总之,《ROS 2入门21图文教程》具有系统性、实用性和互动性等特点,对于想要学习ROS 2的读者来说,是一份非常宝贵的资源。 ### 回答3: ROS2入门21图文教程是一篇非常详细的教程,旨在帮助初学者了解ROS2的基本知识和使用方法。这个教程分为21个章节,每个章节都覆盖了ROS2的不同方面和主题。 在第一章中,教程简要介绍了ROS2的概念和优点,让读者了解ROS2的用途和处理能力。第二章解了ROS2的安装和设置,包括环境变量的配置和ROS2节点的启动方式。第三章介绍了ROS2的工具,包括rqt图形界面,rviz可视化环境等,这些工具是ROS2开发的关键组成部分。第四章到第十二章解了ROS2的核心概念,包括消息传递机制、文件结构、包和节点等,这些都是ROS2开发的重要知识点。第十三章到第十五章解了ROS2服务,包括服务器和客户端的创建和使用。第十六章到第十九章解了ROS2参数服务器和节点名称,涉及到ROS2开发中的重要概念和工具。最后两章解了ROS2的调试方式和使用ROS2与OpenCV进行通信的方法。 整个教程详细、生动、易于理解,其中配图和代码示范也让读者更好地理解和操作ROS2。对于初学者来说,这个教程是入门ROS2的一份非常好的材料,不仅涵盖了大部分基础知识和技能,而且通过大量实例的演示,让读者能够更好地掌握ROS2的使用方法。所以,这个教程是初学ROS2的开发者们不可多得的宝贵资源。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值