一、实现流程
1、创建工作空间
2、创建功能包
3、编辑源文件
4、编辑配置文件
5、编译并执行
其中,c++和python的差异仅体现在3,4两部,其他流程基本一致。
二、创建工作空间和创建功能包的实现
2.1 创建工作空间并初始化
(1)创建工作空间
mkdir -p 自定义工作空间名称/src
这里我创建的工作空间名称是demo1
(2)工作空间初始化
我们首先要将当前工作目录切换到我们创建的工作空间,然后再进行初始化
cd demo1
catkin_make
运行结果如下:
打开文件,我们可以看到工作空间里有如下三个文件夹
2.2 创建功能包
cd src
catkin_create_pkg 自定义包名 roscpp rospy std_msgs
运行结果如下:
这里我定义的包名是helloworld,代码中的roscpp和rospy分别是C++和python实现的库,std_msgs是标准信息库,创建ros功能包时,一般都会依赖这三个库实现。打开文件进入我创建的helloworld我们可以看到里面有如下内容:
三、编辑源文件、编辑配置文件以及编译并执行的实现
3.1 C++相关内容实现
3.1.1 编辑源文件
在创建的功能包下面的src文件夹里创建一个C++源文件,创建文件命令如下:
touch 自定义文件名.cpp
这里我创建的文件名是helloworld_c
接下来打开创建好的文件,编辑源文件,具体内容如下:
3.1.2 编辑配置文件
打开创建的功能包下的CMakeLists.txt文件
首先将第136行和第149行的add_executable和target_link_libraries的井号去掉。
对于add_executable(${PROJECT_NAME}_node src/helloworld_node.cpp)
第二个参数src/helloworld_node.cpp是我们刚刚编写的源文件,我编写的源文件是在src文件夹下的helloworld_c.cpp文件,因此将第二个参数修改为src/hellloworld_c.cpp;第一个参数是给执行文件命名(自定义),这里我命名为hello_c,也就是把第一个参数改为hello_c,当执行hello时就会映射到我编写的helloworld_c.cpp文件。
改写结果如下,保存关闭。
3.1.3 编译
返回工作空间输入如下命令:
catkin_make
运行结果如下:
3.1.4 执行
(1)启动ROS核心
Ctrl+Alt+t打开一个新的终端输入如下命令:
roscore
运行结果如下:
(2)配置环境变量
source ./devel/setup.bash
(3)最后一步执行
rosrun 包名 C++节点
rosrun helloworld hello_c
这里的helloworld是我的功能包的包名,hello_c是我刚刚命名的执行文件,运行结果如下:
可以看到成功地打印了hello world
3.2 Python相关内容实现
3.2.1 编辑源文件
(1)打开功能包新建scripts文件夹
(2)创建python 源文件
这里我命名为helloworld_p
touch helloworld_p.py
创建结果如下:
(3)编辑源文件
保存关闭,在scripts文件夹里右键,在终端打开输入ll
可以看到,没有执行权限,输入如下命令:
chmod +x hello_p.py
运行之后再次输入ll,可以看到已经有了执行权限
3.2.2 编辑配置文件
打开功能包下的CMakeLists.txt文件
找到第162行的catkin_install_python,我们需要更改的是scripts/my_python_script, my_python_script处应该改为我们刚刚编辑的python源文件,更改后如下:
保存关闭, catkin_install_python是为python文件选择一个恰当的解释器
3.2.3 编译
打开工作空间,右键在终端打开,输入如下命令:
catkin_make
运行结果如下:
3.2.4 执行
(1)启动ROS核心
Ctrl+Alt+t打开一个新的终端,输入如下命令:
roscore
运行结果如下:
(2)配置环境变量
source ./devel/setup.bash
(3)最后一步执行
rosrun 包名 自定义文件名.py
rosrun helloworld helloworld_p.py
这里的helloworld是我的功能包的包名,helloworld_p是我刚刚编写的python文件,运行结果如下:
可以看到成功地打印了hello world
标签:python,创建,helloworld,如下,源文件,c++,HelloWorld,hello From: https://blog.csdn.net/m0_74067088/article/details/141502951