[ROS学习](2)ROS简介及基础操作

[ROS学习](2)ROS简介及基础操作

1、简介

机器人设计包含了

  • 硬件设计
  • 嵌入式软件设计
  • 上层软件设计
  • 机械结构设计
  • 机械加工

机器人操作系统 (Robot Operating System,ROS )

  • 适用于机器人的开源元操作系统
  • 集成了大量的工具、库、协议,提供类似OS所提供的功能,简化对机器人的控制
  • 提供了分布式获取、构建、编写和运行代码的工具和库,类似于机器人的框架
  • ROS系统是通讯机制(Plumbing)、工具软件包(Tools)、机器人高层技能(Capabilities,例如扫图、导航等)以及机器人生态(Ecosystem)的集合体

ROS设计目标

  • 代码复用
  • 分布式:ROS是一个进程,可适用于分布式处理
  • 松耦合:接口间的耦合性较低,只需关注各自领域即可
  • 精简:为了复用性
  • 语言独立性:多语言适配
  • 易于测试:含内置测试框架
  • 大型应用:适用于大型运行时系统和大型开发流程
  • 丰富的组件化工具包
  • 免费且开源

2、基础操作

2-1、创建一个工作空间

mkdir ./ros_work_space/src
# 初始化工作空间
catkin_init_spacce
# 返回 ros_work_space/src 编译该工作空间
catkin_make

2-2、创建hello ros c++程序

创建包

# 在 创建好的工作空间 src 目录下 创建一个名为 helloros 的功能包 (roscpp rospy std_msgs为该功能包的依赖项)
catkin_create_pkg helloros roscpp rospy std_msgs 

于该功能包的 src 目录下创建 c++ 文件

touch helloros_c.cpp

编辑该 c++ 文件 作为源程序

#include "ros/ros.h"

int main(int argc, char *argv[])
{
    //执行 ros 节点初始化
    ros::init(argc,argv,"hello");
    //创建 ros 节点句柄(非必须)
    ros::NodeHandle n;
    //控制台输出 hello world
    ROS_INFO("hello world!");

    return 0;
}

编辑该功能包下 CMakeLists.txt 文件

# 找到136行的  去除注释符号 并修改为
add_executable(功能包名 src/helloros_c.cpp)
# 找到149行的函数  去除注释符号 并修改为
target_link_libraries(功能包名
	${catkin_LIBRARIES}
)	

返回工作空间目录下编译该工作空间

catkin_make

编译成功后,启动ros核心

roscore

执行该功能包中的程序

# 添加环境变量
source ./devel/setup.bash
# 执行helloros包下的功能包 例 讲上述功能包名设置为 roshello
rosrun helloros roshello

若无错误即可看到输出 (该输出是由 cpp 程序中的 ROS_INFO() 函数执行的结果)

2-3、创建 hello ros python 程序

2 中创建的 功能包下 创建 scripts 文件夹(作为python文件存放的文件夹)

cd helloros
mkdir scripts

进入 scripts 文件夹 创建 helloros_p.pypython 程序

cd scripts 
touch helloros_p.py

编辑该 helloros_p.py 程序

#! /usr/bin/env python
## 指定 Python 解释器
# 1 导包
import rospy
# 2 编写函数主入口
if __name__ == "__main__":
	rospy.node("hello")
	# 3 输出 日志
	rospy.loginfo("hello ROS!")

由于 python 文件属于脚本文件,因此需要添加 可执行权限

chmod +x helloros_p.py
# 可使用 ll 命令 查看权限

修改 helloros 功能包下 CMakeLists.txt 文件

# 162 行 去除解释 修改文件名
catkin_install_python(PROGRAMS
	scripts/helloros_p.py
	DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

返回 ros_work_space 目录下 编译工作空间

catkin_make

打开新终端 运行 roscore

roscore

在之前打开的终端中 加载 setup.bash 并执行程序 helloros_p.py

source ./devel/setup.bash
rosrun helloros helloros_p.py

若无错误,则可看到输出 hello ROS!

【参考 】

上一篇:voxgraph 安装问题解决


下一篇:matplotlib画图X轴数据太多(例如时间)如何只显示一部分