0.ROS入门21讲
1.Linux系统基础操作
pwd:查看当前路径
cd:切换路径
cd…:返回上一级目录
mkdir:创建新的文件夹
touch:创建文件
mv:剪切【mv file /home/hjs】【mv 文件名 目标路径】
cp:复制 【cp file /home/hjs】【cp 文件名 目标路径】【cp 文件名 目标路径/新文件名】
rm:删除【rm 文件或者文件名】
sudo:提升用户权限
apt-get:application_get,用于获取应用程序
update:用来更新,相当于Ubuntu中的更新
指令 --help:帮助指令,查看指令使用方法,例如:sudo --help
2.C++&python极简基础
g++ c++_for.cpp -o c++_for
g++指令编译
c++_for.cpp代码文件
-o把代码文件编译成什么命名的可执行文件
c++_for经编译生成的可执行文件的名字
python python_for.py
没有编译的过程,直接通过python解析器解析python代码并且执行
C++编译+执行演示:
hjs@joker:~$ cd linux
hjs@joker:~/linux$ g++ c++_for.cpp -o c++_for
hjs@joker:~/linux$ ./c++_for
a = 5
a = 6
a = 7
a = 8
a = 9
Python解析演示:
hjs@joker:~/linux$ python python_for.py
a = 5
a = 6
a = 7
a = 8
a = 9
3. 安装ROS系统
4. ROS是什么
5. ROS的核心概念
ROS Master提供参数服务器,里边有专门的区域用来记录全局变量的变量名和变量值
,可以由各个节点去访问和读写,从而为各个节点提供参数服务。
【发布/订阅模型】节点间的数据传输通道叫做话题,话题中传输的数据类型叫做消息。
【请求/应答模型】双向同步通信,带有反馈机制,使用.srv文件定义Request和Response里边的数据结构
在ROS Master里边维护一个参数服务器,会保存一部分参数来作为全局共享字典,所有节点都可以通过这些网络来访问这些字典
6. ROS命令行工具的使用
【1】打开终端,启动ROS Master
roscore
【2】新开一个终端,rosrun运行一个节点 rosrun 功能包名称 节点名称
rosrun turtlesim turtlesim_node //注意灵活应用Tab键
【3】新开一个节点,rosrun运行按键控制节点
rosrun turtlesim turtle_teleop_key
现在就来分析一下小海龟背后的ROS知识:
【4】新开一个终端,查看运行计算图
rqt_graph
/turtlesim是仿真器节点,/teleop_turtle是键盘控制节点,两个节点间存在数据通信,通讯话题是/turtle1/cmd_vel,话题里边的内容就是速度指令的内容
【5】rosnode
rosnode list :把系统中所有节点列出来
rosnode info :查看节点信息rosnode info 节点名称
rosnode info /turtlesim
可以清晰地看到该节点发布和订阅的话题有哪些
【6】rostopic
rostopic list :打印出当前系统的话题列表
rostopic pub :发布数据给某一个topic rostopic pub /话题名/数据类型/数据具体内容
rostopic pub /turtle1/cmd_vel geometry_msgs/Twist "linear:
x: 1.0
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.0"
运行后发现海龟运动了,但是只是动了一下
rostopic pub -r 10 /turtle1/cmd_vel geometry_msgs/Twist "linear:
x: 1.0
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.0"
这里边 -r 的意思就是rate(发布速率),数字10表示10hz,即一秒钟发布10次
【7】rosmsg
rosmsg show :查看消息的具体数据结构rosmsg 消息名称
rosmsg show geometry_msgs/Twist
【8】rosservice
rosservice list :查看当前所有服务的内容
rosservice call :请求服务,这里是请求一个产生新的海龟的服务
rosservice call /spawn "x: 2.0
y: 2.0
theta: 0.0
name: "turtle2""
-a 就是 -all,把所有的数据都记录下来
-O 就是保存成一个压缩包,后边紧跟的是压缩包的名字,生成了cmd_record.bag