在一、ROS小乌龟到工作空间建立,再到安装RoboWare中实现了工作空间的建立和安装RoboWare,下面开始建议一个自己的功能包
在ROS中建立一个属于自己的功能包,其实很简单,首先需要进入到工作空间的src目录下,这里是存放自己的功能包的地方
cd catkin_ws/src
然后
catkin_create_pkg my_ros_pkg roscpp rospy std_msgs
这里使用了catkin_create_pkg 建立了一个名为my_ros_pkg的功能包,包的依赖包括roscpp、rospy和std_msgs;
1、当然这个地方不想用my_ros_pkg的话,可以使用其它名字。
2、roscpp是ros使用c++编写程序需要添加的依赖,而rospy是使用python需要添加的依赖,而std_msgs定义了许多消息的类型,可以先加上,以后就明白为什么要这样写了
进入到my_ros_pkg的src目录下,右键新建一个文件
然后推荐在RoboWare里面编辑代码
#include "ros/ros.h"
int main(int argc, char *argv[])
{
ros::init(argc, argv, "hello_wdf");
//初始化一个节点,名叫hello_wdf
ros::NodeHandle n;
//创建 ros 节点句柄,在这里这句话其实没有什么用
ROS_INFO("hello world");
//向控制台输出一个字符串“hello world”
return 0;
}
这样我们的程序就写好了
但是还有一个关键的地方就是,编辑Cmakelist文件,提示:不要找错文件了!!!
add_executable(hello_world src/hello_world.cpp)
target_link_libraries(hello_world ${catkin_LIBRARIES})
这个好像属于linux下编写程序的内容
在一个终端运行了roscore的基础下,我们再开一个终端
cd catkin_ws/
source devel/setup.bash
rosrun my_ros_pkg hello_world
然后下面就可以看到一句
hello world
如果是python版本,比较简单,可以直接写好
#! /usr/bin/env python
import rospy
if __name__ == "__main__":
rospy.init_node("Hello_wdf")
rospy.loginfo("Hello world wdf!")
在一个终端运行了roscore的基础下,我们再开一个终端
cd catkin_ws/
source devel/setup.bash
rosrun my_ros_pkg hello_world_py.py
使用python写程序的好处就是不需要对CmakeList文件进行修改