1)先创建一个工作空间
2)再创建一个功能包
3)编辑源文件
4)编辑配置文件
5)编译并执行
C++和Python只有再3、4步时有所差异,其余流程基本一致。
打开终端后输入命令
mkdir -p 自定义空间名称/src
cd 自定义空间名称
catkin_make
命令行操作演示:
mkdir -p demo01_ws/src
cd demo01_ws
catkin_make
命令执行结果:
在工作空间下生成一个功能包,该功能包依赖于roscpp、rospy与std_msgs,其中roscpp是使用C++实现的库,而rospy则是使用python实现的库,std_msgs是标准信息库,创建ROS功能包时,一般都会以来这三个库实现。
cd src
catkin_create_pkg 自定义ROS包名 roscpp rospy std_msgs
命令行操作:
catkin_create_pkg helloworld roscpp rospy std_msgs
执行结果:
//进入功能包
cd helloworld
//新建C++文件
touch helloworld_c.cpp
//1.包含ros的头文件
#include"ros/ros.h"
//2.编写main函数
int main(int argc,char *argv[]){
//3.初始化ros节点
ros::init(argc,argv,"hello_node");
//4.输出日志
ROS_INFO("helloworld");
return 0;
}
1)找到 add_executable,将其前面的#删除,并更改其中的参数信息
add_executable(需要进行编译的源文件名 src/需要进行编译的源文件名.cpp)
add_executable(helloword src/helloworld_c.cpp)
2)找到target_link_libraries,将这个函数的注释取消(删除#)
target_link_libraries(需要进行编译的源文件名(注意要与上述函数中第一个参数的名称保持相同!) ${catkin_LIBRARIES}
)
target_link_libraries(helloword
${catkin_LIBRARIES}
)
首先要进入工作空间中:cd demo01_ws
接着catkin_make
1)先启动命令行1(新建一个终端)
roscre //启动ros核心
2)再启动命令行2
cd 工作空间名
source ./devel/setup.bash
rosrun 功能包名 C++节点
cd demo01_ws
source ./devel/setup.bash
rosrun helloworld helloword
终端运行结果:
Notes:使用source ./devel/setup.bash有一些局限性,当我们再次新建一个终端时,想要运行helloworld包就会出错”找不到helloworld“,所以我们可以优化一下命令。
1)打开主目录
使用快捷键"ctrl+h"显示隐藏文件,找到.bashrc文件,打开该文件,在文件的最底下添加source ~/demo01_ws/devel/setup.bash。
可以看到第一行是我们安装ros时添加的。
保存并退出
2)重新加载.bashrc
在主文件夹中打开终端,并输入命令行
3)新建终端测试
rosrun helloworld helloworld
这里我之前自己做的时候为helloworld功能包映射的名称是haha,不用担心,这个名称不影响程序运行。
1)新建一个终端
2)编辑python文件
#! /usr/bin/env python
##指定解释器
#1.导包
import rospy
#2.编写主入口
if __name__=="__mian__":
#3.初始化ROS节点
rospy.init_node("hello_p")
#4.输出日志
rospy.loginfo("hello world! by python")
3)为helloworld_p.py文件设置权限
在Cmakelist.txt中找到catkin_install_python函数并更改
catkin_install_python(PROGRAMS scripts/自定义文件名.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
实际操作:
catkin_install_python(PROGRAMS scripts/helloworld_p.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
1)进入工作空间并编译:
2)新建一个终端:
3)重新加载环境变量(回到之前我们进行编译的终端)
source ./devel/setup.bash
4)运行helloworld_p.py
奥特学园课程链接:奥特学园