ROS开发实践(一)ROS基础:第一个ROS程序、创建工作空间和功能包

自学古月博主的名作《ROS开发实践》,做点记录

一、第一个ROS程序——小乌龟仿真

在这个实验中,接触第一个ROS功能包——turtlesim,其核心是turtlesim_node节点。ROS的每个功能包都是一个独立功能,包含一个或多个节点,这些功能对外使用topic、service、parameter作为接口。

首先安装turtlesim功能包:

sudo apt-get install ros-kinetic-turtlesim

运行ROS节点管理器ROS Master,使用ROS的第一步:

roscore

新开一个终端,启动turtlesim节点:

rosrun turtlesim turtlesim_node 

ROS开发实践(一)ROS基础:第一个ROS程序、创建工作空间和功能包_第1张图片

新开一个终端,启动键盘控制的节点:

rosrun turtlesim turtlesim_node 

保证该终端激活,可以用方向键控制乌龟运动:

ROS开发实践(一)ROS基础:第一个ROS程序、创建工作空间和功能包_第2张图片

二、创建工作空间

工作空间是一个存放工程开发的相关文件的文件夹。ROS-kinetic默认采用catkin编译系统。

典型的的工作空间包含的目录有:

  1. src:代码空间,存储ROS功能包的源码
  2. build:编译空间,存储编译过程文件
  3. devel:开发空间,存放可执行文件
  4. install:安装空间,编译后,可用make install进行安装,非必须

创建工作空间目录,ROS工作空间初始化,编译工作空间:

mkdir -p ~/my_workspace/src
cd ~/my_workspace/src
catkin_init_workspace
#到工作空间根目录用catkin_make编译整个空间
cd ~/my_workspace/
catkin_make

编译后,会产生build和devel文件夹,devel中会产生环境变量设置脚本,通过source运行脚本使得环境变量生效

source devel/setup.bash
#检查是否生效
echo $ROS_PACKAGE_PATH

三、创建功能包

ROS功能包包含:

  1. CMakeLists.txt:记录编译规则
  2. package.xml:提供功能包元信息

在src代码空间创建依赖于std_msgs、roscpp、rospy的my_pack功能包:

cd ~/my_workspace/src
catkin_create_pkg my_pack std_msgs rospy roscpp

回到工作空间根目录编译并设置环境变量:

cd ~/my_workspace
catkin_make
source ~/my_workspace/devel/setup.bash

 

 

你可能感兴趣的:(ROS)