ROS中编程语言实现大致步骤:
1、创建工作空间
2、添加程序所需功能包
3、编写程序
4、编辑配置文件
5、编译运行
———————————————分割线—————————————————
一、创建工作空间并初始化
1.创建 demo01 文件夹,同时在 demo01 下再次创建 src 文件夹,然后进入 demo01 文件夹内:
mkdir -p demo01/src
cd demo01
2.初始化工作空间
catkin_make
二、添加程序所需功能包及依赖
cd src
catkin_create_pkg helloworld roscpp rospy std_msgs
其中 roscpp为c++标准库文件,rospy 为python库, std_msgs为ROS标准信息库
三个库在功能包中不可缺少,除非只使用一种语言。
三、编写程序
C++版
1、直接进入 helloworld 文件夹下的 src 文件夹,打开终端
2、创建 helloworld_c.cpp 文件
touch helloworld_c.cpp
3.编写cpp文件:
#include "ros/ros.h" //添加ROS头文件
int main(int argc ,char *argv[])
{
ros::init(argc, argv, "helloworld");//初始化结点
ROS_INFO("hello world!");//使用日志输出“hello world!"
return 0;
}
编写完成保存,回到上一级。
4、修改 CMakeLists.txt 文件:
将add_executable函数和target_link_libraries函数解除注释;
将add_executable函数修改为add_executable(映射名 src/cpp文件名);
将target_link_libraries函数修改为(映射名 ${catkin_LIBRARIES});
5、在工作空间文件夹打开终端,输入
catkin_make
如果上述操作没有问题的话,会显示:
重新打开另一个终端,运行ros核心:
roscore
回到上一个终端,刷新环境变量,rosrun 自定义ros包名 映射名
source ./devel/setup.bash
rosrun helloworld helloworld
运行后终端显示
可见输出成功。
Python版
1.在功能包内创建文件夹 script ,在文件夹内创建 .py 文件
mkdir scripts
touch helloworld_p.py
2.编写py程序,保存退出
#! /usr/bin/env python
import rospy
if __name__ == "__main__":
rospy.init_node("hello")
rospy.loginfo("hello world!")
3.在 .py 文件夹内打开终端,修改 .py 文件权限
chmod +x helloworld_p.py
4.回到上级目录,修改 CMakeLists.txt 文件:
对 catkin_install_python 函数进行修改,将 myprogram.py 修改为自己创建的 py 文件
catkin_install_python(PROGRAMS
scripts/helloworld_p.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
5.回到工作空间文件夹,打开终端运行 roscore :
roscore
打开另一个终端,对文件进行编译,然后刷新环境变量,运行 .py 文件(与c++步骤一致,需要注意的是最后 rosrun 最后一个指令是 .py 文件全称):
catkin_make
source ./devel/setup.bash
rosrun helloworld helloworld_p.py