当前位置: 首页 > news >正文

了解一下Ubuntu上搭建的ROS环境

ROS基本介绍

ROS 的全称是 Robot Operating System,即机器人操作系统,它不是一个传统意义上的操作系统(如 Windows、Linux),而是一个用于编写机器人软件的框架。

它相当于机器人的中间件,处理了硬件抽象、底层设备控制、进程间消息传递、包管理等高重复性、低差异性的工作,让开发者可以专注于实现机器人的核心算法和功能。

Ubuntu上搭建ROS环境

为什么ROS主要在Ubuntu上运行

官方支持与同步发布

ROS的开发团队选择 Ubuntu 作为其主要和首选的支持平台,因此每一个 ROS 发行版都会与一个特定版本的 Ubuntu 进行官方绑定和测试,例如ROS melodicUbuntu 18.04ROS NoeticUbuntu 20.04 LTS等版本。

依赖管理便利

ROS 本身依赖于大量开源库(如OpenCV等),而Ubuntu 拥有强大的软件包管理系统,可以非常方便地安装和管理这些依赖项,确保了环境的统一性和稳定性。

庞大的开发者社区

一般情况下,机器人领域的研发人员等广泛使用都是基于 Ubuntu 环境。

Ubuntu上ROS环境的核心概念

当在 Ubuntu 上安装 ROS 环境后,基本上系统上就具备了一个完整的机器人软件开发环境。

计算图级概念

这属于 ROS 的核心通信机制。

  • 节点: 一个可执行文件是 ROS 进程中的一个独立单位,机器人系统通常由许多协同工作的节点组成。
  • 主节点: 必须运行的 roscore 命令,它为所有节点提供命名、注册和查找服务,帮助节点之间建立连接。
  • 消息: 消息传输的数据结构,有标准的(如 std_msgs/String)或用户自定义的。
  • 服务: 一种请求/响应模型的同步通信机制。
文件系统级概念
  • 工作空间: ROS 包开发的自定义目录,通常包含 src(源代码)、build(编译中间文件)、devel(开发环境脚本)和 install(安装目录)等。
  • : ROS 软件的基本单元,包含节点、库、配置文件等。
常用工具

命令行工具:

  • roscore: 启动主节点。
  • rosrun: 运行一个包中的特定节点。
  • roslaunch: 通过启动文件一次性启动多个节点和配置参数。
  • rostopic: 查看和调试话题(如 rostopic echo /topic_name 可以查看话题上的消息)。
  • rosservice: 调用服务。
  • rosnode: 查看节点信息。

Ubuntu上安装ROS的步骤

操作流程

详细流程可以参考ros官方文档。

注:每个系统和ROS版本是匹配的,Ubuntu18.04所匹配的版本是melodic。

  1. 设置 sources.list:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
  1. 设置密钥
sudo apt install curl # 如果你还没有安装 curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
  1. 更新
sudo apt update
sudo apt install ros-noetic-desktop-full # 推荐,包含ROS、Rviz、仿真工具等
  1. 环境设置

    将ros环境添加到环境变量里。

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
  1. 安装构建工具:
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
sudo rosdep init
rosdep update
问题
  • 当使用sudo rosdep init失败时,如何处理?

1.提示如图所示时,需要安装,执行命令:sudo apt install python3-rosdep2(注:命令行里提示什么就输什么)
在这里插入图片描述

2.安装后,rosdep init还是失败,如图所示:
在这里插入图片描述

3.需要打开/etc/hosts文件目录,终端输入:sudo gedit /etc/hosts
4.文件就会自动打开,在末端添加:

151.101.84.133 raw.githubusercontent.com

在这里插入图片描述

5.保存后关闭, 重新执行rosdep init命令。
6.执行成功后如图所示:
在这里插入图片描述

  • 当遇到sudo rodep update失败时,如何处理?

1.错误提示如图所示:
在这里插入图片描述

2.输入命令:vi /etc/resolv.conf,改成如图所示:
在这里插入图片描述

3.保存后重新update,若还是失败,则将手机热点打开再update。

安全防范

一般来说,ROS环境中的程序通常是用C++或Python编写的,对于C++程序,它们会被编译成可执行文件,文件格式是ELF,对于Python程序,它们则是以脚本的形式运行,由Python解释器执行。

Virbox Protector工具在对elf文件和py脚本文件上有着成熟的保护方案,对elf程序的函数级和整体保护,对py进行字节码级别保护,可以防止源码泄露。

http://www.dtcms.com/a/407603.html

相关文章:

  • 博客网站搭建网站建设需要资质么
  • 泰安市景区建设网站阿里巴巴企业网站怎么做
  • 网站采用什么字体wordpress get_pages()
  • 禁用内核模块,是否需要执行脚本 $ sudo update-initramfs -u $ sudo update-grub ?
  • 建站最好的公司排名织梦cms源码
  • 渲染 Python 中用 LaTeX 语法定义的数学公式 - 环境准备
  • 做教育业网站wordpress最漂亮的主题
  • 上海快速网站建设wordpress推广浏览插件
  • JVM-垃圾回收
  • [数据结构]ST表(markdown重制版)
  • 深圳网站建设saote网站建设项目登记表
  • STL 基础概念
  • dw做旅游网站毕业设计模板下载适合代码新手做的网站
  • 为什么公司网站打不开网页链接制作生成
  • 网站制作模板过程开发app的网站有哪些
  • 原来两个std::vector可以直接进行相等判断的吗?
  • 电子工程基础原理与应用指南(初学者版)电子工程入门:三极管与MOS管全解析
  • Rust/C/C++ 混合构建 - 用Bazel构建Rust与C
  • 微信公众号的网站长沙景点视频
  • 东莞网站建设qq群网站建设与维护项目六
  • ProxySQL:实现MySQL8.0主从同步与读写分离
  • 制作网站需要学什么软件灵璧做网站的公司
  • 基于FPGA的HDB3编解码(verilog语言)
  • 北京个人网站备案wordpress 同步公众号
  • python 做网站多用户商城网站建设
  • 如何学做网站外包做网站与网页有什么区别
  • 视觉SLMA工具
  • 初识nextjs
  • 海口手机版网站建设管理网站建设
  • 定西市网站建设咨询python做网站步骤