ROS工作空间

(二)ROS学习

一.工作空间

  1. 创建工作空间:存放工程开发相关文件的文件夹
	mkdir -p ~/catkin_ws/src		//创建文件夹
	cd ~/catkin_ws/src			//src文件夹放置具体功能包源码
	catkin_init workspace		//创建工作空间
  • CMake是对make工具的生成器,是更高层的工具,他简化了编译构建过程,能够管理大型项目,具有良好的扩展性。ROS采用的就是CMake,并且ROS对CMake进行了扩展,于是便有了Catkin编译系统。

  • CMake是对make工具的生成器,是更高层的工具,他简化了编译构建过程,能够管理大型项目,具有良好的扩展性。ROS采用的就是CMake,并且ROS对CMake进行了扩展,于是便有了Catkin编译系统。

  • Catkin就是讲cmake与make指令做了一个封装从而完成整个编译过程的工具。要用catkin编译一个工程或软件包,只需用catkin_make指令进行编译,调用系统自动完成编译和链接过程,构建生成目标文件。注:catkin编译之前需要回到工作空间目录,catkin_make 在其他路径下编译不会成功。编译完成后,一定要用source命令刷新环境,使系统能找到新生成的ROS可执行文件,否则会出现无法找到可执行文件等错误
    Catkin突出优点:操作更加简单;一次配置,多次使用;跨依赖项目编译。

  1. 编译工作空间
	cd ~/catkin_ws/
	catkin_make 				//编译,需要在工作空间的根目录下即catkin_ws的根目录下完成操作
								//build:编译空间;	devel:开发空间;	install:安装空间
  1. 设置环境变量
	source devel/setup.bash		//使系统知晓功能包位置在catkin_ws文件夹里面;setup.bash为脚本名字,若使用的为zsh,则为setup.zsh
  • 设置完只会在该终端生效,若打开一个新的终端则不会生效,需重新设置。
  • 解决方法:将该命令放入整个终端的配置文件中
	 1. vi ~/.bashrc
	 2. 在.bashrc最后一行加入:
		source ~/catkin_ws/devel/setup.bash
	 3. 保存退出后输入命令使其生效
		source ~/.bashrc
  1. 检查环境变量
	echo $ROS_PACKAGE_PATH

二.功能包

功能包:放置机器人某个功能的单元,在其中创建相应代码。在同一工作空间下,不允许存在同名功能包;不同工作空间下,允许存在同名功能包。
命令:catkin_create_pkg<package_name>[depend1][depend2][depend3] ## depend为该功能包所需要依赖的其他功能包

  1. 创建功能包
	cd ~/catkin_ws/src	//创建功能包需要在src目录下进行
	catkin_create_pkg learning_communication std_msgs rospy roscpp	//创建ros通讯机制功能包
	# std_msgs:ros定义的一些标准的数据结构
	# rospy:ros定义的一些Python接口
	# roscpp:ros的c++的编程接口
	# 创建完成后自动生成四个文件,CMakeLists.txt放置编译选项,package.xml里面为该功能包信息,
	  其中有依赖包的信息,后续若要加依赖则在里面修改,这两个文件是功能包必有的。
  1. 编译功能包
	cd ~/catkin_ws
	catkin_make								//编译
	source ~/catkin_ws/devel/setup.bash	 	//前面已经配置环境过可省略该步骤
  1. 工作空间的覆盖

ROS工作空间的Overlaying机制,即工作空间的覆盖:

  • 工作空间的路径依次在ROS-PACKAGE_PATH环境变量中记录
  • 新设置的路径在ROS-PACKAGE_PATH中会自动放置在最前端
  • 运行时,ROS会优先查找最前端的工作空间中是否存在指定的功能包
  • 如果不存在,就顺序向后查找其他工作空间

查看ros空间的所有环境变量:env | grep ros

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值