ROS学习:创建工作区,跑通第一个节点
创建工作空间 catkin_ws
创建src文件,放置源码:
mkdir -p ~/catkin_ws/src
进入src文件夹:
cd ~/catkin_ws/src
初始化文件夹:
catkin_init_workspace
此时文件结构:
编译工作空间 catkin_make
所有编译工作都要在catkin_ws文件夹下编译,进入catkin_ws
:
cd ~/catkin_ws
编译:
catkin_make
此时文件结构:
设置环境变量
把该工作空间的环境变量设置到bash中:
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
让上面的配置在当前的终端生效 (更换新的终端需重新设置环境变量):
source ~/.bashrc
创建功能包
进入src中创建:
cd ~/catkin_ws/src
创建功能包:
catkin_create_pkg demo_package roscpp rospy std_msgs
此时文件结构:
创建功能包格式:catkin_create_pkg package_name depend1 depend2 depend3
编译功能包
进入catkin_ws
文件夹,用catkin_make
命令编译:
cd ~/catkin_ws
catkin_make
编译成功,如图:
在功能包中创建节点
VsCode打开catkin_ws
文件夹:
在catkin_ws -> src -> demo_package -> src
下创建hello_node.cpp
如图:
在hello_node.cpp
中写入代码:
#include <ros/ros.h>
int main(){
printf("hello world!\n");
return 0;
}
如果此时出现vscode给include标红的情况,如图:
就删除.vscode
目录下的c_cpp_properties.json
文件,然后重启vscode
编译
打开catkin_ws -> src ->demo_package -> CMakeLists.txt
,注意不要找错了,注意目录层级。
在Build下添加:
来到终端,重新进入工作区编译:
cd ~/catkin_ws
catkin_make
编译成功,如图:
运行
开启一个 新的终端,在里面输入指令启动ROS:
roscore
启动成功如图:
保留这个终端,回到原来的终端窗口,进入工作区,输入指令启动:
cd ~/catkin_ws
rosrun demo_package hello_node
成功打印hello world!
启动运行节点格式:rosrun package_name node_name