Ubuntu16.04下创建工作空间并添加自己的功能包(python代码)

 话不多说,直接上步骤

1. 创建工作空间

    1.1 创建工作空间

工作空间其实就是一个目录,我们命名为test_ws,并且在该目录下创建一个src文件夹,终端命令如下,文件结构图如下。

# mkdir是创建目录,-p是递归创建子目录
mkdir -p test_ws/src

    1.2 创建功能包

我们这里新建一个rabbot_base_control文件夹放置可执行代码,创建两个子目录launch和scripts,并创建CMakeLists.txt和

package.xml文件,CMakeLists.txt和package.xml都是设置工作空间编译所需的配置文件,具体如何使用以及指令的含义,

可以网上自行搜索了解一下哈,这里就不细讲了,终端命令和文件结构如下所示。

# 博客中新建文件或文件夹都是相对位置,所以要先进入到相应位置
cd test_ws/src/
mkdir rabbot_base_control
cd rabbot_base_control

# 创建launch和scripts文件夹
mkdir launch
mkdir scripts

# 创建CMakeLists.txt和package.xml文件
touch CMakeLists.txt
touch package.xml

    1.3 编写python代码文件

我们先在scripts文件夹下创建一个base_control.py文件,并在里面编写一点python代码,终端命令和python代码如下所示

cd scripts/
touch base_control.py

# 使用gedit编辑文件,也可以用vim
gedit base_control.py

 

    1.4 编写launch文件

在launch文件夹下创建一个base_control.launch文件,并在里面添加如下内容,终端命令和添加内容如下所示

# 先返回到上级目录,再进入launch文件夹
cd ..
cd launch

touch base_control.launch
gedit base_control.launch

    1.5 编写CMakeLists.txt文件

# 简单说明
# catkin_package()表明该文件夹是可以被catkin_make编译的功能包
# install(PROGRAMS)表明什么文件会被作为程序编译运行
# install(DIRECTORY)表明什么文件夹会被考虑

    1.6 编写package.xml文件

# 简单说明
<name> <version> <description> <maintainer> <license> <buildtool_depend>这些标签都是必须在xml文件中添加的(你可以尝试不添加其中某个标签),内容根据情况填写即可。

但是<buildtool_depend>标签中的内容必须包含 catkin,后期才可以编译成功,编译报错如下。

    1.7 编译工作空间

进入test_ws工作空间位置,然后使用catkin_make命令,终端命令如下

# 进入test_ws工作空间目录
cd ~/test_ws/

# 对工作空间进行编译
catkin_make

 

编译后工作空间下和src文件夹同级多了devel和build两个文件夹,src目录下增加了一个CMakeLists.txt,是一个链接文件

       

    1.8 运行launch文件

此时我们直接运行launch文件会发现是有错的,如下,提示我们不是一个launch文件。

is neither a launch file in package nor is a launch file name

解决:是不是记起来我们需要在bashrc文件中配置环境信息啦

# 编写bashrc文件内容,在bashrc文件最后一行添加 source /home/你的用户名/test_ws/devel/setup.bash
sudo gedit ~/.bashrc

# 更改退出后,使用如下命令更新一下bashrc环境信息
source ~/.bashrc

更改配置文件后,需要关闭目前终端,重新打开一个,此时运行launch文件,我们会发现还有下图的错误,

ERROR: cannot launch node of type [*/*.py]: can't locate node [*.py] in package

如果没有就跳过此步

错误是说无法在rabbot_base_control包中定位到base_control.py文件,经过网上搜索了解到,原因是我们编写的python文件

无法作为可执行文件,我们右键base_control.py文件,然后选择“Permissions”选项,勾选“Allow executing file as program”即可

勾选后我们再运行launch文件可以正常运行,并且输出了我们代码的提示信息“Workspace successfully be created”

附录. X Error of failed request: BadDrawable (invalid Pixmap or Window parameter)

问题:具体的报错当时忘记截图了,这一行是我当时从终端复制去网上搜索的内容,出现类似问题可以试试

解决:在 /etc/environment 文件末尾设置环境变量 QT_X11_NO_MITSHM = 1,终端命令和添加位置如下图

# 使用gedit打开environment文件
sudo gedit /etc/environment

 

猜你喜欢

转载自blog.csdn.net/yldmkx/article/details/110930475