在开始基础内容之前,假定您已经完成了ROS kinetic版本的安装,如果没有请参考:ubuntu 16.04下安裝和配置ros。
1. 环境变量
在使用ROS期间,一定要确保环境变量配置正确,通常是source不同的setup.bash。
~$ source /opt/ros/kinetic/setup.bash
如果您在查找和使用ROS功能表遇到问题,请检查您的脚本环境,可以使用以下命令:
~$ export | grep ROS
因为采用二进制安装(apt-get)而不是源码安装方式,所以ROS_PACKAGE_PATH中没有其他博客中所给出的/opt/ros/kinetic/stacks这个路径,这是没有问题的。
为了避免在每次启动终端都输入ROS相关环境配置命令,可以将ros安装目录下的setup.bash和catkin_ws/devel下的setup.bash添加到.bashrc文件中,这样在使用ros或者使用ros的命令的时候,就不需要先source一下了(因为有的时候总会忘记source,造成报错):
2. 创建ROS工作空间(catkin)
输入下面命令创建一个新的catkin工作空间:
~$ mkdir -p ~/catkin_ws/src
~$ cd catkin_ws/
~/catkin_ws$ catkin_make
(下图是借用别人的,我这里已经创建完毕。我电脑上的图与下图的区别主要是用户名和主机名)
完成后,输入下面命令(如果上面已经添加到.bashrc中,则这一步不需要):
~/catkin_ws$ source devel/setup.bash
使用下面命令查看环境变量:
~/catkin_ws$ echo $ROS_PACKAGE_PATH
为了避免在每次启动终端都需要配置环境变量,修改.bashrc:
前面已经给出怎么将setup.bash添加到.bashrc.
3. ROS文件系统
首先确保教程包已经安装:
~$ sudo apt-get install ros-kinetic-ros-tutorials
Packages:功能包-包含程序,可执行文件,脚本等;
Manifest:清单-包含依赖关系,版本信息等。
文件系统工具:
使用rospack获取功能包的相关信息。
~$ rospack find turtlesim
使用roscd直接前进到功能包目录中:
~$ roscd turtlesim
查看当前路径:
$ pwd
rosls显示目录内文件信息:
~$ rosls turtlesim
Tab补全小技巧。----rospack roscd rosls----
4. 创建ROS功能包
先提供官网中文教程:http://wiki.ros.org/cn/ROS/Tutorials/CreatingPackage
列一些重要的命令:
~$ cd catkin_ws/src/
创建第一个功能包hello_kinetic,具体查看catkin_create_pkg命令:
~/catkin_ws/src$ catkin_create_pkg hello_kinetic std_msgs rospy roscpp
查看依赖关系:~/catkin_ws/src$ rospack depends hello_kinetic
~/catkin_ws/src$ rospack depends1 hello_kinetic
5. 编译ROS功能包
先提供官网中文教程:http://wiki.ros.org/cn/ROS/Tutorials/BuildingPackages
~/catkin_ws$ catkin_make
~/catkin_ws$ catkin_make install
如果源代码不再src文件夹使用下面命令:
~/catkin_ws$ catkin_make --source xxxx
当功能包编译完成,就可以使用了。
这里以usb_cam为例,下载地址:https://github.com/bosch-ros-pkg/usb_cam
可以使用git进行下载,下载到~/catkin_ws/src/下,命令:git clone https://github.com/ros-drivers/usb_cam.git
~/catkin_ws$ catkin_make
~/catkin_ws$ rosstack profile & rospack profile
~/catkin_ws$ catkin_make install,将编译好的usb_cam进行安装,安装路径在~/catkin_ws/install/share/usb_cam,对于其他的功能包,也是一样的,会安装到catkin_ws/install/share目录下。
可执行的程序在上图中的launch目录下。
~/catkin_ws$ roslaunch usb_cam usb_cam-test.launch
上图为借用别人的,下图为我自己的(我自己电脑没有外接camera).
至此,完成了创建工作空间,和借用开源的代码,执行第一个例子,或者说是基于别人的代码,创建了第一个功能包。后面我们继续ROS基础2.
参考内容:http://blog.csdn.net/zhangrelay/article/details/51384724