【手把手做ROS2机器人系统开发二】熟悉ROS2基本命令

这篇具有很好参考价值的文章主要介绍了【手把手做ROS2机器人系统开发二】熟悉ROS2基本命令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【手把手做ROS2机器人系统开发二】熟悉ROS2基本命令

目录

【手把手做ROS2机器人系统开发二】熟悉ROS2基本命令

一、上讲回顾

二、ROS2核心命令讲解

1、daemon-各种守护进程相关的子命令

2、node-各种节点进程相关的子命令

 3、pkg-各种包进程相关的子命令

 4、run运行特定软件包的可行性文件

5、topic各种话题进程相关的子命令

6、security各种安全进程相关的子命令

7、service各种服务进程相关的子命令

7、ROS2参数

8、ROS2操作Action

 9、ROS2消息日志

10、ROS2自启动节点launch

11、数据记录和播放


一、上讲回顾

        在上一讲开发环境搭建中,我们讲解了如何搭建Ubuntu系统环境和ROS2开发运行环境。

1.Ubuntu系统安装

2.ROS2系统环境安装

二、ROS2核心命令讲解

1、daemon-各种守护进程相关的子命令

查看帮助:

ros2 daemon -h

启动daemon

ros2 daemon start

查看状态

ros2 daemon status

停止daemon

ros2 daemon stop

守护进程用途:按照字面意思起到守护用途。类似ros1 master中心节点功能,用于减少节点之间发现的时间

2、node-各种节点进程相关的子命令

启动一个节点用于测试

ros2 run demo_nodes_cpp talker

输出节点列表:

ros2 node list

查看节点信息

ros2 node info /talker

 3、pkg-各种包进程相关的子命令

创建功能包命令:指定包名、编译方式、依赖项、节点名等

命令格式:

ros2 pkg create RobotDotTest --build-type ament_python --node-name RobotDotTest_node --dependencies rclpy std_msgs sensor_msgs --license Apache-2.0
命令 说明
ros2 pkg create ROS2功能包创建命令
RobotDotTest 所建功能包名称
--build-type ament_python 指定编程语言
-node-name RobotDotTest_node 节点名称
--dependencies rclpy std_msgs sensor_msgs 指定依赖模块,rclpy是python编程必选的, std_msgs和sensor_msgs是我们要用的消息模块,也可以不指定手动配置
--license Apache-2.0

指定license

Apache-2.0
BSL-1.0
BSD-2.0
BSD-2-Clause
BSD-3-Clause
GPL-3.0-only
LGPL-3.0-only
MIT
MIT-0

查看

---------------------------------------

 查看包列表

ros2 pkg list

ros2使用,手把手做ROS2机器人系统开发,ROS2,ROS2基本命令,service,security,topic

 executables输出特定于软件包的可执行文件列表:

ros2 pkg executables turtlesim

ros2使用,手把手做ROS2机器人系统开发,ROS2,ROS2基本命令,service,security,topic

 prefix 输出包的前缀路径:

ros2 pkg prefix turtlesim 

ros2使用,手把手做ROS2机器人系统开发,ROS2,ROS2基本命令,service,security,topic

 4、run运行特定软件包的可行性文件

ros2 run turtlesim turtlesim_node
ros2 run [-h] [--prefix PREFIX] package_name executable_name ...  
package_name     软件包名称
executable_name  执行名称
argv             执行对应参数

5、topic各种话题进程相关的子命令

usage: ros2 topic [-h] [--include-hidden-topics]

  bw     显示使用话题带宽
  delay  通过header中的时间戳计算消息延迟
  echo   输出话题信息
  find   按消息类型查找相关话题
  hz     显示话题平均发布频率
  info   显示话题消息类型,订阅者数量,发布者数量
  list   列出域内可使用的主题列表
  pub    发布一个话题消息
  type   打印话题数据类型

list   列出域内可使用的主题列表

ros2 topic list

info   显示话题消息类型,订阅者数量,发布者数量

ros2 topic info /turtle1/pose

type   打印话题数据类型

ros2 topic type /turtle1/pose

find   按消息类型查找相关话题

ros2 topic find turtlesim/msg/Pose

pub    发布一个话题消息

ros2 topic pub control_node/action geometry_msgs/msg/TwistStamped "{header: {stamp:{sec: 0, nanosec: 0}, frame_id: control_node}, twist: {linear: {x: 0.3, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}}"

echo   输出话题信息

ros2 topic echo /control_node/action

 hz     显示话题平均发布频率

ros2 topic hz /control_node/action

打开节点主题显示图形

rqt_graph

打开主题列表

ros2 topic list -t

查看主题数据

ros2 topic echo <topic_name>

ros2 topic echo /turtle1/cmd_vel

查看主题信息

ros2 topic info /turtle1/cmd_vel

查看主题数据结构

ros2 interface show geometry_msgs/msg/Twist

发布主题数据消息

ros2 topic pub --once /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.8}}"

ros2 topic pub --rate 1 /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.8}}"

注:--once 单次发送   --rate 1 循环发送频率1HZ

查看主题信息

ros2 topic echo /turtle1/pose

查看主题发送速率

ros2 topic hz /turtle1/pose

6、security各种安全进程相关的子命令

  create_enclave      Create enclave

  create_key          创建秘钥

  create_keystore     创建秘钥库

  create_permission   创建许可

  generate_artifacts  从身份和策略文件列表中生成密钥和许可文件

  generate_policy     Generate XML policy file from ROS graph data

  list_enclaves       List enclaves in keystore

  list_keys           DEPRECATED: List enclaves in keystore. Use list_enclaves instead

7、service各种服务进程相关的子命令

call调用服务

list列出所有的服务

ros2 service list

ros2使用,手把手做ROS2机器人系统开发,ROS2,ROS2基本命令,service,security,topic

服务基于呼叫->应答模型

查看服务列表

ros2 service list

ros2 service list -t

查看服务类型

ros2 service type <service_name>

ros2 service type /clear

查看服务查找

ros2 service find <type_name>

ros2 service find std_srvs/srv/Empty

服务展示显示

ros2 interface show <type_name>.srv

ros2 interface show std_srvs/srv/Empty.srv

ros2 interface show turtlesim/srv/Spawn

服务调用call

ros2 service call <service_name> <service_type> <arguments>

ros2 service call /clear std_srvs/srv/Empty

ros2 service call /spawn turtlesim/srv/Spawn "{x: 2, y: 2, theta: 0.2, name: 'turtle2'}"

7、ROS2参数

查看参数列表

ros2 param list

ros2参数get

ros2 param get <node_name> <parameter_name>

ros2 param get /turtlesim background_g

ros2 参数set

ros2 param set <node_name> <parameter_name> <value>

ros2 param set /turtlesim background_r 150

ros2参数存储

ros2 param dump <node_name>

ros2 param dump /turtlesim

ros2 参数加载

ros2 param load <node_name> <parameter_file>

ros2 param load /turtlesim ./turtlesim.yaml

ros2 节点启动时加载参数

ros2 run <package_name> <executable_name> --ros-args --params-file <file_name>

ros2 run turtlesim turtlesim_node --ros-args --params-file ./turtlesim.yaml

8、ROS2操作Action

(1)节点信息查看

ros2 node info /turtlesim

ros2 node info /teleop_turtle

(2)查询操作列表

ros2 action list

ros2 action list -t

(3)操作动作信息

ros2 action info /turtle1/rotate_absolute

(4)操作界面显示

ros2 interface show turtlesim/action/RotateAbsolute

(5)发送目标动作

ros2 action send_goal <action_name> <action_type> <values>

ros2 action send_goal /turtle1/rotate_absolute turtlesim/action/RotateAbsolute "{theta: 1.57}"

ros2 action send_goal /turtle1/rotate_absolute turtlesim/action/RotateAbsolute "{theta: -1.57}" --feedback

 9、ROS2消息日志

消息等级:

Fatal消息指示系统将终止以尝试保护自身免受损害。

Error消息指示不一定会损坏系统,但会阻止其正常运行的重大问题。

Warn消息指示可能代表更深层次问题的意外活动或非理想结果,但不会完全损害功能。

Info消息指示事件和状态更新,用于直观验证系统是否按预期运行。

Debug消息详细说明了系统执行的整个分步过程。

启动信息终端

ros2 run rqt_console rqt_console

设置节点启动消息等级

ros2 run turtlesim turtlesim_node --ros-args --log-level WARN

10、ROS2自启动节点launch

执行自动文件

ros2 launch <package_name> <launch_file_name>

ros2 launch <path_to_launch_file>

执行自动文件后接参数

ros2 launch <package_name> <launch_file_name> background_r:=255

ros2 launch <path_to_launch_file> background_r:=255

参考启动文件

<!-- example.launch.xml -->

<launch>

  <!-- args that can be set from the command line or a default will be used -->

  <arg name="background_r" default="0"/>

  <arg name="background_g" default="255"/>

  <arg name="background_b" default="0"/>

  <arg name="chatter_ns" default="my/chatter/ns"/>

  <!-- include another launch file -->

  <include file="$(find-pkg-share demo_nodes_cpp)/launch/topics/talker_listener.launch.py"/>

  <!-- include another launch file in the chatter_ns namespace-->

  <group>

    <!-- push-ros-namespace to set namespace of included nodes -->

    <push-ros-namespace namespace="$(var chatter_ns)"/>

    <include file="$(find-pkg-share demo_nodes_cpp)/launch/topics/talker_listener.launch.py"/>

  </group>

  <!-- start a turtlesim_node in the turtlesim1 namespace -->

  <node pkg="turtlesim" exec="turtlesim_node" name="sim" namespace="turtlesim1"/>

  <!-- start another turtlesim_node in the turtlesim2 namespace      and use args to set parameters -->

  <node pkg="turtlesim" exec="turtlesim_node" name="sim" namespace="turtlesim2">

    <param name="background_r" value="$(var background_r)"/>

    <param name="background_g" value="$(var background_g)"/>

    <param name="background_b" value="$(var background_b)"/>

  </node>

  <!-- perform remap so both turtles listen to the same command topic -->

  <node pkg="turtlesim" exec="mimic" name="mimic">

    <remap from="/input/pose" to="/turtlesim1/turtle1/pose"/>

    <remap from="/output/cmd_vel" to="/turtlesim2/turtle1/cmd_vel"/>

  </node>

</launch>

11、数据记录和播放

建立测试环境

ros2 run turtlesim turtlesim_node

ros2 run turtlesim turtle_teleop_key

建立记录数据存储区域

mkdir bag_files

cd bag_files

选择对应主题信息

ros2 topic list

ros2 topic echo /turtle1/cmd_vel

数据记录命令

ros2 bag record <topic_name>

ros2 bag record /turtle1/cmd_vel

记录多个主题信息

ros2 bag record -o subset /turtle1/cmd_vel /turtle1/pose

查看记录信息

ros2 bag info <bag_file_name>

ros2 bag info subset

播放记录信息

ros2 bag play subset

ros2 topic hz /turtle1/pose

本节文章到此结束,谢谢大家阅读。。。 文章来源地址https://www.toymoban.com/news/detail-629498.html

到了这里,关于【手把手做ROS2机器人系统开发二】熟悉ROS2基本命令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 手把手教你搭建微信聊天机器人系列(三):搭建对接文心一言(ERNIE-Bot大模型)接口的微信聊天机器人

            上一章介绍了eggjs+wechaty搭建一个简单的微信聊天机器人,只是实现了简单的回复,这一章我们将对接ERNIE-Bot接口,实现智能回复。         我们在上一章代码基础上进行调整,首先我们要加入access_token的请求逻辑。第一章我们说过,请求需要使用应用对应的

    2024年02月03日
    浏览(39)
  • 手把手QQ机器人制作教程,根据官方接口进行开发,基于Python语言制作的详细教程(更新中)

    QQ开放平台官方地址:https://q.qq.com/#/app/bot QQ开放平台包含:QQ机器人、QQ小程序、QQ小游戏,我们这边选择QQ机器人。 机器人类型:设置私域机器人或者公域机器人,当然公域机器人对于服务器的要求过高,我们这边选择 私域机器人 进行开发。 特别注意在选择沙箱频道的时候

    2023年04月08日
    浏览(41)
  • ROS2机器人任务级导航仿真系统设计与实现(预告)

    前一篇: ​​​​​ROS2工业机械臂抓取仿真系统设计与实现(预告) ROS2机器人任务级导航仿真系统设计与实现 一、背景与意义 随着机器人技术的不断发展和智能化需求的提高,机器人在各个领域中的应用越来越广泛。其中,机器人导航系统是实现机器人自主移动、完成各

    2024年01月24日
    浏览(34)
  • 手把手教你搭建微信聊天机器人系列(一):文心一言(百度千帆ERNIE-Bot大模型)API测试

            今年年初chatgpt大火,国产gpt文心一言也提供了内测服务,大家可以去访问官网申请体验。文心一言APP上的功能更加强大,可以看这个测评文章。作为程序猿的我们,想接入文心一言的能力,比如开发一个聊天机器人,要怎么做呢?百度在其开发者平台开放了大模

    2024年02月07日
    浏览(37)
  • [工业互联-14]:机器人操作系统ROS与ROS2是如何提升实时性的?

    目录 第1章 简介 第2章 历史 第3章 特点 (1)点对点设计 (2)不依赖编程语言 (3)精简与集成 (4)便于测试 (5)开源 (6)强大的库及社区: (7)通道: (8)工具: (9)强大的库: (10)生态系统: 第4章 ROS的系统架构 第5章 ROS与Linux 5.1 ROS能安装在Linux之上吗? 5.

    2024年02月14日
    浏览(30)
  • RoboMaster EP 实用功能开发(三): 基于树莓派的ROS2机器人系统搭建

    功能: 在树莓派4b上安装ros2系统,引入robomaster sdk,搭建一个基于ROS2的机器人系统,用于ROS系统的学习、开发和实践。 硬件: RobotMaster EP、树莓派4b 系统平台: Ubuntu 20.04、ROS2(Foxy) 开发语言及主要库函数版本:p ython == 3.8,robomaster == 0.1.1.62 一、树莓派4b安装ubuntu20.04  

    2024年02月09日
    浏览(36)
  • 【ROS2机器人入门到实战】ROS2话题入门

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 话题是ROS2中最常用的通信方式之一,话题通信采取的是订阅发布

    2024年02月04日
    浏览(45)
  • 【ROS2机器人入门到实战】ROS2接口介绍

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 本节小鱼将会带你学习认识一个新的概念,叫做interface,即接口。

    2024年02月05日
    浏览(33)
  • 【ROS2机器人入门到实战】ROS2节点介绍

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn ROS2中每一个节点也是只负责一个单独的模块化的功能(比如一个

    2024年02月06日
    浏览(36)
  • 【ROS2机器人入门到实战】ROS2服务入门

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 大家好,帅鱼又蹬蹬蹬的游回来了。本节小鱼将要带大家一起了解

    2024年02月07日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包