ROS机器人入门系列(三)集成开发环境的搭建

4 篇文章 0 订阅
3 篇文章 0 订阅

一、终端

在ROS中我们经常需要打开多个终端窗口,为了更加方便简洁的使用我们安装一款终端软件:Terminator.

1.1  安装

sudo apt install terminator

运行结果如下:

关闭终端,使用Ctrl+Alt+t,打开终端,我们可以看到我们的终端已经变成了下面这样:

 此时在终端里我们可以右键来对终端窗口进行水平或垂直分割:

 1.2  添加新的终端到收藏夹

(1)点击桌面左下方的显示应用程序 

(2)搜索Terminator

 (3)右键添加到收藏夹

 

 成功添加!

1.3  常用快捷键

Alt+Up移动到上面的终端
Alt+Down移动到下面的终端
Alt+Left移动到左边的终端
Alt+Right移动到右边的终端
Ctrl+Shift+W关闭当前终端
Ctrl+Shift+X最大化显示当前终端
Ctrl+Shift+C复制
Ctrl+Shift+V粘贴

二、VSCode

2.1  下载

下载链接:

https://code.visualstudio.com/docs?start=true

进入网站,点击右上角的Download进入如下界面: 

点击中间企鹅下面的.deb后面的X64,开始下载


2.2  安装

打开安装包所在的文件夹,右键在终端打开,输入如下命令:

sudo dpkg -i 包名.deb

 

运行结果如下:

2.3  添加到收藏夹 

点击VSCode运行:

 出现如下界面,恭喜安装成功!

2.4  插件安装 

2.4.1  C/C++

2.4.2  Python

2.4.3  ROS

2.4.4  CMake Tools

2.4.5  Chinese

2.5  使用的基本配置

 2.5.1  创建工作空间并编译

nkdir -p 工作空间名称/src
cd 工作空间名称
catkin_make

 2.5.2  启动VSCode

确保当前工作目录在所建的工作空间,输入如下命令:

code .

运行结果如下:

2.5.3  VSCode中编译ROS

在VSCode界面按下快捷键Ctrl+Shift+b,弹出如下内容:

点击catkin_make:build后面的齿轮图标配置任务,将会打开如下文件:

这里我们将文件里的全部内容替换为如下内容:

配置完成之后,在以后的工作中按下快捷键Ctrl+Shift+b,将会默认编译整个工作空间 ,如下图所示:

2.5.4  创建ROS功能包

(1)在src文件夹上右键,点击Create Catkin Package

点击之后弹出如下弹窗,这里是输入功能包的包名,然后回车,这里我的功能包命名为hello

回车之后弹出如下弹窗,这里是添加依赖,包括roscpp、rospy、std_msgs,输入之后回车 

出现如下结果,恭喜功能包创建完毕!

2.5.5  源文件编写

2.5.5.1  C++

(1)右键src文件夹,新建文件创建c++源文件,这里我命名为hello_c

(2)编写程序

(3)修改配置文件并进行编译

打开功能包目录下面的CMakeLists.txt文件

找到我们第二篇博客讲过的add_executabletarget_link_libraries,首先删除他们附近的井号

对于add_executable(${PROJECT_NAME}_node  src/hello_node.cpp)

第二个参数src/hello_node.cpp是我们刚刚编写的源文件,我编写的源文件是在src文件夹下的hello_c.cpp文件,因此将第二个参数修改为src/helllo_c.cpp;第一个参数是给执行文件命名(自定义),这里我命名为hello_c,也就是把第一个参数改为hello_c,当执行hello时就会映射到我编写的helloworld_c.cpp文件。

对于target_link_libraries我们只需要改第一个参数,将其改为我们刚刚命名的执行文件

修改后如下:

保存之后,按下快捷键Ctrl+Shift+b进行编译,成功之后出现如下提示:

 (4)执行

首先打开一个新的终端,输入roscore,启动ROS核心

再打开一个新的终端,输入:source ./devel/setup.bash,重新配置环境变量

然后输入:rosrun hello hello_c进行执行,这里的hello是我的功能包的包名,hello_c是刚刚修改配置文件时命名的执行文件名称,运行结果如下:

可以看到成功的打印了hello 

2.5.5.2  Python

(1)右键工作空间文件夹(我的工作空间名为hello),新建文件夹创建scripts文件夹,然后右键scripts文件夹创建python源文件,这里我命名为hello_p

(2)编辑源文件

(3)添加权限

右键scripts文件夹,在集成终端打开,输入如下命令:

chmod +x *.py

 此命令会给所有的python文件添加执行权限,然后在命令行输入ll,可以看到成功添加了执行权限

(4)修改配置文件并进行编译

打开功能包下的CMakeLists.txt文件 

找到第162行的catkin_install_python,我们需要更改的是scripts/my_python_script, my_python_script处应该改为我们刚刚编辑的python源文件,更改后如下:

保存之后,按下快捷键Ctrl+Shift+b进行编译,成功之后出现如下提示:

 

补充: 

如果不配置CMakeLists.txt文件,执行python文件会抛出如下异常:

/usr/bin/env :"python": 没有那个文件或目录

原因:当前的noetic使用的是python3 

解决方法:

a.直接申明解释器为python3

b.通过软连接将python链接到python3,如下:

sudo ln -s /usr/bin/python3 /usr/bin/python

​​​(5)执行

 首先打开一个新的终端,输入roscore,启动ROS核心

 再打开一个新的终端,输入:source ./devel/setup.bash,重新配置环境变量;然后输入:rosrun hello hello_p.py进行执行,这里的hello是我的功能包的包名,hello_p.py是刚刚编写的python文件名称,运行结果如下:

可以看到成功的打印了hello! 

三、launch文件

一个程序可能需要启动多个节点,如果逐一启动显然效率低下,官方给出的优化策略是使用launch文件,可以一次启动多个节点。

接下来我们用实现以下乌龟运动案例:

3.1  新建launch文件

右键功能包,新建launch文件夹,在launch文件夹下创建launch文件,文件名自定义,这里我命名为turtle:

3.2  编写launch文件

基本的launch文件框架如下:

完整的launch文件如下: 

 

3.3   执行

首先刷新一下环境变量

source ./devel/setup.bash

 然后输入如下命令:

roslaunch 功能包名 launch文件名.launch

我的包名是hello,launch文件名是turtle,所以我编写的命令是:

roslaunch hello turtle.launch

运行结果如下:

  • 14
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值