ROS操作流程

1.建工作空间
2.初始化工作空间
3.建立功能包
4.新建cpp文件
5.进入cmakelist添加依赖
6.在工作空间编译
7.添加至环境变量
8.测试

(打代码过程中可以多用TAB键,可以自动补齐一些代码)

1.建工作空间

mkdir -p new_ws/src

mkdir:新建文件夹
-p:建立递归目录,上级目录没有也能建
new_ws/src:新建文件夹,第一层是new_ws第二层是src
2.初始化工作空间

cd new_ws/src
catkin_init_workspace

cd new_ws/src:进入new_ws文件夹内的src文件夹
catkin_init_workspace:初始化工作空间,在src里会生成一个CMakelists.txt文件
3.建立功能包

catkin_create_pkg helloworld std_msgs roscpp

catkin_create_pkg:新建功能包
helloworld:功能包的名字
std_msgs roscpp:功能包自带的依赖,std_msgs是信息发布相关的 roscpp是ros中写c语言必加的,用到其他功能要自己找,比如视觉相关的cv_bridge,image_transport,写python语言必加的rospy……这些功能包依赖可以一开始就加,也可以后期改功能包对应的cmakelists和xml文件。
4.新建cpp文件

cd helloworld/src/
touch a.cpp

cd helloworld/src/:进入cd helloworld文件夹下的src文件夹
touch a.cpp:新建一个a.cpp文件,新建其他类型的文件也是这个touch命令
建好后打开cpp文件加入以下代码

#include 

int main(int argc, char **argv)
{
  ros::init(argc, argv, "basicndoe");//定义节点名
  ros::NodeHandle nh;//定一个句柄

  ROS_INFO("Hello world!");//打印一个Hello world!
}

5.进入cmakelist添加依赖
打开和功能包统一目录下的CMakelists.txt文件,在最后加上以下几句话

add_executable(Hello src/a.cpp)
target_link_libraries(Hello ${catkin_LIBRARIES})

Hello是节点的名字,a.cpp是文件名,其他的不用管,复杂的程序还会改一些其它地方,现在只是测试

6.在工作空间编译
回到工作空间所在的文件夹,重现打开一个命令行“CRTL+ALT+T”进入自己工作空间的路径

cd new_ws/
catkin_make

catkin_make:编译工作空间
7.添加至环境变量

gedit ~/.bashrc

进入环境变量相关文件在最后输入

source ~/new_ws/devel/setup.bash

8.测试
打开一个命令行输入:

roscore

每个ros节点运行前都要开这个,这是主控制台
再打开一个输入

rosrun helloworld Hello 

helloworld是功能包名,Hello是节点名
效果:

[ INFO] [1595669089.773393238]: Hello world!

输出了一个Hello world!测试结束

你可能感兴趣的:(ROS)