ROS的官方网站
www.ros.org
http://wiki.ros.org/
二进制sudo apt-get(安装上了直接用主要是基础软件不用改动)
原代码(编译之后才能运行)
工程结构(文件系统级)
catkin 工作空间(ROS定制的编译系统,对CMake的扩展)
mkdir -p ~/caatkin_ws/src
cd ~/catkin_ws/
catkin_make
source ~/catkin_ws/devel/setup.bash
#编译完需要更新环境
src(package 源代码),build(cmake&catkin缓存和中间文件),devel(目标文件)
src
package(catkin编译的基本单元,递归的查找每一个package,可以把几个package放在同一个文件下)
概念
- ROS软件的基本组织形式
- catkin编译的基本单元
- 一个package可以包含多个可执行文件(节点)
- 包含CMakeLists.txt,package.xml(最精简结构)
CMakeLists.txt(规定catkin编译的规则)
例如:源文件,依赖项,目标文件
package.xml(定义package的属性)
例如:包名,版本名,作者,依赖等
<build_depend>
<run_depend>
代码文件
脚本(shell,python)
C++(头文件,源文件)
package
->CMakeLists.txt,package.xml
->include(.h),src(.cpp),
scipts(用来放可执行脚本*.py *.sh)
->(自定义通信格式)消息(msg(.msg))服务(srv(.srv自定义的))动作(action(*.action))
->config(.yaml)(参数,设置)launch(.launch)(用来一次性运行多个文件)launch以及配置文件(launch文件(launch),配置文件(yaml))
常用指令
- rospack(查找某个pkg的地址)
rospack find package_name - (列出本地所有的pkg)
rospack list - roscd(跳转到某个pkg的路径下)
roscd package_name - rosls(列举某个pkg下的文件信息)
rosls package_name - rosed(编辑pkg中的文件)
rosed package_name file_name - catkin_create_pkg(创建一个pkg)
catkin_create_pkg <pkg_name> [deps] - rosdep(安装某个pkg所需的依赖)
rosdep install [pkg_name]
catkin_create_pkg test2 roscpp rospy std_msgs nav_msgs
std_msgs通信nav_msgs导航
~/catkin_ws/src $ git clone …
Metapackage(虚包自身没什么内容,依赖了很多软件包)
sudo apt-get install ros-noetic-desktop-full
stack软件包集
https://github.com/ros-planning/navigation
把一些相似功能的软件包组织起来