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

ROS2 安装与测试

文章目录

  • ROS2 安装与测试
    • ROS2 安装
      • 1. 设置编码
      • 2. 添加源
      • 3. 安装 ROS2
      • 4. 设置环境变量
    • ROS2 示例测试
      • 实例一:命令行实例
      • 实例二:小海龟仿真实例
    • 参考链接

ROS2 安装与测试

ROS2 安装

基于 Ubuntu 22.04 LTS 操作系统。

1. 设置编码

sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 
echo 'export LANG=en_US.UTF-8' >> ~/.bashrc
source ~/.bashrc

2. 添加源

sudo apt update && sudo apt install curl gnupg lsb-release 
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg 
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

如遇报错 “Failed to connect to raw.githubusercontent.com”,可参考

https://www.guyuehome.com/37844

3. 安装 ROS2

sudo apt update
sudo apt upgrade
sudo apt install ros-humble-desktop

4. 设置环境变量

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

ROS2 示例测试

测试底层通信系统 DDS 是否正常。

实例一:命令行实例

启动第一个终端,执行以下命令:

ros2 run demo_nodes_cpp talker

启动第二个终端,执行以下命令:

ros2 run demo_nodes_py listener

image-20240511211721534

若 “Hello World” 能够在两个终端中正常传输,则说明底层通信系统 DDS 正常。

实例二:小海龟仿真实例

启动第一个终端,执行以下命令:

ros2 run turtlesim turtlesim_node

启动第二个终端,执行以下命令:

ros2 run turtlesim turtle_teleop_key

image-20240511212041031

第一个终端启动了一个小海龟仿真器,第二个终端可以输入指令(上下左右)来控制小海龟运动。

参考链接

https://book.guyuehome.com/ROS2/1.%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84/1.3_ROS2%E5%AE%89%E8%A3%85%E6%96%B9%E6%B3%95/

相关文章:

ROS2 安装与测试

文章目录 ROS2 安装与测试ROS2 安装1. 设置编码2. 添加源3. 安装 ROS24. 设置环境变量 ROS2 示例测试实例一:命令行实例实例二:小海龟仿真实例 参考链接 ROS2 安装与测试 ROS2 安装 基于 Ubuntu 22.04 LTS 操作系统。 1. 设置编码 sudo apt update &…...

MySQL数据分组技术深度解析及实践

在处理大量数据库记录时,数据分组是一种强大的工具,它允许我们按照特定列的值将数据划分为逻辑上的集合,进而对每个集合执行聚合操作,如计数、求和或平均值等。MySQL中的​​GROUP BY​​​子句正是实现这一功能的关键所在。本文将详细介绍​​GROUP BY​​的使用方法,结合…...

【敦煌网注册/登录安全分析报告】

敦煌网注册/登录安全分析报告 前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大…...

Python读取ASC文件并转换成Excel文件(坐标)

import pandas as pd# 读取asc文件,指定空格为分隔符 df pd.read_csv(out_view2.asc, sep , headerNone)# 去掉空列 df df.dropna(howall, axis1)# 将数据保存到Excel文件 df.to_excel(out_view2.xlsx, indexFalse, headerFalse)效果图...

Rust 的 Warp 库编写的 restful api 参数传递与解析方法

Warp是一个用 Rust 编写的流行的异步 web 框架。在使用 warp 构建 RESTful API 时,可以通过多种方式传递参数到你的处理函数中。 以下是一些常见的方法,说明如何在 warp 中传递参数: 路径参数: 你可以使用 warp::path 和 warp::…...

关不掉的弹窗

这里分两种方式 第一种 #include<Windows.h> int main(){system("mode 15,14");while(1){MessageBox(NULL,TEXT("关不掉吧!"),TEXT("中病毒啦~~你这个SB!"),MB_OK);}} 实际上不是关不掉&#xff0c;而是关不完 解决方法&#xff1a;找…...

【JVM】类加载机制及双亲委派模型

目录 一、类加载过程 1. 加载 2. 连接 a. 验证 b. 准备 c. 解析 3. 初始化 二、双亲委派模型 类加载器 双亲委派模型的工作过程 双亲委派模型的优点 一、类加载过程 JVM的类加载机制是JVM在运行时&#xff0c;将 .class 文件加载到内存中并转换为Java类的过程。它…...

WordPress插件:链接自动识别转为超链接

WordPress插件&#xff1a;链接自动识别转为超链接 <?phpfunction open_links_in_new_tab() {add_filter(the_content, make_clickable);function autoblank($text) {$return str_replace(<a, <a target"_blank", $text);return $return;}add_filter(th…...

Java----数组的定义和使用

1.数组的定义 在Java中&#xff0c;数组是一种相同数据类型的集合。数组在内存中是一段连续的空间。 2.数组的创建和初始化 2.1数组的创建 在Java中&#xff0c;数组创建的形式与C语言又所不同。 Java中数组创建的形式 T[] 数组名 new T[N]; 1.T表示数组存放的数据类型…...

【C++】-QT多线程-006

1【QT】多线程 #ifndef MYWIDGET_H #define MYWIDGET_H#include <QWidget>namespace Ui { class MyWidget; }class MyWidget : public QWidget {Q_OBJECTpublic:explicit MyWidget(QWidget *parent 0);~MyWidget();/* 5 自定义信号*/ /*所有的信号函数只声明不定义&…...

vscode go语言开发中在任意包运行和调试代码 Example使用方法

一般情况下我们在进行go语言开发的时候我们都需要创建一个main方法和main包才能运行go代码&#xff0c; 针对这个问题&#xff0c;go语言给我们内置了功能强大的testing测试框架&#xff0c; 其中一个很有意思的Example测试就非常的方便使用。 他不管你在什么包&#xff0c;也…...

数据库查询--条件查询

目录 1.关系运算条件的查询 2.逻辑运算符条件的查询 3.带关键字IN的查询 4.带BETWEEN AND关键字的查询 5.空值查询 6.带LIKE关键字的模糊查询 1.关系运算条件的查询 在SELECT语句中&#xff0c;最常见的是使用WHERE字句指定关系运算条件对数据进行过滤。 语法格式&#x…...

用 Python 和 AkShare 进行个股数据清洗:源码剖析和建议优化

这是《个股清洗源码》一个获取股票买卖盘信息并将其打印到控制台并保存到文件的脚本。 下面我们来对源码进行剖析 先复习一下源码 import os import akshare as ak from akshare import stock_bid_ask_em from datetime import datetime import pandas as pd from io import …...

颍川诞生了两个帝王的仲父

伯、仲、叔、季是古代兄弟的长幼排行顺序&#xff0c;《释名释亲属》载&#xff1a;“父之弟曰仲父……仲父之弟曰叔父”。也就是古代称父亲的兄弟为仲父&#xff0c;多用于帝王对宰相重臣的尊称。 历史上最有名的、有正史记载的帝王“仲父”有两位&#xff0c;而且都出自颍川…...

SpringAMQP发布、订阅——Fanout Exchange交换机代码模拟

发布订阅模型: MQ提供了很多交换机模型 其中常用的有下边三个: Fanout:广播 Direct:路由 Topic:话题 转换器只负责消息路由&#xff0c;不是存储&#xff0c;路由失败则消息丢失 Fanout Exchange:会将接收到的消息路由导每一个跟其绑定的queue. 利用SpringAMQP演示Fanout…...

js原生三种弹框

第一种&#xff1a; alert("提示内容")&#xff1a;提示弹框&#xff1b; alert("提示"); 第二种&#xff1a; prompt("内容","输入框默认值")&#xff1a;输入弹框&#xff0c;第一个值输入框提示内容&#xff0c;第二个值输入框默…...

LWIP+TCP客户端

一、TCP API函数 其中tcp_poll()函数的第三个参数表示隔几秒调用一次这个周期性函数 二、修改服务器的IP 三、TCP客户端编程思路 申请套接字绑定服务器IP和端口号等待客户端连接 进入连接回调函数在连接回调函数中 配置一些回调函数&#xff0c;如接收回调函数&#xff0c;周期…...

程序人生 | 人生如棋,落子无悔

人生的开始&#xff0c;始于哭声&#xff0c;浮浮沉沉几十年。终了&#xff0c;一声长叹&#xff0c;在一片哭声中撒手离去。 人生的道路虽然漫长&#xff0c;但是关键就是那么几次机会的选择&#xff0c;可以决定此后几十年的光阴。 有个故事讲&#xff1a;古代有个人去砍柴…...

python的deap库使用记录

主要是在遗传符号回归的代码中添加了注释和根据一部分源码做了一点改动 import operator import random import numpy as np import matplotlib.pyplot as plt from deap import algorithms, base, creator, tools, gp from operator import attrgetter##生成数据 def generat…...

一份简历的制作

个人简历是求职者面试前最需要准备的一项工具。一份好的简历可以帮助求职者获得更多的面试机会&#xff0c;并且为面试时的表现奠定基础。以下介绍制作简历的几个注意点&#xff0c;仅供参考。 一、个人信息 姓名*性别联系方式 &#xff08;手机号&#xff09;电子邮箱&#…...

使用Curxy代理连接Cursor编辑器与本地Ollama大模型

1. 项目概述&#xff1a;为什么我们需要一个本地AI代理 如果你和我一样&#xff0c;是个重度依赖Cursor这类AI驱动的代码编辑器来提高生产力的开发者&#xff0c;那你肯定遇到过这个痛点&#xff1a;想用自己本地部署的、性能强大的Ollama模型&#xff0c;却发现Cursor编辑器死…...

C#循环入门指南:从0到1掌握循环逻辑

一、for循环&#xff1a;已知循环次数&#xff0c;首选它for循环是最常用、最规范的循环&#xff0c;适合已知循环次数的场景&#xff08;比如打印10遍文字、计算1到100的和&#xff09;。它的结构很固定&#xff0c;就像一个“固定流程的重复机器”&#xff0c;一步都不会乱。…...

Notflix高级技巧:5种高效搜索和流媒体传输方法

Notflix高级技巧&#xff1a;5种高效搜索和流媒体传输方法 【免费下载链接】notflix Notflix is a shell script to search and stream torrent. 项目地址: https://gitcode.com/gh_mirrors/no/notflix Notflix是一款强大的shell脚本工具&#xff0c;能够帮助用户快速搜…...

EDA工程师成长与验证技术演进:从算法到芯片的实践闭环

1. 从算法到芯片&#xff1a;一位EDA工程师的成长路径解析在半导体这个行当里待久了&#xff0c;你会发现&#xff0c;那些真正能把工具做“透”、把流程理“顺”的人&#xff0c;往往自己就亲手“焊”过板子、调过RTL、追过时序违例。Prakash Narain的故事&#xff0c;就是一个…...

EDA平台化架构:电子系统设计的未来趋势

1. 电子系统设计演进&#xff1a;从工具链到平台化架构在电子设计自动化&#xff08;EDA&#xff09;领域&#xff0c;过去三十年最显著的变化莫过于设计工具架构的演进。早期工程师使用独立的原理图工具、PCB布局工具和仿真工具&#xff0c;通过文件导入导出的方式串联起整个设…...

GitHub Actions 工作流中的输出处理

在现代软件开发中,CI/CD(持续集成和持续交付)是确保代码质量和自动化部署的关键环节。GitHub Actions 作为 GitHub 提供的 CI/CD 工具,支持通过工作流文件定义自动化任务。本文将结合一个实际的 GitHub Actions 工作流实例,探讨如何处理 Python 脚本的输出,并根据该输出决…...

App安全测试实战:OWASP ZAP 2.8 代理配置进阶与场景化应用

1. OWASP ZAP 2.8代理配置的核心价值 如果你做过移动应用安全测试&#xff0c;一定遇到过这样的困境&#xff1a;抓不到HTTPS流量、内网环境难以调试、自动化测试时代理频繁断开。这些问题看似简单&#xff0c;实际会浪费大量时间在环境搭建上。我在去年的一次金融App测试中&am…...

鸿蒙一气总论(八)

第八卷 古今气运历史兴衰天道规律卷首引天地有气运&#xff0c;一气有盈亏&#xff1b; 万象有消长&#xff0c;人世有兴衰。天运为纲&#xff0c;地运为基&#xff0c;人运为果。 朝代更迭、世道治乱、民心淳漓、文明起落&#xff0c; 从来不是偶然人事&#xff0c;不是强弱输…...

长曜创新获数千万元 A+ 融资,Tron Ultra 割草机器人年中全球发售破行业难题

硬氪获悉&#xff0c;智能庭院机器人公司「长曜创新」近日完成数千万元 A 融资&#xff0c;此前 A 轮融资也已在 2025 年 12 月完成&#xff0c;半年累计超亿元。其最新产品 Tron Ultra 系列将在年中全球发售。融资情况与发展方向长曜创新近日完成数千万元 A 轮融资&#xff0c…...

洛谷 P1333:瑞瑞的木棍 ← 欧拉回路 + 并查集

【题目来源】 https://www.luogu.com.cn/problem/P1333 【题目描述】 瑞瑞有一堆的玩具木棍&#xff0c;每根木棍的两端分别被染上了某种颜色&#xff0c;现在他突然有了一个想法&#xff0c;想要把这些木棍连在一起拼成一条线&#xff0c;并且使得木棍与木棍相接触的两端颜色…...