ROS学习笔记(一)ROS安装和helloworld

2023-05-16

ROS学习笔记(一)ROS安装和helloworld

文章目录

  • 一、ros安装及测试
    • 1. 打开ubuntu软件和更新,进行如下设置
    • 2. 设置安装源
    • 3. 设置安装密钥
    • 4.更新软件源
    • 5.安装ros
    • 6.添加命令
    • 7.初始化rosdep
    • 8.设置环境变量
    • 9.构建依赖
    • 10.测试ros
  • 二、利用vscode 编写helloworld全过程
    • 1.安装相关功能包
    • 2.创建工作空间
    • 3.启动vscode
    • 4.在vscode中编译ros
    • 5.创建ros功能包
    • 6.c++代码部分
    • 7.配置CMakeLists.txt
    • 8.编译执行及最终效果


前言:
本文是新手的学习笔记。如有错误欢迎指正
使用版本:ubuntu20.04
使用语言:c++
参考链接:http://www.autolabor.com.cn/book/ROSTutorials/

https://blog.csdn.net/qq_44339029/article/details/120579608?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168007050016800184160811%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=168007050016800184160811&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-120579608-null-null.142v77insert_down38,201v4add_ask,239v2insert_chatgpt&utm_term=ubuntu20.04%E5%AE%89%E8%A3%85ros&spm=1018.2226.3001.4187

侵删

一、ros安装及测试

1. 打开ubuntu软件和更新,进行如下设置

在这里插入图片描述

2. 设置安装源

推荐使用慕雨老师推荐的安装源,官方安装源可能会有境外屏蔽

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

3. 设置安装密钥

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

4.更新软件源

sudo apt update

如果成功升级则进入下一步

5.安装ros

sudo apt install ros-noetic-desktop-full

这一步记得多做几次!直到出现此界面

zzl@zzl-lenovo:~$ sudo apt install ros-noetic-desktop-full
[sudo] zzl 的密码: 
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
ros-noetic-desktop-full 已经是最新版 (1.5.0-1focal.20230225.005309)。
下列软件包是自动安装的并且现在不需要了:
  libid3tag0 libimlib2 tint2
使用'sudo apt autoremove'来卸载它(它们)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 4 个软件包未被升级。

6.添加命令

         sudo apt install python-rosdep2

或者

         sudo apt install python3-rosdep2

7.初始化rosdep

sudo rosdep init

若出现

ERROR: default sources list file already exists:
	/etc/ros/rosdep/sources.list.d/20-default.list
Delete !!
Wrote /etc/ros/rosdep/sources.list.d/20-default.list
Recommended: please run

	rosdep update

则输入sudo rosdep update 指令,并前往下一步
可能的错误(我犯的):

ERROR: cannot download default sources list from:https : xxxxxxxxxxxxxxx

–通过IPAddress.com查询错误链接的ip地址
我查到的:188.199.108.133,现在查可能第四组数会略微不同
–输入以下语句:

       sudo gedit /etc/hosts

        188.199.108.133 raw.githubusercontent.com

8.设置环境变量

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

9.构建依赖

sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential

10.测试ros

这里直接引用赵虚左老师的文件

ROS 内置了一些小程序,可以通过运行这些小程序以检测 ROS 环境是否可以正常运行

首先启动三个命令行(ctrl + alt + T)

命令行1键入:roscore

命令行2键入:rosrun turtlesim turtlesim_node(此时会弹出图形化界面)

命令行3键入:rosrun turtlesim turtle_teleop_key(在3中可以通过上下左右控制2中乌龟的运动)

最终结果如下所示:

注意:光标必须聚焦在键盘控制窗口,否则无法控制乌龟运动。

二、利用vscode 编写helloworld全过程

1.安装相关功能包

打开扩展,下载ros、c++、python、中文、cmake tools即可

2.创建工作空间

zzl@zzl-lenovo:~$ mkdir -p hellotry_c/src
zzl@zzl-lenovo:~$ cd hellotry_c
zzl@zzl-lenovo:~/hellotry_c$ catkin_make

出现以下即成功

-- Using Python nosetests: /usr/bin/nosetests3
-- catkin 0.8.10
-- BUILD_SHARED_LIBS is on
-- BUILD_SHARED_LIBS is on
-- Configuring done
-- Generating done
-- Build files have been written to: /home/zzl/hellotry_c/build
####
#### Running command: "make -j20 -l20" in "/home/zzl/hellotry_c/build"
####

3.启动vscode

zzl@zzl-lenovo:~$ cd hellotry_c
zzl@zzl-lenovo:~/hellotry_c$ code .

code和.中间必须有空格!!!

4.在vscode中编译ros

此处引用赵老师教程中的代码和解释

ctrl+shift+B调用,选择catkin_make:build 并且修改vscode/tasks.json文件

    // https://go.microsoft.com/fwlink/?LinkId=733558
    "version": "2.0.0",
    "tasks": [
        {
            "label": "catkin_make:debug", //代表提示的描述性信息
            "type": "shell",  //可以选择shell或者process,如果是shell代码是在shell里面运行一个命令,如果是process代表作为一个进程来运行
            "command": "catkin_make",//这个是我们需要运行的命令
            "args": [],//如果需要在命令后面加一些后缀,可以写在这里,比如-DCATKIN_WHITELIST_PACKAGES=“pac1;pac2”
            "group": {"kind":"build","isDefault":true},
            "presentation": {
                "reveal": "always"//可选always或者silence,代表是否输出信息
            },
            "problemMatcher": "$msCompile"
        }
    ] }

5.创建ros功能包

右键选定src,create catkin package
设置包名和依赖
在这里插入图片描述在这里插入图片描述

6.c++代码部分

*/
#include "ros/ros.h"

int main(int argc, char *argv[]) {
    setlocale(LC_ALL,"");
    //执行节点初始化
    ros::init(argc,argv,"HelloVSCode");

    //输出日志
    ROS_INFO("Hello VSCode!!!哈哈哈哈哈哈哈哈哈哈");
    return 0; } ```

7.配置CMakeLists.txt

编辑本文件下的cmake文件配置,修改通过ctrl+f查找并且改变其中部分

add_executable(节点名称
  src/C++源文件名.cpp
)
target_link_libraries(节点名称
  ${catkin_LIBRARIES}
)

注:好用的快捷键:ctrl+s保存
ctrl+/去注释/加注释

然后ctrl+shift+b看是否编译成功,若失败则说明前面有步骤有问题

8.编译执行及最终效果

zzl@zzl-lenovo:~/hellotry_c$ source ./devel/setup.bash
zzl@zzl-lenovo:~/hellotry_c$ rosrun hellovscode hellovscode_c
[ INFO] [1680092639.533653729]: Hello VSCode!!!哈哈哈哈哈哈哈哈哈哈
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ROS学习笔记(一)ROS安装和helloworld 的相关文章

  • hexo博客搭建常用命令

    插入图片语法 span class token operator span span class token punctuation span span class token punctuation span span class tok
  • JS:根据点击图片坐标,截取点击位置部分图片

    从一个完整的大图中截取一小部分出来 xff1a 根据点击坐标获取一个20x20像素的图片 const getScreenShotFromScrcpyVideo 61 x y 61 gt 获取点击图片坐标位置 const x y 61 get
  • 也来谈谈自己做为面试官的面试流程

    1 请对方做个简短的自我介绍 主要考察面试者的表达能力 xff0c 同时也为自己争取点时间看下简历 2 对简历中的疑问点提问 进一步求证 xff0c 获取到准确信息 xff0c 同时也考察简历的真实性 比如有些简历中毕业五年 xff0c 但
  • HTTP请求详解含POST,GET实例

    前言 单纯的copy代码没有用 xff0c 本篇从http请求的基本原理开始为大家讲解 xff0c 后边有实例 xff0c 希望大家一步一步看完 xff0c 这样无论编写什么请求我们都可以得心应手 HTTP的组成 http消息由客户端到服务
  • 卡尔曼滤波,最最容易理解的讲解.找遍网上就这篇看懂了.

    学习卡尔曼滤波看了4天的文章 硬是没看懂 后来找到了下面的文章一下就看懂了 我对卡尔曼滤波的理解 我认为 卡尔曼滤波就是把统计学应用到了滤波算法上 算法的核心思想是 根据当前的仪器 34 测量值 34 和上一刻的 34 预测量 34 和 3
  • 关于C++多态性的一些总结

    在任何一门面向对象的编程语言中 xff0c 多态性 polymorphism 都是非常重要的一个概念 在面向对象的三大元素中 xff0c 封装使代码的模块化变得简单 xff0c 继承则可以扩展已有的代码 xff0c 而多态则是为了满足接口的
  • 关于2048小游戏项目的一些心得

    这是我学习完标C和Unix C以后做的一个小游戏 xff0c 只能支持字符终端界面 在此将其贴出来 xff0c 希望能够跟大家分享一些心得 以下是我当时写的一个项目文档 61 61 61 61 61 61 61 61 61 61 61 61
  • 蓝牙HC-05与Arduino Pro mini实现蓝牙防远离

    因为最近一些工作学习的需要 xff0c 入手了一个Arduino Pro mini来玩一玩 xff0c 于是就做了一个简易的通过蓝牙实现防远离的手环功能 在学习的过程中受过一些指点 xff0c 所以在此将一些学习过程中的经验心得分享出来 x
  • ELF格式与bss段

    ELF Executable Linkable Format 是Linux系统下的一种可执行可链接文件的格式 xff0c 是COFF格式的变种 在Linux系统中包括了可重定位文件 o文件 xff0c 可执行文件 bin bash文件 xf
  • 程序员必备的书籍有哪些?

    程序员必备书籍之史上最全版 xff01 xff01 xff01 动用了周围一切资源 xff0c 请教了腾讯 阿里等多家大咖 xff0c 综合各个专业研究员的学习经验 xff0c 终于整理好这篇文章 xff01 最全 xff01 最全 xff
  • USB主机是如何检测到设备的插入的呢?

    USB设备的插入检测机制 首先 xff0c 在USB集线器的每个下游端口的D 43 和D 上 xff0c 分别接了一个15K欧姆的下拉电阻到地 这样 xff0c 在集线器的端口悬空时 xff0c 就被这两个下拉电阻拉到了低电平 而在USB设
  • 如何在i.mx6dl开发板上移植udev并实现移动设备的自动挂载

    在整个移植过程中 xff0c 我所使用的操作平台 xff1a host xff1a Ubuntu14 04 LTS board xff1a MCIMX6DL SDP udev 版本 xff1a udev100 一 移植udev 下载 ude
  • 飞思卡尔的i.mx6dl开发板上实现nfs网络文件系统挂载操作指南

    问题描述 xff1a 在MCIMX6DL SDP 上实现网络文件挂载 xff0c 要求从emmc 中启动uboot 和kernel xff0c 从网络上挂载根文件系统 操作平台 xff1a host xff1a Ubuntu14 04LTS
  • 如何修改Linux开启进度条的图片

    最近因为工作需要 xff0c 需要将Linux启动时的开机进度条背景修改为公司logo xff0c 并将进度条转换为自己的动画 这里说明一下 xff0c psplash是Linux下的一款开源软件 xff0c 可以在嵌入式产品中显示开机进度
  • 如何修改Linux开机启动logo并使其全屏显示?

    1 制作开机启动logo的图片 my image png 61 61 gt logo linux clut224 ppm 要求图片的分辨率要和屏幕大小一致 使用如下命令 xff1a pngtopnm my image png gt my i
  • 实现JavaScript分片上传大视频到七牛云实例

    https blog csdn net weixin 34228617 article details 93033483
  • Rust嵌入式编程---动态内存分配器(Vec,String等)

    本教程不是0基础的Rust嵌入式编程 xff0c 需要有一定的Rust裸机编程的基础知识 作为一个比较接近C的例子 xff0c 适合入门 xff0c 代码比较容易理解 本次例子使用的是target 61 thumbv8m main none
  • STM32F103 KEIL 标准库直接添加DSP库

    前言 近期由于比赛需要 xff0c 想要在STM32上移植DSP库进行FFT变换 xff0c 找了很多资料都是利用CUBEMX进行导入的方法 xff0c 本人使用的是标准库 xff0c 对HAL库并不熟悉 xff0c 所以考虑到移植的方便采
  • 最优化方法在图像处理中的应用【5】

    最优化方法在图像处理中的应用 5 分类 xff1a image process optimization 数学 2013 09 23 21 34 42人阅读 评论 0 收藏 举报 目录 43 好吧 xff0c 我想理解下Convex fun
  • VESC电调配置教程

    VESC电调配置教程 简介及硬件环境教程简介软硬件环境第一次的配置步骤更新固件电机参数设置及自动测量 上位机直接驱动电机的方法查看回传数据的方法BUGLIST 简介及硬件环境 教程简介 大家好 xff0c 欢迎阅读本教程 在关节处或者底盘处

随机推荐

  • OpenHarmony轻量级设备xts认证大致流程

    因为最近公司在做openharmony开发板xts认证 xff0c 这里对认证过程和过程中遇到的坑做下记录 xff0c 也给大家探探路 1 开发板适配 OpenHarmony轻量系统的移植比较简单 xff0c 代码中解耦做得非常好 从代码的
  • leo学习系列之七——文档生成rst3和sphinx

    先看看网页在leo中的组织形式 xff1a 详细内容 xff1a 网页后请看 xff1a http leoeditor com tutorial rst3 html 现在开始讲解rst和sphinx 1 xff1a rst和sphinx是什
  • excel数据对比-----查找两列(表)的相同数据

    原创作品 xff0c 允许转载 xff0c 转载时请务必以超链接形式标明文章 原始出处 作者信息和本声明 否则将追究法律责任 http xueli blog 51cto com 3325186 920592 现有两个excel表 xff0c
  • discuz 微社区 您请求的XXXX无法访问 接口错误(ERR02)

    我遇到的情况 xff1a 1 UC可以访问页面 xff0c 用微信报错 2 4G网络下可以访问 xff0c WiFi网络下报错 网上有两种解决方法 xff1a 1 关闭防采集 xff0c 我最终的采用方法 2 default下的mobile
  • 所有文件夹都变成1KB文件夹快捷方式病毒的手动清除方法

    电脑差不多都因使用U盘而感染了病毒 xff0c 其中一个就是Autoran病毒的变种 xff0c 它的症状我就不再描述了 xff0c 另外一个病毒的症状是所有文件夹都变成了1KB文件夹快捷方式 xff0c 各盘无法双击打开 xff08 但右
  • 搜狗高速浏览器2.0使用体验

    2010年 4 月 8 号 xff0c 我们终于迎来了 国内浏览器的后起之秀搜狗高速浏览器2 0 正式版 的 发布 高速真双核引擎 的概念得到了落实 它新增并改进了诸多功能 xff0c 修改了一些bug xff0c 从整体提高 搜狗高速浏览
  • Connection refused错误

    这个问题整了我两天时间 xff0c 现在终于解决了 问题 xff1a 用php 构造http请求访问自身web服务器页面 xff0c 总是报Connection refused 111 错误 显示 xff1a unable to conne
  • GIF89a图片头文件欺骗

    1 什么是GIF89a 一个GIF89a图形文件就是一个根据图形交换格式 xff08 GIF xff09 89a版 xff08 1989年7 月发行 xff09 进行格式化之后的图形 在GIF89a之前还有87a版 xff08 1987年5
  • txt文件导入mysql

    LOAD DATA LOW PRIORITY CONCURRENT LOCAL INFILE 39 file name 39 REPLACE IGNORE INTO TABLE tbl name CHARACTER SET charset
  • 2011 移动开发者大会 记忆中的第一天

    很久没记过流水帐了 平时八点起床的我 xff0c 11月3号六点半就起床了 xff0c 为的是能早早赶到2011中国移动开发者大会现场 一下公交车就快速走向国家会议中心 本以为我是早到的 xff0c 结果大门口就围了一堆一堆照相的人 进入会
  • mac下终端无法使用数字小键盘的解决方案

    终端下 偏好设置 xff0d 高级 xff0d xff08 去掉 xff09 允许VT100应用程序小键盘模式
  • JAVA中final的用法详解

    1 修饰基本变量的时候 xff0c 必须要有初始值 2 修饰数组等的时候 xff0c 地址不能修改 xff0c 但是对象本身的属性可以修改 span class token keyword final span span class tok
  • Mac Eclipse Failed to load JavaHL Library.

    转自 xff1a http blog csdn net wy10207010219 article details 42294293 写这一篇前我想发表一下感慨 xff1a 你所害怕的事 xff0c 你想要逃避的事 xff0c 在将来的某个
  • Jetson TX2更换软件源

    本文转自 xff1a https blog csdn net qlulibin article details 80271096 TX2的软件源为国外服务器 xff0c 网速会很慢 xff0c 需要换国内的ARM源 备份 etc lib路径
  • 工作一年回忆录

    7月8号跟公司签订劳动合同开始至今已有一周年了 xff0c 是时候坐下想想自己活了些什么东东 这里叙述的都是工作技术记录过程 1 工作环境搭建配置的学习 使用的工具 xff1a sts maven svn tomcat mysql 技术 x
  • 镜头畸变现象及其校正方法

    摄像机校准一般采用小孔成像模型 xff0c 理想的小孔模型是线性模型 xff0c 但是由于存在镜头畸变等原因 xff0c 线性模型通常要加上一些内部参数 xff0c 变成非线性模型 现对产生这一现象的原理以及解决方法进行整理 xff0c 如
  • 【FreeRTOS学习计划】第三节 数据结构—列表与列表项

    本节的目标 我们想从0到1开始实现FreeRTOS xff0c 就需要弄懂列表和列表项的操作 xff0c 因为在FreeRTOS中存在着大量的基础数据结构列表和列表项的操作 FreeRTOS源码里注释的list和list item翻译过来就
  • 【FreeRTOS学习计划】第四节 任务的定义与任务切换的实现

    本节目标 本节属于基础中的基础 xff0c 必须要学会创建任务 xff0c 并重点掌握任务是如何切换的 因为在FreeRTOS任务的切换是由汇编代码来完成的 xff0c 所以代码看起来比较难懂 xff0c 我们耐心细看 本小节我们会创建两个
  • 【FreeRTOS学习计划】 第六节 空闲任务与阻塞延时的实现

    本节目标 我们在第四节任务的定义与任务切换的实现中 xff0c 任务体内的延时用的是软件延时 xff0c 即还是让 CPU 空等来达到延时的效果 使用 RTOS 的很大优势就是榨干 CPU 的性能 xff0c 永远不能让它闲着 xff0c
  • ROS学习笔记(一)ROS安装和helloworld

    ROS学习笔记 xff08 一 xff09 ROS安装和helloworld 文章目录 一 ros安装及测试1 打开ubuntu软件和更新 xff0c 进行如下设置2 设置安装源3 设置安装密钥4 更新软件源5 安装ros6 添加命令7 初