小坷笔记:一些ROS2小细节

自言自语

这篇博客记载了一些小坷自己摸索的ros2的小细节,很基础但对初学者可能有用,毕竟教程一般不教这个。

正文

同一个终端内,source一次就够了,后续只需要colcon build。当然,新建终端之后要重新source

终端里点击“上”就可以得到上一次输入的指令,在第一次指令输入错误需要再输一次又不想一个字一个字敲时很方便

Linux终端中的矩形光标很烦人,非常不直观。我的技巧:矩形的左端的边就是Windows里的光标的位置,这样就很好判断了

终端里的复制粘贴是ctrl+shift+c/v

Ctrl+/快速注释

Alt+上下键可以控制单行代码上下移动

cat和xacro作为命令,后面拼接路径时记得加空格

光标放在某一行,无需选中任何,快速Ctrl c+Ctrl v可以实现一整行的复制粘贴

名字里带有default的变量,表示默认的意思。一般来说,如果不指定,那么就按default来执行。如果指定了,那么按照制定了的来执行

rviz里,红色是x轴,绿色是y轴,蓝色是z轴

xacro或urdf出现报错:Check that :Your XML is well-formed,说明XML格式错误,如果实在找不出错误,那么常见原因:标签未闭合。将单行标签末尾从>改成/>

ros2里常用单词含义
package:功能包
executable:可执行文件
parameters/arguments:参数
sensor:传感器
actuator:执行机构

区分一下传parametersarguments的不同:parameters主要是给节点传参数,而parameters则相当于在命令行后面加内容

有的xacro文件是执行器,有的xacro文件是插件,ros2是怎么判断的?他怎么知道哪个是插件?:XACRO 是一种宏语言,用于简化 URDF 的编写。它通过宏替换生成最终的 URDF 文件,而 ROS 2 和 Gazebo 仅解析最终的 URDF/SDF 文件中的标签。XACRO 文件本身没有“插件”或“执行器”的标记,插件和执行器的定义是通过 URDF/SDF 中的特定标签完成的。关键规则:

  • 标签层级:插件必须定义在特定标签内(如 )。
  • 插件标识:通过 标签显式声明,且必须包含插件的类型或动态库路径(如 filename=”libgazebo_ros2_control.so”)。
  • 上下文语义:Gazebo 或 ros2_control 会根据标签的上下文判断是否需要加载插件。例如:Gazebo 会忽略 标签,只处理 内的插件。
    ros2_control 会忽略 标签,只处理 内的硬件接口。

此篇博客持续更新中