1、什么是ROS?
Robot operating System ,简单说机器人操作系统,弱耦合的分布式进程框架,通过进程间的消息传递和管理。实现硬件抽象和设备控制。
2、节点(node)
- node 是ROS的核心实体。
- 一段ROS程序
- 使用ROS的中间件进行通信
- 节点之间可以独立的启动和停止
3、和节点相关的概念
- message
- topic
- roscore :
- 有且只有一个roscore 可以运行
- 必须首先启动roscore
- 负责调度通信
- 发布器节点和roscore通信(如初始化一个topic)
- publisher、subscriber
4、工具
catkin_create_pkg: 创建一个package
catkin_make: 编译ROS程序
rosrun: 运行ros程序
rostopic: 主题有关的命令
rostopic list ; rostopic hz topic1; rostopic bw topic1; rostopic info topic1; rostopic echo topic1
rosnode list : 产看运行的节点列表
roslaunch : 通过编辑.launch 的文件自动启动多个节点
rosbag : 对话题数据的记录和回放
rosbag record topic1
rosbag play name1.bag
rqt_plot: 对结果的可视化
5、常用工具详细介绍
catkin_create_pkg:
catkin_create_pkg [packageNmae] [依赖项]
依赖项: roscpp: 使用c++编译器,兼容c++接口; std_msgs: ros预定义的数据类型
catkin_make:
package.xml : 组织ROS程序包,命名程序包名称、依赖项
<name></name>
<build_depend></build_depend>
<run_depend></run_depend>
CMakeLists.txt : 一个简单示例如下
cmake_minimum_required(VERSION 2.8.3) project(demo-proj1-nodes) # package name find_package(catkin REQUIRED COMPONENTS roscpp std_msgs ) catkin_package( # INCLUDE_DIRS include # LIBRARIES my_minimal_nodes # CATKIN_DEPENDS roscpp std-msgs # DEPENDS system_lib ) include_directories( include ${catkin_INCLUDE_DIRS} ) add_executable(my_minimal_publisher src/minimal_publisher.cpp) add_executable(my_minimal_publisher2 src/sleep_minimal_publisher.cpp) target_link_libraries(my_minimal_publisher ${catkin_LIBRARIES} ) target_link_libraries(my_minimal_publisher2 ${catkin_LIBRARIES} )
编译命令:catkin_make
编译后会有,devel 和build 两个文件夹
rosrun:
首先使用添加环境变量: source ./devel/setup.bash
rosrun [package-name] [可运行程序名称]