ros快速入门
ros是什么
个人理解:ros是一款机器人开发系统,通常情况下基于linux系统上。可以类比为安卓系统。其中的node节点可以理解为app
可以使用apt和git下载功能包和自己书写功能包
主要使用Ubuntu来安装ros
Ubuntu使用
切换中英键
shift键,如果不行,则使用win和空格键
文件系统
主文件夹/home/user
/bin:放置系统可执行二进制文件
/etc:放置所有系统需要管理的配置文件和子目录
/opt:安装的功能包
/home: 家用户目录
/lib:存放共享的库文件,被许多/bin和/sbin中程序使用
ros应用商店APT源
网址:index.ros.org
还有开源网址github.com
添加source
在用户目录下
1 | vim ~/barch |
在这中间添加需要添加的东西
1 | source /opt/ros/noetic/setup.bash |
超级终端
1 | sudo apt install terminator |
方便在一个终端窗口中打开多个终端
常用快捷键”ctrl”+”shift”+”e”/“o”/“w”上下分割、左右分割、关闭终端
node节点和package包
包中含有节点(可以用旺旺大礼包中单独零食和整个大礼包来理解)
node示例
进入到工作环境下的src目录下
1 | catkin_create_pkg name rospy roscpp std_msgs |
创建命令+包名+依赖
roscpp示例代码
1 |
|
整体框架:
1、使用catkin_create_pkg创建一个软件包
2、在软件包的src文件夹下创建一个节点的cpp源码文件
3、在节点的源码文件中include包含ros的头文件
4、构建一个main函数,并在函数的开头执行ros::init()
5、构建while循环,循环条件为ros::ok()
6、在CMakeLists.tx中设置节点源码的编译规则
7、编译运行
Topic话题和Message消息
Topic:用于包和包之间的通信。
实现:一端在topic不停发布消息,另一端在对应话题接收。
话题发布者Publisher
订阅者Subsciber
小结:
1、话题Topic是节点间进行持续通讯的一种形式
2、话题通讯的两个节点通过话题的名称建立起话题通信连接
3、话题中通信的数据,叫做消息Message
4、消息Message通常会按照一定的频率持续不断的发送,以保证消息数据的实时性。
5、消息的发送方叫做话题的发布者Publisher
6、消息的接收方叫做话题的订阅者Subsciber
话题常用工具
1 | rostopic list |
launch启动多个ros节点
launch使用的是xml语法
1 | <launch> |
使用python编写ros源代码
1 | #!/usr/bin/env python3 |