工作空间的配置至关重要,配置顺序会影响CMakeLists.txt等
出现没有ros/ros.h这些一直困扰我的问题
甚至调用其他的文件会有没有数据的情况。
主界面终端
ctrl + shift + T 打开终端
去到主界面
或者输入进入主界面
cd ~
创建名为demo03的文件夹并创建src目录
mkdir -p demo03/src
进入demo03的src文件下,能否用Tab补齐是检验系统是否识别到的标准
cd demo03/src
初始化文件夹:
这样就在src文件中创建了一个 CMakeLists.txt 的文件,目的是告诉系统,这个是ROS的工作空间。
catkin_init_workspace
返回根目录
cd ~/demo03/
编译
注意复制黏贴相比windows要多按一个shift,直接ctrl C是停止程序
catkin_make
编译后就会有3个文件夹
设置环境变量
设置到bash中
设置环境变量,那个是将整个ros系统的环境变量设置到bash脚本中,现在我们需要把我们工作空间的环境变量设置到bash中
echo "source ~/demo03/devel/setup.bash" >> ~/.bashrc
让配置生效
source ~/.bashrc
查看环境变量:
echo $ROS_PACKAGE_PATH
创建功能包:
在src中创建
cd ~/demo03/src/
功能包格式:
catkin_create_pkg package_name depend1 depend2 depend2
package_name:功能表名称
depend1、2、3:依赖项
package_name:功能表名称
depend1、2、3:依赖项
catkin_create_pkg learning_communication std_msgs roscpp rospy
编译
cd ~/demo03
catkin_make
打开VScode
code .
常规操作
进来第一件事,非常重要!!!ctrl shift B编译一下,选择他的小齿轮
这样就有了并进入了tasks.json文件
之后就是常规的“下包”、建文件
先是名字
然后是需要的依赖包
回车后在子src目录下添加自己的.cpp或者其他文件
写完之后再ctrl shift B编译 下就不会有警告和报错就是正常的了
修改c_cpp_properties.json
改成C++17可以解决敲码没有提示的问题
修改tasks.json文件
{
// 有关 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"
}
]
}
修改你建的代码目录下的CMakeLists.txt
可以检查依赖包是否正确与修改
ctrl F快速找到这个
ctrl / 可以去掉注释
add_executable(节点名称
src/C++源文件名.cpp
)
target_link_libraries(节点名称
${catkin_LIBRARIES}
)
一般就是把节点名和源文件名都一样改上去就行,注意写了多少个源文件就要加多上个这两东西
完成ctrl shift B编译一下
运行ROS
可以在主界面的终端,也可以在vscode内的终端调试
这里在VS终端下启动,新建终端
roscore
roscore
source
source ./devel/setup.bash
rosrun运行
rosrun pub pub1