安装官方文档,创建了ROS工作空间,执行catkin_make创建相关文件。执行sudo apt-get install ros-melodic-ros-tutorials,结果ok。
根据官方文档描述,ROS文件类型主要分为两类,一packages,ROS代码的执行单元,主要包括库文件、执行文件、脚本等;二Manifests,对packages的描述文件。ROS提供相应的文件操作命令,如rospack、roscd、rosls。这些指令屏蔽了操作系统的文件管理的路径,根据ROS中packages的名字,直接进行文件操作和访问,提高了工作效率。
在前面创建的工作空间中,创建了自己的packages,执行catkin_create_pkg beginner_tutorials std_msgs rospy roscpp。这个语句的意思是创建beginner_tutorials packages,beginner_tutorials依赖std_msgs rospy roscpp。
以上就是ROS文件系统的相关内容,具体细节请参考官方文档。
下面,我们理解ROS中节点(nodes)的内容。ROS节点使用ROS 客户端库与其他节点进行通讯。节点可以发布或描述到一个主题( Topic)。 节点也可以作为服务端提供或使用。客户端库主要用python或者c++两种语言实现。为了理解node的概念,我们首先在执行了roscore指令,然后新开一个命令窗口执行rosrun turtlesim turtlesim_node命令,turtlesim就是packages的名字,turtlesim_node是节点的名字。执行成功后,我们再新开一个命令窗口执行rosrun turtlesim turtle_teleop_key,我们可以用方向键控制屏幕中的乌龟移动。乌龟移动的原理turtlesim_node节点和 theturtle_teleop_keynode节点通过ROS主题进行通讯。turtle_teleop_key节点发布按键按下的消息到主题, 同时turtlesim节点登记接收按键消息到同一个主题中。用rosrun rqt_graph rqt_graph打开图形界面,发现两个上述节点通过/turtle1/command_velocity主题进行通讯。
在这里我又遇见大坑了,执行rosrun rqt_graph rqt_graph时,报No module named rospkg错误,查询发现是ros和anaconda不兼容的问题,查询到相应的解决方案,执行:
$ conda install setuptools
$ pip install -Urosdep rosinstall_generator wstool rosinstall six vcstools
(执行时发现conda的官方源速度十分感人,我中间又下载了ubuntu mate 18.04的安装文件,请哪位大佬能告诉我有没有高速更新源)。
安装成功后,继续执行rosrun rqt_graph rqt_graph 又报No module named 'pydot'错误,通过pip安装pydot包解决。到此终于把图形界面打开了,真是步步大坑啊!
网友评论