一、ros2cli 相关命令无法补全的问题
可以安装以下软件包解决
sudo apt-get install python3-argcomplete rosbash
二、ros2 topic pub /topic message_type “message…” 无法补全
这个问题是通过不断的敲击 Tab
键,可以补全 topic 名字以及消息类型部分,但是 message
部分始终不能补全,
可以使用以下方式解决:
- 先使用
Tab
键补全能够补全的部分,再继续按Tab
键:显示以下提示
root@station:~# ros2 topic pub /talker sensor_msgs/msg/LaserScan
--keep-alive
--node-name
--once
--print
--qos-depth
--qos-durability
--qos-history
--qos-profile
--qos-reliability
--rate
--times
-1
-n
-p
-r
-t
header:\^J\ \ stamp:\^J\ \ \ \ sec:\ 0\^J\ \ \ \ nanosec:\ 0\^J\ \ frame_id:\ \'\'\^Jangle_min:\ 0.0\^Jangle_max:\ 0.0\^Jangle_increment:\ 0.0\^Jtime_increment:\ 0.0\^Jscan_time:\ 0.0\^Jrange_min:\ 0.0\^Jrange_max:\ 0.0\^Jranges:\ []\^Jintensities:\ []\
- 可以看到最后一行有提示
sensor_msgs/msg/LaserScan
的 message 字段是以header
开头的部分,此时终端继续输入"header
然后继续按Tab
键
root@station:~# ros2 topic pub /talker sensor_msgs/msg/LaserScan "header # 此时按 `Tab` 键盘
- 可以看到以下数据,message 字段部分补全了:
root@station:~# ros2 topic pub /talker sensor_msgs/msg/LaserScan "header:
stamp:
sec: 0
nanosec: 0
frame_id: ''
angle_min: 0.0
angle_max: 0.0
angle_increment: 0.0
time_increment: 0.0
scan_time: 0.0
range_min: 0.0
range_max: 0.0
ranges: []
intensities: []"
注意: 还有一种情况,message_type 无法识别,检查以下有没有 source 相应的 env 环境变量。