ROS学习(一)
ROS基础
一、工作空间基本操作
创建工作空间
mkdir -p ~/yyj_ws/src
//到src下
cd yyj_ws/src
在src文件夹下初始化工作空间,将其变成ROS工作空间的属性
catkin_init_workspace
在src中创建功能包指令
catkin_create_pkg<package_name>[depend1][depend2][depend3][...]
例如:
catkin_create_pkg learning_communication std_msgs rospy roscpp
此时功能包中src放的是核心代码,include放的是头文件,CMakelists.txt和package.xml是所有功能包都必须具备的文件。前者是放置编译功能包的编译选项和规则,使用cmake接口;后者是描述功能包的具体信息,比如名字、版本号、维护者、声明的依赖等后期加依赖需在此文件修改。
接着在工作空间层级编译,再设置环境变量。
cd ..
catkin_make
source ~/yyj_ws/devel/setup.bash
(同一个工作空间下,不允许存在同名功能包。不同工作空间下,允许存在同名功能包)
查看ros的环境变量,关注ROS_PACKAGE_PATH即ros编译运行的查找功能包和节点的顺序
env | grep ros
//或者
echo $ROS_PACKAGE_PATH
当不同工作空间下,存在同名功能包会先查找后生成的路径
例:(实验完记得删除这个包)
//安装ros功能包例程
sudo apt-get install ros-kinetic-roscpp-tutorials
//查找功能包会在opt/ros/kinetic/share/roscpp_tutotials
rospack find roscpp_tutorials
//复制功能包到工作空间src下
//再次设置环境变量
source ~/yyj_ws/devel/setup.bash
//再次查找即发现查找路径指向工作空间里的功能包了
rospack find roscpp_tutorials