ROS学习1

ROS操作系统的工程结构

最近准备一个比赛,需要学习好多东西,打算最近写一些博客记录自己所学的知识。[手动比心 by zwx lvmm]

- ROS工程结构

ROS文件系统的结构:

catkin workspace ---  src  ---   package 1   ---...package 2
								 ......
							---  build ---(cmake & catkin 的缓存文件或者目标文件)
							---  devel --- (生成的目标文件)

catkin 是ROS定制的编译构建系统,是对于CMake的扩展。
创建一个catkin工程的方法:

 mkdir -p ~/catkin_ws/src
 cd  ~/catkin_ws
 catkin_make
 #这个语句仅在当前终端内有效
 source ~catkin_wa/devel/setup.bash
 #或者用下面这条语句,可在新打开的终端内有效
 echo "source ~catkin_wa/devel/setup.bash" >> ~/.bashrc

package 是ROS软件的基本阻值形式,也是catkin编译的基本单元,一个package可以包含很多个可执行的文件。

package 	    ---	CMakeList.txt ()
				---	package.xml()
				---	scripys 	脚本文件		---	*.py   *.sh
				---	msg						---	*.msg
				---	srv						---	*.srv
				---	include					---	*.cpp
				---	launch					---	*.launch

package 包中必须含有的CMakeList.txt和package.xml这两个文件,以及其他文件。

  • CMakeList.txt 文件:

CMakeList.txt 规定了catkin的编译规则,例如源文件、依赖项、目标文件之间的关系。
CMakeList.txt 文件内部的基本语句:

cmake_minimun_required()	#指定catkin最低版本
project()					#制定软件包名称
find_package()				#指定编译时需要的依赖项
add_message_files()			#添加消息文件
add_service_files()			#添加服务文件
add_action_files()			#添加动作文件
generate_message()			#生成消息、服务、动作
catkin_package()			#制定catkin信息给编译系统生成的CMake文件
add_library()				#制定生成库文件
add_executable()			#制定生成可执行文件
target_link_libraries()		#制定可执行文件去链接哪些库
catkin_add_gtest()			#添加测试单元
install()					#生成可安装目标
  • package.xml 文件:

package.xml 用来定义package的属性。(相当于包的自我描述)
文件内部包含的就基本信息: 包名、版本号、作者、依赖等

<package>  				<!--根标签-->
	<name>  			<!--包名-->
	<version>  			<!--版本号-->
	<description>  		<!--包描述-->
	<maintainer>  		<!--维护者-->
	<license>  			<!--软件许可-->
	<buildtool_depend>  <!--编译工具-->
	<build_depend>  	<!--编译时的依赖-->
	<run_depend>  		<!--运行时的依赖-->
</package>  			<!--根标签-->
  • 代码文件:

脚本(shell、python)C++文件(头文件、源文件)

  • 自定义通信内容:

消息(msg)服务(srv)动作(action)等

  • launch文件以及配置文件:

launch文件(launch)配置文件(yaml)


包管理的常用指令:

#查找某个pkg的地址
$rospack find package_name
#列出本地所有pkg
$rospack list

#跳转到某个pkg路径下
$roscd package_name

#列举某个pkg下的文件信息
$rosls package_name

#编辑pkg中的文件
$rosed package_name file_name

#创建一个pkg
$catkin_create_pkg <pkg_name> [依赖]

#安装某个pkg所需的依赖
$rosdep install [pkg_name]  #在相应的程序的package.xml

此外还有一个和package具有共同功能的包:Metapackage
Metapackage, 与package的区别,本身不含有任何内容,但是它依赖了许多其他的软件包,通过这种方法把其他的软件包组合起来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
城市应急指挥系统是智慧城市建设的重要组成部分,旨在提高城市对突发事件的预防和处置能力。系统背景源于自然灾害和事故灾难频发,如汶川地震和日本大地震等,这些事件造成了巨大的人员伤亡和财产损失。随着城市化进程的加快,应急信息化建设面临信息资源分散、管理标准不统一等问题,需要通过统筹管理和技术创新来解决。 系统的设计思路是通过先进的技术手段,如物联网、射频识别、卫星定位等,构建一个具有强大信息感知和通信能力的网络和平台。这将促进不同部门和层次之间的信息共享、交流和整合,提高城市资源的利用效率,满足城市对各种信息的获取和使用需求。在“十二五”期间,应急信息化工作将依托这些技术,实现动态监控、风险管理、预警以及统一指挥调度。 应急指挥系统的建设目标是实现快速有效的应对各种突发事件,保障人民生命财产安全,减少社会危害和经济损失。系统将包括预测预警、模拟演练、辅助决策、态势分析等功能,以及应急值守、预案管理、GIS应用等基本应用。此外,还包括支撑平台的建设,如接警中心、视频会议、统一通信等基础设施。 系统的实施将涉及到应急网络建设、应急指挥、视频监控、卫星通信等多个方面。通过高度集成的系统,建立统一的信息接收和处理平台,实现多渠道接入和融合指挥调度。此外,还包括应急指挥中心基础平台建设、固定和移动应急指挥通信系统建设,以及应急队伍建设,确保能够迅速响应并有效处置各类突发事件。 项目的意义在于,它不仅是提升灾害监测预报水平和预警能力的重要科技支撑,也是实现预防和减轻重大灾害和事故损失的关键。通过实施城市应急指挥系统,可以加强社会管理和公共服务,构建和谐社会,为打造平安城市提供坚实的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值