ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ROS基础(part 1)

2022-01-12 12:33:00  阅读:124  来源: 互联网

标签:node catkin sudo 基础 part build ROS 安装


因为最近研究所的项目涉及到了ROS,这里简单记录一下,有关ROS的学习收获。

文章目录

1. ROS的安装经历

ROS的安装中遇到绝大多数的问题都是缺乏依赖包,或者是下载速度特别慢。其实跟着官方文档进行操作会避免很多麻烦。

  • 第一步,需要set up source.list。在做这一步的时候,千万不能直接照着复制,官方提供了中国地区专用的链接,使用他们下载ROS会快很多,这可以解决安装过程在下载速度奇慢的问题。
    (可以在以下网站中查找:http://wiki.ros.org/ROS/Installation/UbuntuMirrors)

  • 第二步,添加密匙

sudo apt-key adv --keyserver ‘hkp://keyserver.ubuntu.com:80’ --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
  • 第三步,需要在安装之前 update apt。
  • 第四步, 正式安装 sudo apt install ros-melodic-desktop-full 这里需要注意的是 ROS Kinetic 在去年已经没有在维护了,所以安装melodic。
  • 第五步,在安装完成之后,需要更新Linux的环境变量。
  • 第六步,安装一些依赖包
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
sudo apt install python3-rosdep
  • 第七步sudo rosdep initrosdep update
  • 第八步,可通过检测ROS的版本来判断,ROS是否安装成功,如果出现的正确的版本则安装成功,如果是< unkown >则没有成功。

2. ROS的基本概念

  • ROS node: 可以理解成ROS APIs使用的进程。
  • ROS master: 连接不同node的中介。
  • ROS param server: 用于存储不同的参数,每一个node都可以使用param上面的参数。
  • ROS topic:是node用于传输message的通道。
  • ROS message:ROS 信息通过 topic进行传输,对于这些message,ROS中有原生的数据类型。但是用户也可以写自己的数据类型。
    ROS service: 是ROS node之间的一种通信方式,使用请求查询式的通信模式,可以解决TOPIC的通信缺陷,如:无法确定发布信息是否被收到等。
  • ROS Bag: 用于储存从数据的一种方法。

3. ROS的基本命令

  1. roscore:用于启动ROS master, parameter server, logging node,在运行ROS 程序都应该先运行这一行命令。
  2. renode:可使用该命令,查看node的情况,在启动master的前提之下,使用rosnode可以查看当前正在运行的所有nodes。在运行rosrun roscpp_tutorials talker 之后运行 rosnode可得到以下结果:
    在这里插入图片描述
  3. rostopic list: 输出所有topic的信息
  4. rostopic pub topic_name msg_type data : 发送一个有着特定数据类型的数据。
  5. rostopic echo /topic:可以接受到一个相同topic是发送的数据。
    具体的发送和接受数据的例子如下:
    在这里插入图片描述
  6. rosversion : 检查ROS版本
  7. rosparam list : 打印当前参数
  8. rosparam set parameter_name value : 设置参数。
  9. rosparam get parameter_name:通过名字来找到参数。
  10. rosrun node_name : 运行一个节点。

4. ROS 编程基础

4.1 如何创建工作区

创建工作区的过程中,不要使用sudo的身份,不然在初始化的时候可能会报错。

  1. 在使用ROS之前需要首先创建一个工作目录。创建工作目录的第一步是创建一个包含名为src的文件夹,这个文件的名字是不能变的,它的主要作用就是存放ROS packages。
  2. 然后对工作区进行初始化–> catkin_init_workspace。运行了此条命令之后,文件夹下会出现CMakeLists.txt一个文件

如果出现类似的问题,可能是因为在创建工作目录的时候使用了sudo的身份。退出root重新创建即可。
Could neither symlink nor copy file “/opt/ros/melodic/share/catkin/cmake/toplevel.cmake” to “/home/catkin_ws/CMakeLists.txt”:
[Errno 13] Permission denied
[Errno 13] Permission denied: ‘/home/catkin_ws/CMakeLists.txt’

  1. 之后在工作目录下执行 catkin_make进行编译。
  2. 编译成功之后在工作目录下会多出 devel 和 build两个文件夹。
  3. 之后更新linux的环境变量(必须要做)
    至此工作目录构建完成。

4.2 工作区的构成

前面提到工作目录由src,devel, build 三个文件夹组成,那么他们分别的作用是什么呢。

src: src folder inside the catkin workspace folder is the place where you can create, or clone, new packages from repositories. ROS packages only build and create an executable when it is in the src folder.

build folder: 在执行了catkin_make命令之后生成的,主要存放一些 build file 和 cache CMake files。缓存的目的是为了防止重复编译。

devel:当文件编译成功之后,可执行文件就保存在 devel 中,只用在运行了这个文件夹下的setup.bash文件,这些编译好的ROS包才能运行。source ~/catkin_ws/devel/setup.bash

标签:node,catkin,sudo,基础,part,build,ROS,安装
来源: https://blog.csdn.net/weixin_52668444/article/details/122447011

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有