前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ROS 2 Humble Hawksbill 命令基础

ROS 2 Humble Hawksbill 命令基础

作者头像
zhangrelay
发布2022-05-27 15:02:27
7240
发布2022-05-27 15:02:27
举报
文章被收录于专栏:机器人课程与技术

五个核心

  1. node
  2. topic
  3. service
  4. parameter
  5. action

ros2 -h 用法:ros2 [-h] [--use-python-default-buffering] 调用 `ros2 <command> -h` 以获得更详细的用法。 

ros2 是 ROS 2 的可扩展命令行工具。

选项:   -h, --help 显示此帮助信息并退出   --use-python-default-buffering                         不要在标准输出中强制行缓冲,而是使用 python 默认缓冲,它                         可能会受到 PYTHONUNBUFFERED/-u 的影响,并且取决于 stdout 是否是交互

命令: action 各种动作相关的子命令   bag 各种rosbag相关的子命令   component 各种组件相关的子命令   daemon 各种daemon相关的子命令   doctor 检查 ROS 设置和其他潜在问题   interface 显示有关 ROS 接口的信息   launch 运行启动文件   lifecycle  各种生命周期相关的子命令   multicast 各种多播相关子命令 node 各种节点相关的子命令 param 各种 param 相关的子命令   pkg 各种包相关的子命令 run 运行包特定的可执行文件   security 各种与安全相关的子命令 service 各种服务相关的子命令 topic 各种与主题相关的子命令   wtf 使用 `wtf` 作为 `doctor` 的别名

  调用 `ros2 <command> -h` 以获得更详细的用法。


node

标准用法:

ros2 run <package_name> <executable_name>

可以查阅帮助-h

用法:ros2 run [-h] [--prefix PREFIX] package_name executable_name ...

运行包特定的可执行文件

位置参数:    package_name ROS 包的名称    executable_name 可执行文件的名称    argv 将任意参数传递给可执行文件

选项:    -h, --help 显示此帮助信息并退出    --prefix PREFIX 前缀命令,应该在可执行文件之前。 如果命令必须用引号括起来                     包含空格(例如 --prefix 'gdb -ex run --args')。

节点重命名:

ros2 run turtlesim turtlesim_node --ros-args --remap __node:=my_turtle 

ros2 node

用法:ros2 node [-h] 调用 `ros2 node <command> -h` 以获得更详细的用法。 ...

各种节点相关的子命令

选项:    -h, --help 显示此帮助信息并退出

命令:    info 输出节点信息    list 输出可用节点列表

   调用 `ros2 node <command> -h` 以获得更详细的用法。

topic

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}}"

如果没有接触过,那么这条指令如何掌握?

ros2 topic -h 用法:ros2 topic [-h] [--include-hidden-topics] 调用 `ros2 topic <command> -h` 以获得更详细的用法。 ...

各种主题相关的子命令

选项:   -h, --help 显示此帮助信息并退出   --include-hidden-topics                         也考虑隐藏的主题

命令:   bw 显示主题使用的带宽   delay 从标题中的时间戳显示主题的延迟   echo 从一个主题输出消息   find 输出给定类型的可用主题列表   hz 将平均发布率打印到屏幕   info 打印有关主题的信息   list 输出可用主题的列表   pub 向主题发布消息   type 打印主题的类型

调用 `ros2 topic <command> -h` 以获得更详细的用法。

ros2 topic pub -h 用法:ros2 topic pub [-h] [-r N] [-p N] [-1 | -t TIMES] [-w WAIT_MATCHING_SUBSCRIPTIONS] [--keep-alive N]                       [-n NODE_NAME]                       [--qos-profile {unknown,system_default,sensor_data,services_default,parameters,parameter_events,action_status_default}]                       [--qos-depth N] [--qos-history {system_default,keep_last,keep_all,unknown}]                       [--qos-reliability {system_default,reliable,best_effort,unknown}]                       [--qos-durability {system_default,transient_local,volatile,unknown}]                       主题名称消息类型 [值]

向主题发布消息

位置参数:   topic_name 要发布到的 ROS 主题的名称(例如 '/chatter')   message_type ROS 消息的类型(例如 'std_msgs/String')   values 以 YAML 格式填充消息的值(例如 'data: Hello World'),否则                         消息将使用默认值发布

选项:   -h, --help 显示此帮助信息并退出   -r N, --rate N 以赫兹为单位的发布速率(默认值:1)   -p N, --print N 仅打印每 N 条已发布的消息(默认值:1)   -1, --once 发布一条消息并退出   -t TIMES,--times                         发布此次数然后退出   -w WAIT_MATCHING_SUBSCRIPTIONS, --wait-matching-subscriptions WAIT_MATCHING_SUBSCRIPTIONS                         等到找到指定数量的匹配订阅。使用时默认为 1                         “-1”/“--once”/“--times”,否则默认为0。   --keep-alive N 在最后一个消息后保持发布节点活动 N 秒(默认值:0.1)   -n NODE_NAME, --node-name NODE_NAME                         创建的发布节点名称   --qos-profile {unknown,system_default,sensor_data,services_default,parameters,parameter_events,action_status_default}                         要发布的服务质量预设配置文件)   --qos-depth N 要发布的队列大小设置(覆盖 --qos-profile 选项的深度值)   --qos-history {system_default,keep_last,keep_all,unknown}                         要发布的样本设置的历史记录(覆盖 --qos-profile 选项的历史记录值,                         默认值:keep_last)   --qos-reliability {system_default,reliable,best_effort,unknown}                         要发布的服务质量可靠性设置(覆盖 --qos- 的可靠性值                         配置文件选项,默认值:可靠)   --qos-durability {system_default,transient_local,volatile,unknown}                         要发布的服务质量持久性设置(覆盖 --qos- 的持久性值                         配置文件选项,默认值:transient_local)

service

学习方法类似topic。

ros2 service -h

ros2 interface -h

parameter

ros2 param -h

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

例如:

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

action

ros2 action -h

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

例如:

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

源码阅读也非常重要:

代码语言:javascript
复制
 // Copyright 2018 Open Source Robotics Foundation, Inc.
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
 //     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing, software
 // distributed under the License is distributed on an "AS IS" BASIS,
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
  
 #ifndef RCL__REMAP_H_
 #define RCL__REMAP_H_
  
 #include "rcl/allocator.h"
 #include "rcl/arguments.h"
 #include "rcl/macros.h"
 #include "rcl/types.h"
 #include "rcl/visibility_control.h"
  
 #ifdef __cplusplus
 extern "C"
 {
 #endif
  
 struct rcl_remap_impl_t;
  
 typedef struct rcl_remap_t
 {
   struct rcl_remap_impl_t * impl;
 } rcl_remap_t;
  
 RCL_PUBLIC
 RCL_WARN_UNUSED
 rcl_remap_t
 rcl_get_zero_initialized_remap(void);
  
 // TODO(sloretz) add documentation about rostopic:// when it is supported
  
 RCL_PUBLIC
 RCL_WARN_UNUSED
 rcl_ret_t
 rcl_remap_topic_name(
   const rcl_arguments_t * local_arguments,
   const rcl_arguments_t * global_arguments,
   const char * topic_name,
   const char * node_name,
   const char * node_namespace,
   rcl_allocator_t allocator,
   char ** output_name);
  
 // TODO(sloretz) add documentation about rosservice:// when it is supported
  
 RCL_PUBLIC
 RCL_WARN_UNUSED
 rcl_ret_t
 rcl_remap_service_name(
   const rcl_arguments_t * local_arguments,
   const rcl_arguments_t * global_arguments,
   const char * service_name,
   const char * node_name,
   const char * node_namespace,
   rcl_allocator_t allocator,
   char ** output_name);
  
  
 RCL_PUBLIC
 RCL_WARN_UNUSED
 rcl_ret_t
 rcl_remap_node_name(
   const rcl_arguments_t * local_arguments,
   const rcl_arguments_t * global_arguments,
   const char * node_name,
   rcl_allocator_t allocator,
   char ** output_name);
  
  
 RCL_PUBLIC
 RCL_WARN_UNUSED
 rcl_ret_t
 rcl_remap_node_namespace(
   const rcl_arguments_t * local_arguments,
   const rcl_arguments_t * global_arguments,
   const char * node_name,
   rcl_allocator_t allocator,
   char ** output_namespace);
  
  
 RCL_PUBLIC
 RCL_WARN_UNUSED
 rcl_ret_t
 rcl_remap_fini(
   rcl_remap_t * remap);
  
 #ifdef __cplusplus
 }
 #endif
  
 #endif  // RCL__REMAP_H_
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档