ros2常用功能

本文介绍了ROS2中的关键功能,包括包创建、colcon命令的使用、symlink-install选项、rosdepc国内版本的依赖管理、参数和动态配置、QoS策略设置、以及GDB回溯调试。还提及了新概念如生命周期节点、组合和错误代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ros2常用功能

创建包

ros2 pkg create --build-type ament_cmake --node-name my_node my_package --license Apache-2.0

colcon

命令使用tab补齐

echo "source /usr/share/colcon_argcomplete/hook/colcon-argcomplete.bash" >> ~/.bashrc

常用便捷命令

  • --packages-up-to builds the package you want, plus all its dependencies, but not the whole workspace (saves time)

  • --symlink-install saves you from having to rebuild every time you tweak python scripts

  • --event-handlers console_direct+ shows console output while building (can otherwise be found in the log directory)

  • --packages-select my_package

参数、launch文件修改后无需重新build

启用--symlink-install后将不会把文拷贝到install目录,而是通过创建符号链接的方式。修改参数和launch文件后无需重新编译程序。

the option --symlink-i

### ROS2 常用命令及使用方法 #### 创建功能包 为了创建一个新的ROS2功能包,可以利用`ros2 pkg create`命令。此命令允许指定编译方式以及依赖项等内容。例如,要创建一个名为`example_package`的功能包,并设置其构建类型为Python,则可执行如下命令[^3]: ```bash ros2 pkg create --build-type ament_python example_package ``` #### 克隆特定分支的仓库 当需要从GitHub克隆某个项目并指定期望获取的具体版本或分支时,可以通过附加`-b`参数给`git clone`命令实现这一目标。比如想要下载`examples`库中的`galactic`分支到本地路径下的`src/examples`目录中,应运行下面这条语句[^2]: ```bash git clone https://github.com/ros2/examples src/examples -b galactic ``` #### 启动节点与查看状态 启动单个节点可以直接通过调用该节点对应的可执行文件完成。而监控当前系统内所有活动节点的状态则需要用到`ros2 node list`命令。这有助于开发者了解哪些进程正在运行以及它们之间的通信情况。 对于更详细的节点信息查询,如订阅的话题、发布的服务等,有专门设计好的子命令可供选用,像这样: ```bash ros2 node info /node_name ``` 上述命令会打印出关于指定名称节点的信息概览[^1]。 #### 发布话题消息 如果希望向某话题发布一条测试消息,那么就可以借助于`ros2 topic pub`这个便捷工具来做这件事。它支持多种数据类型的序列化对象发送操作,只需按照提示输入相应字段即可达成目的。举个例子来说,假设有一个叫作`chatter`的标准字符串型话题,现在打算往里面塞入一段文字内容,那么应该这样做: ```bash ros2 topic pub /chatter std_msgs/msg/String "data: 'hello world'" ``` #### 订阅话题监听器 相反地,在另一端设立接收者来捕获来自选定主题的数据流也是十分必要的。为此提供了`ros2 topic echo`指令帮助我们轻松建立这样的连接关系。只要给出感兴趣的主题名就能实时跟踪最新到达的消息体了。 ```bash ros2 topic echo /chatter ``` #### 查看可用的服务列表 除了常规的消息传递机制之外,ROS还定义了一套完善的服务接口体系用于处理请求响应式的交互逻辑。因此有必要掌握如何罗列现有的远程过程调用选项——即运用`ros2 service list`来进行检索工作。 进一步深入探究每一个单独服务的操作细节同样重要,这时就要依靠`ros2 service type`配合具体的service id才能获得完整的签名描述。 ```bash ros2 service type /add_two_ints ``` 最后还可以尝试实际发起一次RPC呼叫看看效果怎样,这就得靠`ros2 service call`加上完整的目标地址连同所需携带的有效载荷一起构成了整个动作表达式。 ```bash ros2 service call /add_two_ints example_interfaces/srv/AddTwoInts "{a: 1, b: 2}" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值