ros学习记录1 Hello World 使用c++

声明:整个学习是我跟着奥特学园进行的,不是原创,只是记录自己的学习过程

步骤

创建命名空间

mkdir -p catkin_ws/src //其中前者是工作空间的名称,后者为存放源码的位置
cd ./catkin_ws
catkin_make//在工作空间里进行编译操作

创建功能包

在catkin_ws/src中创建功能包,xxx为名字

catkin_create_pkg xxx roscpp std_msgs

修改配置文件cmakelists

注意取消注释

add_executable(节点名
  src/源文件名.cpp
)
target_link_libraries(节点名
  ${catkin_LIBRARIES}
)

编译

首先对修改后的工作空间catkin_make一下,然后

cd 工作空间
source ./devel/setup.bash
rosrun 包名 C++节点

坑:

1、第一步catkin_make的位置不对,应该在工作空间目录下进行
2、在修改配置文件时,需要取消掉前面的注释
3、最后一步运行时出现“已放弃(核心已转储)”,是因为cpp文件里,执行ros节点初始化时,初始化的名称里面不能有空格,只能用下划线代替空格
4、新建功能包的指令为catkin_create_pkg xxx roscpp std_msgs,注意是msgs,不是msg

#include "ros/ros.h"

int main(int argc, char *argv[])
{
    //执行 ros 节点初始化
    ros::init(argc,argv,"hello");
    //如果是ros::init(argc,argv,"hello world"),就会出现3中的错误
    //创建 ros 节点句柄(非必须)
    ros::NodeHandle n;
    //控制台输出 hello world
    ROS_INFO("hello world");

    return 0;
}



你可能感兴趣的:(ros学习,c++,学习,自动驾驶)