ROS工程的创建

https://mp.csdn.net/postedit/81584026  这里只是把我csdn下的文章烤过来,这里的界面比csdn下干净,方便自己查看的视觉体验

在中国大学mooc上,中科重德公司推出机器人操作系统的教学,这里教学代码包robot_sim_demo文件为例,介绍下ros下文件的结构和构建,以及该文件下个文件的作用。

  1. 首先为你的 ros 工程创建一个工作空间,ros工程的空间名为catkin_workspacename,ros目前支持rosbuild和catkin两种编译系统,初学者可以先上手catkin,catkin是ros的特有的编译方式

创建工作空间指令:mkdir –p ~/catkin_ws/src

  1. Cd -/catkin_ws/src,进入src目录下,无论是自己编写的ros包还是我们从网上下载的ros源码,都是放在这个目录下的.

  2. 在src目录下创建功能包的方式:catkin_creat_pkg 包名 依赖1 依赖2 …

例如在robot_sim_demo包的依赖可以在cmakelist.txt文件中找到urdf,xacro

  1. 创建完成后必须构建,指令: catkin_make ,这个指令必须是在ROS的工作空间目录下执行。

(这是从github上下载源码以及工程的创建和编译过程)

  1. 编译完成之后,需要刷新环境变量:source ~/catkin_ws/devel/setup.bash

  2. 关于catkin_make的结果,可以显而易见到工作空间下新增的文件夹,

  1. 一个package包可以编译出多个目标文件,如下

下面是一个package包的典型结构:

Config:是这个ROS包中保存的所有要使用的配置文件,由用户创建这个文件夹,用来命名文件夹配置来保存配置文件。

Include/package_name:包含我们需要在工程中使用的头文件和库文件。

Scripts:该文件夹保存可执行的python脚本,例如talker.py和listener.py。

如robot_sim_demo包下的scripts/robot_keyboard_teleop.py这个python程序的功能是键盘控制xbot机器人移动的功能

1.需要导入rospy函数包,import rospy

Src:这个文件夹下保存C++源码,如taiker.cpp和listener.cpp.

Launch:该文件夹保存用于启动一个或者 多个ros节点的启动文件。例如启动下载的robot_sim_demo指令:

     

launch文件一般以.launch或.xml结尾,下面以robot_sim_demo/launch/robot_spawn.launch为例做点介绍:

  1. 以根标签<launch>开始和结尾;

  2. <arg>定义变量, 以<arg name="robot" default="xbot-u"/>这句为例,定义变量robot,并初始化对象为xbot-u,后面的代码类似并给出初始值。

  3. 指令<include>用于指定包含的其他launch文件,例如

<include file="$(find gazebo_ros)/launch/empty_world.launch">该指令包含了empty_world.lasunch的launch文件,这里是指定了一个gazebo仿真场景

Msg:该文件夹包含自定义消息内容。

Srv:该文件夹包含服务定义。

Action:包含行为定义。我们接下来的部分看到的更多是关于行为的内容。

Package.xml:这个是包的包清单,是每个ros工程下必有的文件,其编写规则和内容详见慕课的电子资料。

CMakeLists.txt:是cmake构建文件,其内容包含包的的创建catkin_create_pkg,获取文件系统中包的信息rospack,包的依赖rosdep,在工作区构建包catkin_make.

在robot_sim_demo/CmakeList.txt中:

1.cmake_minimum_required(VERSION 2.8.3) //指明cmake的版本

2.project(robot_sim_demo) //包名、

3.find_package() //里面包含了该功能包用到其他功能包文件

4.catkin_package()//包含该报构建的依赖

Robot_sim_demo的功能包中还有没有介绍的文件,urdf是描述机器人各个关键位置的坐标统一关系,

models是个3D模型文件,

params是控制机器人的参数信息,如pid参数、角速度、消息发布频率等。这些文件下的还有的文件功能自行探究。

在robot_sim_demo包编译完成后,

输入source ~/catkin_ws/devel/setup.bash 刷新工作空间,不然找不到工作空间

输入: roslaunch robot_sim_demo robot_spawn.launch 启动gazebo模拟器观察模拟场景,

输入rosrun robot_sim_demo robot_keyboard_teleop.py 来通过键盘控制机器人运动

猜你喜欢

转载自www.cnblogs.com/tanrongye/p/9591547.html
今日推荐