@[TOC](解决ROS程序注册(source devel/setup.bash)只在当前终端生效的问题目录)
在进行ROS的嵌入式编程的时候,每次程序编写完成,都需要进行编译,这是ROS嵌入式开发的必要步骤,但还有一步,比较繁琐,觉得可以省略,就是对程序的注册,一个编写的程序,在ROS环境下,只有通过注册才能对程序进行运行,这样就很繁琐
那么、有没有办法可以让我们不去操作这一步呢?让每次打开终端,系统就对我们程序进行注册,本次博客,林君学长就带大家解决程序注册的问题

  • 下面的例子,学长随便用的一个ROS环境下的python编程文件

一、问题描述

1、新建终端,没有进行程序注册时出现的问题

首先运行ros,然后进行测试

roscore

1)、进入ROS工作区

cd ros

2)、运行我们编写的程序代码

rosrun comm Person_Publisher.py 

在这里插入图片描述
可以看到,运行之后,因为没有进行程序注册,出现工程包comm没有找到的错误,下面,我们进行程序注册!

2、将本python代码的程序进行注册

1)、进行程序注册

source ./devel/setup.bash

2)、再次运行我们编写的程序代码

rosrun comm Person_Publisher.py 

在这里插入图片描述


可以看到,程序注册后,再次运行就不会报错,现在,只不过现在是我们人为的程序注册,而且,每次新开一个终端都需要我们注册,所以比较繁琐

因此,我们需要让系统当我们一打开终端就对我们的程序进行注册,这样就不用我们手工进行注册了!
一起来看解决步骤吧!

二、问题解决

1、在终端输入以下命令,打开[.bashrc]文件

1)、打开 .bashrc文件

gedit ~/.bashrc

2)、文件内容如下所示:
在这里插入图片描述

2、将ROS程序注册命令写入文件的末尾

1)、ROS程序注册命令如下:

source ~/ros/devel/setup.bash

将上面这句写入 .bashrc文件的末尾
注意:其中ros是我自己的ROS工作区哦,大家记得改为自己的ROS工作区
2)、修改内容如下图:
在这里插入图片描述

在文件末尾添加程序注册命令,然后点击保存、关闭,我们就设置好了,现在,让我们进行测试吧!

三、解决测试

1、在新建一个终端,进行测试

1)、启动ROS

roscore

2)、新建一个终端,进入ROS工作空间

cd ros

3)、直接运行我们的python文件

rosrun comm Person_Publisher.py

4)、运行结果如下所示:
在这里插入图片描述

上面我们可以看到,本次在ROS环境下运行我们的python代码,我们自己并没有进行手工的程序注册,就可以直接运行了,这是因为在我们的 .bashrc文件中我们通过命令,将程序注册写进了ROS的系统进程,在启动终端时候,自动帮我们进行程序注册了!这就为我们简化了操作哦!

以上就是本次博客的全部内容,希望对本次博客的查看,可以解放小伙伴的双手,简化我们的ROS操作哦!
遇到问题的小伙伴记得评论区留言哦,林君学长看到后,会为大家解答的,这个学长不太冷!
陈一月的又一天编程岁月^ _ ^