ROS学习笔记(2):快速体验ROS

ROS学习笔记(2):快速体验ROS

StarHui Lv3

咱们每次学习新的语言第一步都是hello word。现在让我们在ros上实现一下。
ROS中涉及的编程语言以C++和python为主,虽然实现语言不同,但是流程类似。详细流程如下

  1. 先创建一个工作空间
  2. 再创建一个功能包
  3. 编辑源文件
  4. 编辑配置文件
  5. 编译并执行

创建工作空间并初始化

首先创建一个工作空间及一个src子目录,然后进入工作空间,调用 catkin_make命令编译。

1
2
3
4
#把 ros_study 替换为 自己想起的名字,就是一个工作空间的名字而已,随便起
mkdir -p ros_study/src
cd ros_study
catkin_make

编译后会发现多了两个子目录,目前不需要管,咱们继续下一步。

创建ROS包并添加依赖

接下来进入src子目录,创建ROS包,并添加该ROS包需要用到的依赖。

1
2
3
4
#注意:目前所处位置为工作空间(ros_study)内
cd src
# catkin_create_pkg + 包名 + 依赖
catkin_create_pkg helloworld roscpp rospy std_msgs

然后src子目录就会多出一些文件。

C++版hello world

编辑源文件

前面都是准备工作,接下来开始写代码了。
首先在 ros_study/src/helloworld/src下创建一个cpp文件,可以使用vim创建,或者touch。

1
2
3
4
5
#已经安装过vim的,可以跳过这一步
sudo apt-get install vim

#注意此时路径为 ros_study/src/helloworld/src
vim helloworld.cpp

文件内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#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;
}

在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
2
3
4
#我前面起的名字为begin,这里替换为begin
target_link_libraries(begin
${catkin_LIBRARIES}
)

进入工作空间目录并编译

首先返回工作目录

1
cd ~/ros_study

然后开始编译

1
catkin_make

这样就是编译成功了。

执行

首先打开一个终端启动ros内核,每一次运行ros的时候都需要启动内核。

1
roscore

然后在刚才那一个终端下设置环境变量(此时路径为在工作空间下)

1
source ./devel/setup.bash 

接下来运行节点

1
2
3
rosrun helloworld begin
#rosrun 包名 C++节点
#包名就是创建ROS包起的名字,C++节点名就是在Cmakelist.txt 修改节点的名字

如下图所示,输出了 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
2
cd ~/ros_study/src/helloworld
mkdir scripts

接下来在 scripts子目录下创建 py文件

1
2
cd scripts/
vim helloworld.py

py文件内容如下

1
2
3
4
5
6
7
#! /usr/bin/env python

import rospy

if __name__ == "__main__":
rospy.init_node("hello")
rospy.loginfo("hello world by rospy!")

保存并退出后,给py文件添加可执行权限

1
chmod +x helloworld.py

修改Cmakrlist.txt文件

路径:ros_study/scripts

1
vim ../CMakeLists.txt

把162~165行注释取消,把scripts/my_python_script修改为自己py文件路径

保存并退出,回到工作空间下进行编译

进入工作空间目录并编译

1
2
cd ~/ros_study
catkin_make

执行

首先启动ros内核,新建一个终端,输入以下命令

1
roscore

接下来在原先的终端内输入

1
2
#此时路径为在工作空间下
source ./devel/setup.bash

如果之前在.bashrc刷新环境变量的话,上一步可以省略。 接下来运行节点。

1
2
#helloworld为包名,helloword.py为py脚本
rosrun helloworld helloword.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.
Comments