ROS学习(一)

本文详细介绍了如何在Ubuntu20.04上使用VMware配置ROSNoetic的环境,包括添加ROS软件源,设置密钥,安装过程,初始化rosdep,更新环境变量,安装相关工具以及验证ROS安装成功的步骤。还提供了遇到问题时的解决资源和Linux命令解释。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(一)ROS安装

环境配置:VMware+Ubuntu 20.04+noetic

1.添加ROS软件源

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

这一步添加了ROS的软件源,其实相当于添加了手机软件管家,可以方便的下载ROS的各种软件包。

2.添加密钥

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

3.更新软件源

sudo apt update

4.安装ROS

sudo apt install ros-noetic-desktop-full

此处注意:ROS的版本和系统版本有直接关系,我的系统是Ubuntu20.04,对应ROS的noetic版本,因此 是 ros-noetic-desktop-full,如果是Ubuntu18.04,对应的ROS版本应是Melodic,安装的命令应该改为

sudo apt install ros-melodic-desktop-full

Ubuntu版本和ROS的对应关系图如下所示。
在这里插入图片描述
这里下载会很慢,可以考虑换源,换源教程可以看这个大佬的文章

5.初始化rosdep

sudo rosdep init

此处可能会出现很多错误,没事不要怕,已经有大佬有解决办法了,传送门

6.更新rosdep

rosdep update

到这里如果没有报错的话,恭喜你已经完成了ROS的安装,但是还没有全部完成,还需要添加环境变量。

7.添加环境变量

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

这句话什么意思呢,首先echo ,我的理解就是打印,类似于C语言的printf,所以echo就相当于把后边的这句话source /opt/ros/noetic/setup.bash,打印到home目录下的 .bashrc 文件下,.bashrc文件又是什么,其实这个文件就是 终端,每次打开终端时,都会执行这个文件里边的内容,所以最终的效果就是 一打开终端都会执行 加载环境变量的命令,这样就省去了每次运行ROS都要输入加载命令的麻烦。具体的内容可以在 home下的.bashrc文件查看,当然一般情况下这个文件是不可见的,需要设置显示隐藏文件。
关于source命令我的理解是 执行一连串的 命令。所以source /opt/ros/noetic/setup.bash就是执行setup.bash这个脚本。
在这里插入图片描述

8.安装ROSinstall

sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool

到这里ROS已经安装并配置好了,接下来测试一下有没有安装成功

9.验证ROS

roscore

这句命令是启动ROS,如果出现了下边这个界面,恭喜你安装成功了
在这里插入图片描述
可以按 CTRL+C终止ROS的运行。

关于ROS的学习,推荐一个特别牛逼的博主,他的思路很清晰,并且很容易理解。传送门

关于linux下的一些命令含义:

sudo   #暂时以root权限执行命令
sudo install ros-'ROS版本'-'软件包名'   #安装某个ROS版本下的‘软件包’ 

参考文章:详细介绍如何在ubuntu20.04中安装ROS系统,以及安装过程中出现的常见错误的解决方法,填坑!!!

### ROS 学习教程入门指南 对于初学者来说,ROS(Robot Operating System)是个功能强大且复杂的工具集,用于开发机器人应用。以下是关于如何通过现有资源学习 ROS 的详细介绍。 #### 资源推荐 古月居提供了套全面的 ROS 入门课程,涵盖了从基础知识到实际操作的内容[^1]。这套视频教程适合希望快速掌握 ROS 基本概念的学习者。它不仅讲解理论知识,还提供了丰富的实践案例来帮助理解。 针对 ROS2 用户,有份详尽的《ROS2 零基础入门到实战》指南可供参考[^2]。这份文档特别强调了节点重映射等功能的实际运用方法,例如 `ros2 run demo_nodes_cpp talker --ros-args --remap __node:=my_talker` 这样的命令行技巧可以有效提升工作效率并加深对系统的认识。 另外,《ROS1/ROS2 机器人编程光速入门指南》也是篇值得阅读的文章[^3]。尽管其中部分内容涉及历史背景介绍如罗马城建设比喻说明复杂工程需时间积累外,更多聚焦于技术层面指导新用户熟悉两种版本间差异以及共同之处。 #### 实践建议 为了更好地巩固所学知识,在学习过程中应注重动手能力培养。尝试编写简单的发布订阅程序就是个很好的起点: ```cpp #include "rclcpp/rclcpp.hpp" using namespace std::chrono_literals; class MinimalPublisher : public rclcpp::Node { public: MinimalPublisher() : Node("minimal_publisher") { publisher_ = this->create_publisher<std_msgs::msg::String>("topic", 10); timer_ = this->create_wall_timer(500ms, std::bind(&MinimalPublisher::timer_callback, this)); } private: void timer_callback(){ auto message = std_msgs::msg::String(); static uint8_t count=0; message.data="Hello World "+std::to_string(count++); RCLCPP_INFO(this->get_logger(), "Publishing: '%s'", message.data.c_str()); publisher_->publish(message); } rclcpp::TimerBase::SharedPtr timer_; rclcpp::Publisher<std_msgs::msg::String>::SharedPtr publisher_; }; int main(int argc, char * argv[]) { rclcpp::init(argc, argv); auto node = std::make_shared<MinimalPublisher>(); rclcpp::spin(node); rclcpp::shutdown(); } ``` 上述 C++ 示例展示了创建个定时发送字符串消息至指定主题的 Publisher 方法。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值