![ROS学习笔记(2):快速体验ROS](https://cdn.jsdelivr.net/gh/renyuhui0415/blogimg@main/202311291846470.png)
ROS学习笔记(2):快速体验ROS
![](https://cdn.jsdelivr.net/gh/renyuhui0415/blogimg@main/202311052032318.jpg)
咱们每次学习新的语言第一步都是hello word。现在让我们在ros上实现一下。
ROS中涉及的编程语言以C++和python为主,虽然实现语言不同,但是流程类似。详细流程如下
- 先创建一个工作空间
- 再创建一个功能包
- 编辑源文件
- 编辑配置文件
- 编译并执行
创建工作空间并初始化
首先创建一个工作空间及一个src子目录,然后进入工作空间,调用 catkin_make命令编译。
1 | 把 ros_study 替换为 自己想起的名字,就是一个工作空间的名字而已,随便起 |
编译后会发现多了两个子目录,目前不需要管,咱们继续下一步。
创建ROS包并添加依赖
接下来进入src子目录,创建ROS包,并添加该ROS包需要用到的依赖。
1 | 注意:目前所处位置为工作空间(ros_study)内 |
然后src子目录就会多出一些文件。
C++版hello world
编辑源文件
前面都是准备工作,接下来开始写代码了。
首先在 ros_study/src/helloworld/src下创建一个cpp文件,可以使用vim创建,或者touch。
1 | 已经安装过vim的,可以跳过这一步 |
文件内容如下
1 |
|
在vim中,:进入命令行模式,输入保存并退出。不熟悉使用vim的同学,请自行百度用法,或者使用ubuntu自带的文本编辑器。
修改Cmakelist.txt文件
路径:ros_study/src/helloworld
1 | vim CMakeLists.txt |
修改136行的内容
把注释去掉,${PROJECT_NAME}_node 修改为任意内容(你想要起的名字);另外把src/后面的文件名修改为自己前面创建的cpp文件名,不然会报错
1 | add_executable(begin src/helloworld.cpp) |
同时把149~151行的注释去掉,${PROJECT_NAME}_node替换为上面的名字
1 | 我前面起的名字为begin,这里替换为begin |
进入工作空间目录并编译
首先返回工作目录
1 | cd ~/ros_study |
然后开始编译
1 | catkin_make |
这样就是编译成功了。
执行
首先打开一个终端启动ros内核,每一次运行ros的时候都需要启动内核。
1 | roscore |
然后在刚才那一个终端下设置环境变量(此时路径为在工作空间下)
1 | source ./devel/setup.bash |
接下来运行节点
1 | rosrun helloworld begin |
如下图所示,输出了 hello world!
PS:前面设置了环境变量,但是只在当前终端有效,打开新的终端后就不能用了。如果想要在全部终端下使用(以后会长期使用的包),请按以下步骤操作
1 | sudo vim ~/.bashrc |
然后在最后一行追加
1 | source ~/ros_study/devel/setup.bash #注意需要替换为自己的路径 |
最后重新加载一下 .bashrc
1 | source ~/.bashrc |
原来很简单,就是在我们打开一个新的终端后,会自动执行.bashrc文件内容,我们只需要把设置环境变量的内容添加到里面就可以了。
python版hello world
编辑源代码
注意:此时已经默认大家完成了 创建工作空间并初始化、创建ROS包并添加依赖等步骤。 首先在前面创建的包下创建一个 scripts子目录
1 | cd ~/ros_study/src/helloworld |
接下来在 scripts子目录下创建 py文件
1 | cd scripts/ |
py文件内容如下
1 | #! /usr/bin/env python |
保存并退出后,给py文件添加可执行权限
1 | chmod +x helloworld.py |
修改Cmakrlist.txt文件
路径:ros_study/scripts
1 | vim ../CMakeLists.txt |
把162~165行注释取消,把scripts/my_python_script修改为自己py文件路径
保存并退出,回到工作空间下进行编译
进入工作空间目录并编译
1 | cd ~/ros_study |
执行
首先启动ros内核,新建一个终端,输入以下命令
1 | roscore |
接下来在原先的终端内输入
1 | 此时路径为在工作空间下 |
如果之前在.bashrc刷新环境变量的话,上一步可以省略。 接下来运行节点。
1 | helloworld为包名,helloword.py为py脚本 |
声明:以上内容均为B站 【Autolabor初级教程】ROS机器人入门视频整合而来
ROS机器人入门
- Title: ROS学习笔记(2):快速体验ROS
- Author: StarHui
- Created at : 2023-11-30 19:49:20
- Updated at : 2023-11-30 20:01:24
- Link: https://renyuhui0415.github.io/post/ros_study_notes_2-ros_quick_experience.html
- License: This work is licensed under CC BY-NC-SA 4.0.