1、ros1与ros2的区别点
1、ros1使用catkin_make来进行编译;ros2使用colcon build来进行编译
2、对于ros1必须先运行roscore才能够运行节点,但是ros2并不需要这样去操作(两个都要)
3、两者运行程序有一点小区别,ros1运行是使用rosrun+文件名+节点名,ros2运行是使用ros2 run+文件名+节点名(ros2后面有个空格)
2、如何在vscode之中来进行代码的编译
首先需要创建工作空间,所有的工作空间下面都必须创建一个src’的目录。创建完工作空间后,进入到工作空间的目录下面,然后使用catkin_make命令进行编译。
其次需要配置vscode的编译命令,设置编译的命令为contrl+shift+b。设置方法如下,在vscode中按下这三个按键,然后进一步进行配置,将
下面的代码输入到配置文件之中去。
{
// 有关 tasks.json 格式的文档,请参见
// https://go.microsoft.com/fwlink/?LinkId=733558
"version": "2.0.0",
"tasks": [
{
"label": "catkin_make:debug", //代表提示的描述性信息
"type": "shell", //可以选择shell或者process,如果是shell代码是在shell里面运行一个命令,如果是process代表作为一个进程来运行
"command": "catkin_make",//这个是我们需要运行的命令
"args": [],//如果需要在命令后面加一些后缀,可以写在这里,比如-DCATKIN_WHITELIST_PACKAGES=“pac1;pac2”
"group": {"kind":"build","isDefault":true},
"presentation": {
"reveal": "always"//可选always或者silence,代表是否输出信息
},
"problemMatcher": "$msCompile"
}
]
}
(cpp版本)
接下来我们进行功能包的创建,在vscode之中的第二个src目录下面右击,创建catkin的包,当点击创建catkin的包之后。先输入包的名字,再输入包的依赖(roscpp rospy std_msgs)。经过上述操作之后,在工作空间的src目录下,会显示include,src,以及src下面有两个配置文件。
创建完功能包之后,便开始配置cmakelist文件,主要是将注释取消掉(136行的add_executable以及149行的target_link),然后要对这两行进行修改,将${PROJECT_NAME}修改为自己设置的节点,以及需要修改自己指定的文件,修改为自己定义的文件名(在add_executable里面)。
然后进行编译,编译完成之后开始运行,在运行前要新开一个终端输入:roscore来启动ros节点,当启动了ros节点之后需要刷新一下工作空间中的sheup.bash这个文件具体命令如下
source ./devel/setup.bash
当激活了这个文件之后,我们就可以运行自己写的这个节点了。通过输入命令 rosrun+包名+节点名
(python版本)
由于python要运行在scripts目录下,因此我们使用python进行编译时,必须在包下面创建一个scripts的文件夹用于存放python的文件。
在创建完scripts文件之后,创建一个python文件。创建完python文件之后,我们便可以在里面进行代码的撰写了,写完之后,我们需要修改cmakelist文件中的162行,取消注释,并且将scripts下的文件名替换成我们自己写的python文件。
配置完成cmakelist文件之后,我们便可以编译py文件了,先启动roscore(工作空间下),然后再刷新一下(工作空间下),最后运行一下节点