ros创建工作空间和功能包以及创建c++程序输出hello_ros

ubuntu 16.04 ROS kinetic 平台RK3399

创建工作空间

$ mkdir -p catkin_ws/src   //创建文件夹作为工作空间
$ cd  ..
$ catkin_make                  //编译此工作空间生成CMakeLists.txt
$ echo "source /opt/ros/kinetic/setup.bash">>~/.bashrc  //把此空间的环境变量在每次打开新终端时被添加
$ source ~/.bashrc           //执行系统环境变量配置文件

创建功能包
我以创建hello_ros包为例,依赖是std_msgs roscpp,目的是输出hello_ros

$ cd ~/catkin_ws/src
$ catkin_creat_pkg hello_ros std_msgs roscpp
$ cd hello_ros/src
$ touch hello_ros.cpp
$ vi hello_ros.cpp
代码如下:
#include "std_msgs/String.h"  //ros定义的String数据类型
#include <ros/ros.h>          // 包含ROS的头文件
int main(int argc,char **argv)
{
        ros::init(argc,argv,"hello_ros_publisher");  //初始化节点
        ros::NodeHandle n;
        ros::Publisher hello_ros = n.advertise<std_msgs::String>("hello",1000);//发布数据的频率。1S一次
        ros::Rate r(10);            //10Hz的速率执行循环
        std_msgs::String msg;       //定义要发布的信息变量
        msg.data="i am here!";      //给要发布的信息赋值
        while(ros::ok())
        {
                ROS_INFO("%s","hello ros!");  //打印到终端上
                hello_ros.publish(msg);       //发布msg
                r.sleep();                    //相当于延时,和前面定义的Rate有关
        }
        return 0;
}   

写完代码还需要把编译代码的命令加入到hello_ros的CMakeLists.txt,为了catkin_make能编译此文件。

$ cd ~/catkin_ws/src/hello_ros
$ vi CMakeLists.txt
把下面两句加入里面
add_executable(hello_ros_publisher src/hello_ros.cpp)
target_link_libraries(hello_ros_publisher ${catkin_LIBRARIES})
然后执行
$ catkin_make
$ cd ~/catkin_ws
$ catkin_make
然后新开终端运行根节点
$ roscore
再新开终端到catkin_ws运行刚才建立的节点
$ cd ~/catkin_ws
$ rosrun hello_ros hello_ros_publisher

所有的就结束了,可以看到hello ros! 以10hz的频率输出
同时再新开终端输入
$ rosnode list
可以看到有roscore和hello_ros_publisher两个节点在运行。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值