Linux中常用命令行
-
cd
语法: cd <目录路径>
功能:改变工作目录,如没有指定“目录路径”,则回到用户的主目录 -
pwd
语法:pwd
功能:此命令显示出当前工作目录的绝对路径
-
mkdir
语法:mkdir [选项] <目录名称>
功能:创建一个目录/文件夹 -
ls
语法:ls [选项] [目录名称]
功能:列出目录/文件夹中的文件列表
-
gedit
语法:gedit <文件名称>
功能:打开gedit编辑器编辑文件,若没有此文件则会新建
-
mv
语法:mv [选项] <源文件或目录> <目地文件或目录>
功能:为文件或目录改名或将文件由一个目录移入另一个目录中 -
cp
语法:cp [选项] <源文件名称或目录名称> <目的文件名称或目录名称>
功能:把一个文件或目录拷贝到另一文件或目录中,或者把多个源文件复制到目标目录中
-
rm
语法:rm [选项] <文件名称或目录名称…>
功能:删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变
-
sudo
语法:sudo [选项] [指令]
功能:以系统管理员权限来执行指令
ROS2中的命令行
所有操作都集成在一个ros2的总命令中,后边第一个参数表示不同的操作目的,比如node表示对节点的操作,topic表示对话题的操作,具体操作干什么,还可以在后边继续跟一系列参数内容。
示例一
- 运行节点程序
想要运行ROS2中某个节点,可以使用ros2 run 命令进行操作,运行海龟仿真节点和键盘控制节点
$ ros2 run turtlesim turtlesim_node
$ ros2 run turtlesim turtle_teleop_key
- 查看节点信息
$ ros2 node list
如果对某一个节点感兴趣,加上一个info子命令,就可以知道它的详细信息:
$ ros2 node info /turtlesim
- 查看话题信息
查看当前有哪些话题
$ ros2 topic list
想看到某一个话题中的消息数据,加上echo子命令:
$ ros2 topic echo /turtle1/pose
查看某个话题的具体信息
$ ros2 topic info /turtle1/pose
- 发布话题消息
要控制海龟动起来,还可以直接通过命令行发布话题指令:
发布一个话题,-rate 1表示1s发布一个指令 turtle1/cmd_vel 表示速度控制的接口 geometry_msgs/msg/Twist表示数据的形式
$ 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 service call /spawn turtlesim/srv/Spawn "{x: 2, y: 2, theta: 0.2, name: ''}"
- 发送动作目标
要让海龟完成一个具体动作,比如转到指定角度,仿真器中提供的这个action可以帮上忙,通过命令行这样发送动作目标:
$ ros2 action send_goal /turtle1/rotate_absolute turtlesim/action/RotateAbsolute "theta: 3"
- 录制控制命令
系统运行中的数据有很多,如果想要把某段数据录制下来,回到实验室再复现这段数据如何?ROS2中的rosbag功能还是很好用的,轻松实现数据的录制与播放:
$ ros2 bag record /turtle1/cmd_vel
$ ros2 bag play rosbag2_2022_04_11-17_35_40/rosbag2_2022_04_11-17_35_40_0.db3