怎样在ROS系统中建立工作空间和ROS软件包 您所在的位置:网站首页 ros支持什么语言 怎样在ROS系统中建立工作空间和ROS软件包

怎样在ROS系统中建立工作空间和ROS软件包

2023-06-20 08:26| 来源: 网络整理| 查看: 265

要想创建工作空间,首先你需要了解什么是工作空间。

在ROS系统中,工作空间是一个包含ROS软件包的目录。它是ROS软件开发的基本组织单位,它类似于其他的编程语言中的项目或者工程。

工作空间常常包含一个或者多个软件包,每个软件包都包含着ROS节点、消息、服务、动作、参数等组件,用于实现功能。在ROS系统中,工作空间的创立和管理十分重要,它直接影响到ROS软件包的编译、运行和调试。

目录

一、建立工作空间

二、建立ROS软件包

三、编写功能程序

四、添加环境启动节点

一、建立工作空间

你想在你的ROS系统中创建工作空间,首先你需要打开终端输入以下指令:

mkdir -p ~/catkin_ws/src

接下来进入src:

cd ~/catkin_ws/src

利用以下指令,完成对src的操作,实现文件夹存放ROS软件包的源代码的目标:

catkin_init_workspace

然后进入catkin_ws,在此根目录下进行编译:

cd ..

catkin_make

注意:工作空间catkin_ws是ROS系统默认的名字,你也可以更改命令实现创建你喜欢的工作空间的名字。例如:mkdir -p ~/my_workspace/src

二、建立ROS软件包

完成工作空间的创建,接下来在src文件夹中创建属于你的ROS软件包:

输入下面的指令进入src文件夹:

cd catkin_ws/src

输入以下指令,创建ROS软件包:

catkin_create_pkg robot_laser_navigation rospy roscpp std_msgs sensor_msgs nav_msgs

注意:这里的创建了一个名为“robot_laser_navigation”的软件包,名字可以按照你想实现的功能的名字,使用了python语言编写的ROS节点和c++语言编写的ROS节点,以及ROS的消息类型。ROS系统支持多语言的编写,你可以在你的软件包中使用你喜欢的语言进行编写节点,以此来实现你想要实现的功能。在这里,我使用了两种编程语言一是python,二是c++,但是,一个软件包既可以使用一种语言,也可以使用多种语言编写,并不影响你的开发。

三、编写功能程序

接下进入你创建的ROS软件包的src文件夹:

cd ~/catkin_ws/src/robot_laser_navigation/src

然后创建你实现功能的源代码:

touch laser_navigation.py  或者  touch laser_navigation.cpp

然后赋予权限完成各项工作就可以启动了:

chmod +x laser_navigation.py  或者  chmod +x laser_navigation.cpp

最后利用以下指令进入文件编写程序:

sudo vim laser_navigation

或者在windows系统下完成相应程序编写,通过winscp完成文件的传输。

注意:文件需要放入src文件夹下,然后在windows下写的python程序,有可能出现报错,可以得知,windows下的python程序在linux下有些符号不相通,文件就不能正常启动,需要输入以下转换:

dos2unix laser_navigation.py

也可以在你的程序文件中添加这条程序:

# -*- coding: utf-8 -*- 完成工作空间和软件包的编写,现在就开始对整个工作空间进行编译:

cd catkin_ws

catkin_make

这里有你编写的python文件和c++文件,利用c++编写的节点很轻松的输出相应节点,而python没有,这里不要慌张,其实已经编译完成了。

四、添加环境启动节点

注意:出现报错,有可能编写的文件有错,请检查文件,没有问题,请检查CMakeLists.txt中依赖项添加是否正确。报错应当根据出现的报文检查。

然后将工作空间加入到环境中:

echo "source /opt/ros//setup.bash" >> ~/.bashrc

echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc

注意:这样就可以将source添加到~/.bashrc文件当中,每次打开终端都会自动将catkin_ws/src添加到系统环境中。这里的是你的ROS系统的版本,你可以利用以下指令检查你的ROS系统版本:

rosversion -d

完成之后,就可以利用指令启动你编写的节点或者文件了:

rosrun robot_laser_navigation laser_navigation.py

或者

rosrun robot_laser_navigation laser_navigation

注意:启动节点之前,请利用roscore启动ROS。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有