许多新手开始学习ROS时,不知道如何创建一个ROS节点,并正确的编译运行,下面是小编的亲手实践历程
1、正确安装ROS,根据Ubuntu的版本选择正确的ROS版本
2、创建ROS的工作空间、初始化工作空间,编译工作空间
cd ~
sudo mkdir -p catkin_make hello_ros/src
cd hello_ros
catkin_init_workspace
catkin_make
3、进入到工作空间下的src文件下,创建功能包,在创建功能包的同时,选择文件的依赖
cd hello_ros/src
catkin_create_pkg hello std_msgs roscpp
4、在功能包下面创建一个cpp文件,名字叫hello.cpp,当然,名字可以自己定
hello.cpp的内容为:
#include <ros/ros.h>
int main (int argc, char **argv)
{ ros::init(argc, argv, "hello") ;
ros::NodeHandle nh;
ROS_INFO_STREAM("Hello, ROS!") ;
}
5、声明可执行文件,在功能包下的Cmakelist.txt中在
include_directories(include ${catkin_INCLUDE_DIRS})
之后:添加以下代码
add_executable(hello hello.cpp)
target_link_libraries(hello ${catkin_LIBRARIES})
6、重新进行编译
cd ~
cd hello_ros
catkin_make
7、启动ros,刷新环境变量,运行节点
roscore
再打开另一个终端
cd hello_ros
source devel/setup.bash
rosrun hello hello
8、写一个launch文件来启动这个节点,利用launch文件来启动程序时,不需要启动roscore,launch文件会自动检测并启动
<launch>
<node pkg="hello" type="hello" name="hello"></node>
</launch>
以上是最精简的launch文件,pkg里面的内容是可执行文件所在的问价夹,type里面存放的是可执行文件的名称,name里面是自己的命名。
9、使用launch文件启动程序
cd ~
cd hello_ros
source devel/setup.bash
roslaunch hello hello.launch
至此,就是写一个简单的ROS节点并使用launch文件启动!!!