【ROS2 入门】Jeston TX1 JetPack_4.6.3环境 ubuntu 18.04 ROS2 安装

news2025/1/20 10:52:41

        大家好,我是虎哥,从今天开始,我将花一段时间,开始将自己从ROS1切换到ROS2,在上一篇中,我们再虚拟机环境中安装了 ROS2 eloquent版本,并完成了初步的验证,但是做为一个偏硬件的博主,我还是以在嵌入式设备中使用为主,所以专门适配一次我一直使用的平台Jeston TX1上,安装ROS,并测试验证,希望对大家有所帮助,同时也是我踩坑,填坑的过程。

目录

一、硬件平台和测试环境说明

二、安装ROS2 eloquent 版本

2.1 官方部署说明

2.2 小鱼一键安装

2.3 验证安装结果

1、查看环境变量

2、运行经典小乌龟

3、实验通信

三、使用ros2

3.1创建ros2工作空间

3.2创建功能包

3.3编译


一、硬件平台和测试环境说明

        感觉网上看这一类说明,常常最大的疑惑就是,为什么别人能用,我自己就不成了,其实很多时候都是各自的环境交代不清楚所致。所以我觉得讲操作前,必须先交代自己的测试环境。

        我自己使用的是TX1核心模块,安装ubuntu 18.04 的环境,采用了官方的最小系统安装,并完成了一些换源等基础操作。Jeston TX1 核心模块,JetPack_4.6.3刷机后,安装jtop。

jtop
 

 

nvidia@nvidia-desktop:~$ sudo lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.5 LTS
Release:    18.04
Codename:   bionic

        其次就是确保你的板子和系统可以上网。,同时,刷完系统记得,接上显示器,把系统初始化做完。

二、安装ROS2 eloquent 版本

2.1 官方部署说明

官网教程入口:ROS 2 Eloquent Elusor Installation — ROS 2 Documentation: Eloquent documentation

         我们综合一下,国内的教程和官方教程,亲自测试了如下教程,最终发现,还是小鱼一键安装好使,还没弄清楚是谁弄得,很感谢。

2.2 小鱼一键安装

这个还挺推荐,一键帮你解决所有安装的烦恼,强烈推荐。

#如果你系统没有安装wget ,记得先安装wget
#小鱼一键安装ROS2
wget http://fishros.com/install -O fishros && . fishros

接下来就是按照指示,一步一步选择对你的系统对应项就好了。

 回车后下一步

 帮你匹配源

 已经就开始自动下载安装了,剩下的就是等待,确实简单很

安装完毕。

2.3 验证安装结果

1、查看环境变量

printenv | grep -i ROS
LD_LIBRARY_PATH=/opt/ros/eloquent/opt/yaml_cpp_vendor/lib:/opt/ros/eloquent/opt/rviz_ogre_vendor/lib:/opt/ros/eloquent/lib/aarch64-linux-gnu:/opt/ros/eloquent/lib
AMENT_PREFIX_PATH=/opt/ros/eloquent
ROS_VERSION=2
ROS_LOCALHOST_ONLY=0
ROS_PYTHON_VERSION=3
PYTHONPATH=/opt/ros/eloquent/lib/python3.6/site-packages
PATH=/opt/ros/eloquent/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
ROS_DISTRO=eloquent
 

2、运行经典小乌龟

Install the turtlesim package for your ROS 2 distro:

sudo apt update
​
sudo apt install ros-eloquent-turtlesim

Check that the package installed:

ros2 pkg executables turtlesim

To start turtlesim, enter the following command in your terminal:

ros2 run turtlesim turtlesim_node

新开一个窗口

ros2 run turtlesim turtle_teleop_key

使用键盘前后左右键就可以控制小乌龟运动了。感觉很亲切。

在打开一个窗口,依次使用下面命令,和ROS1下就很多类似。

ros2 node list
ros2 topic list
ros2 service list
ros2 action list

打印输出:

ros2 node list
    /teleop_turtle
    /turtlesim
ros2 topic list
    /parameter_events
    /rosout
    /turtle1/cmd_vel
    /turtle1/color_sensor
    /turtle1/pose
ros2 service list
    /clear
    /kill
    /reset
    /spawn
    /teleop_turtle/describe_parameters
    /teleop_turtle/get_parameter_types
    /teleop_turtle/get_parameters
    /teleop_turtle/list_parameters
    /teleop_turtle/set_parameters
    /teleop_turtle/set_parameters_atomically
    /turtle1/set_pen
    /turtle1/teleport_absolute
    /turtle1/teleport_relative
    /turtlesim/describe_parameters
    /turtlesim/get_parameter_types
    /turtlesim/get_parameters
    /turtlesim/list_parameters
    /turtlesim/set_parameters
    /turtlesim/set_parameters_atomically
ros2 action list
    /turtle1/rotate_absolute
 

3、实验通信

开一个终端执行

ros2 run demo_nodes_cpp talker

开另外一个终端执行

ros2 run demo_nodes_py listener

三、使用ros2

3.1创建ros2工作空间

mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src

3.2创建功能包

ros2 pkg create --build-type ament_cmake testcpp   # c++功能包
ros2 pkg create --build-type ament_python testpython  # python功能包

这里与ros1有区别,创建功能包需要指定语言

robot@ubuntu:~/ros2_ws/src$ ros2 pkg create --build-type ament_python testpython
    going to create a new package
    package name: testpython
    destination directory: /home/robot/ros2_ws/src
    package format: 3
    version: 0.0.0
    description: TODO: Package description
    maintainer: ['robot <robot@todo.todo>']
    licenses: ['TODO: License declaration']
    build type: ament_python
    dependencies: []
    creating folder ./testpython
    creating ./testpython/package.xml
    creating source folder
    creating folder ./testpython/testpython
    creating ./testpython/setup.py
    creating ./testpython/setup.cfg
    creating folder ./testpython/resource
    creating ./testpython/resource/testpython
    creating ./testpython/testpython/__init__.py
    creating folder ./testpython/test
    creating ./testpython/test/test_copyright.py
    creating ./testpython/test/test_flake8.py
    creating ./testpython/test/test_pep257.py
robot@ubuntu:~/ros2_ws/src$ ros2 pkg create --build-type ament_cmake testcpp
    going to create a new package
    package name: testcpp
    destination directory: /home/robot/ros2_ws/src
    package format: 3
    version: 0.0.0
    description: TODO: Package description
    maintainer: ['robot <robot@todo.todo>']
    licenses: ['TODO: License declaration']
    build type: ament_cmake
    dependencies: []
    creating folder ./testcpp
    creating ./testcpp/package.xml
    creating source and include folder
    creating folder ./testcpp/src
    creating folder ./testcpp/include/testcpp
    creating ./testcpp/CMakeLists.txt
 

3.3编译

cd ~/ros2_ws/
colcon build

至此,我们就完成了初步的测试和环境配置

纠错,疑问,交流: 911946883@qq.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/161392.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nginx禁止外网访问

1、安装 libmaxminddb 库 apt updateapt install libmaxminddb0 libmaxminddb-dev mmdb-bin上面安装的软件包是&#xff1a; libmaxminddb0 libmaxminddb-dev 是MaxMind地理定位数据库mmdb-bin – 二进制。 从命令行调用的程序。 使用此命令手动定位 IP 安装参考 2、下载geoi…

node学习笔记

阶段一 1 初始Node.js javascript 运行环境 1.2 Node.js中的javacript 运行环境 1.3 Node.js环境安装 百度 1.4 node.js 执行javaScript 代码 2 fs文件系统模块 2.1 fs文件系统模块概念 导入文件系统模块&#xff1a; const fs require(fs)fs.readFile() // 1 导入fs文件…

【进阶C语言】通讯录(后期会升级)

文章目录一.基本框架与功能二.头文件的详细内容三.函数的实现1.打印菜单2.初始化通讯录3.添加联系人信息4.打印联系人信息5.查找名字6.删除联系人信息7.查找联系人8.修改联系人信息9.排序联系人&#xff08;按照名字&#xff09;四.总结1.test.c2.contact.c3.contact.h一.基本框…

智能电风扇(stm32f103c8t6)(直流电机,热敏传感器)(TIM,ADC)

前言 我的毕业论文的课题 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、热敏传感器计算温度&#xff08;ADC采样单通道&#xff09; #include "stm32f10x.h" // Device header#define T25 298.15 #define B 3…

看完这篇 教你玩转渗透测试靶机vulnhub——MONEYBOX: 1

Vulnhub靶机MONEYBOX: 1渗透测试详解Vulnhub靶机介绍&#xff1a;Vulnhub靶机下载&#xff1a;Vulnhub靶机安装&#xff1a;Vulnhub靶机漏洞详解&#xff1a;①&#xff1a;信息收集&#xff1a;②&#xff1a;FTP匿名登入&#xff1a;③&#xff1a;SSH暴力破解④&#xff1a;…

Java操作Word模板产生全新内容Word

1. spire.doc的jar引用 首先我们需要用到国产word处理工具jar包spire.doc&#xff0c;可以通过maven仓库寻找&#xff0c;然后在pom文件中直接引用。 此处需要注意&#xff0c;我们需要使用的是spire.doc.free&#xff08;免费版的&#xff09;&#xff0c;切勿使用spire.doc&a…

c++ - 第23节 - C++的类型转换

1.C语言中的类型转换 在C语言中&#xff0c;如果赋值运算符左右两侧类型不同&#xff0c;或者形参与实参类型不匹配&#xff0c;或者返回值类型与接收返回值类型不一致时&#xff0c;就需要发生类型转化&#xff0c;C语言中总共有两种形式的类型转换&#xff1a;隐式类型转换和…

业务安全情报 | 数十万元的数据报告,竟被50元批量转售

近期监测到某咨询公司针数据报告大量泄漏事件&#xff0c;该机构历年的数据报告以及近期更新的针对VIP会员的付费报告均在电商等渠道可以低价获取。 BSL-2022-a3c28号情报文件显示黑灰产通过作弊方式获取查看、下载权限&#xff0c;绕过限制将报告数据大量下载&#xff0c;并通…

javaEE初阶 — 认识文件

文章目录认识文件1. 树型结构组织和目录2. 文件路径&#xff08;Path&#xff09;2.1 绝对路径2.2 相对路径3. 文件的类型认识文件 文件分为 狭义 和 广义 两种 狭义的文件&#xff1a;指的是硬盘上的 文件 和 目录 广义的文件&#xff1a; 泛指计算机中很多的软硬件资源。操…

2022(一等奖)D926刘家峡库区潜在滑坡InSAR识别与分析

作品介绍 1 应用背景 滑坡是普遍存在于世界各地山区的主要灾害之一&#xff0c;严重威胁着人类的生命财产安全和自然环境。滑坡不但会直接破坏人类生命财产安全和建筑物&#xff0c;而且还会造成堰塞湖等次生灾害&#xff0c;进而对人类的生命财产安全和基础设施等造成二次破坏…

暴力破解 SSH

Kali 的 MSF 终端&#xff0c;对渗透目标主机 的 SSH 服务进行暴力破解。 破解的是否成功取决于字典和目标是否使用弱密码。 一&#xff0c;实验环境 分别是攻击机和靶机&#xff08;也可是其他目标服务器&#xff09; 二、利用 SSH 弱密码进行暴力破解 暴力破解最重要的要…

100 道 Linux 笔试题,能拿 80 分就算大神!

本套笔试题共100题&#xff0c;每题1分&#xff0c;共100分。&#xff08;参考答案在文章末尾&#xff09; 1.cron 后台常驻程序 (daemon) 用于&#xff1a; A. 负责文件在网络中的共享 B. 管理打印子系统 C. 跟踪管理系统信息和错误 D. 管理系统日常任务的调度 2.在大多数Li…

如何使用无标签数据进行预训练?

一、直观解释 简单来说就是“造目标”。也即人为地去构造一些子任务&#xff08;论文里的protext task&#xff09;&#xff0c;或者利用一些最基本的公理性常识&#xff0c;去设计“类似监督”的任务。所不同的是&#xff0c;我们引入的“类似监督”的任务通常是用来完成表征…

day13|559.n叉树的最大深度、222.完全二叉树的节点个数

559.n叉树的最大深度 给定一个 N 叉树&#xff0c;找到其最大深度。最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。N 叉树输入按层序遍历序列化表示&#xff0c;每组子节点由空值分隔&#xff08;请参见示例&#xff09;。 示例 1&#xff1a; 输入&#xff1a;r…

基于opencv的图像:边缘检测 (完整代码+详细教程)

给出“离散拉普拉斯算子”一般形式的数学推导 离散值的导数使用差分代替: 所以: 以(x, y)为中心点,在水平和垂直方向上应用拉普拉斯算子,滤波器(对应a=1的情况)为:

广告归因-让你彻底弄归因架构实现

这里会引用神策数据很多的介绍&#xff0c;然后进行总结 归因方法 自归因 渠道商帮我们做归因&#xff0c;有的是每个用户打开 app 都回传给渠道商&#xff0c;渠道商自己归因有的如华为是从应用商店安装时&#xff0c;应用商店把归因信息写入到 app, 然后首次安装启动时能从本…

【信息学CSP-J近16年历年真题64题】真题练习与解析 第12题之加工零件

加工零件 描述 凯凯的工厂正在有条不紊地生产一种神奇的零件,神奇的零件的生产过程自然也很神奇。工厂里有 𝑛 位工人,工人们从 1~𝑛编号。某些工人之间存在双向的零件传送带。保证每两名工人之间最多只存在一条传送带。 如果 𝑥 号工人想生产一个被加工到第 𝐿(…

回溯法--旅行售货员问题--排列树

回溯法有点类似于暴力枚举的搜索过程&#xff0c;回溯法的基本思想是按照深度优先搜索的策略&#xff0c;从根节点出发深度搜索解空间树&#xff0c;当搜索到某一节点时&#xff0c;如果该节点可能包含问题的解&#xff0c;则继续向下搜索&#xff1b;反之回溯到其祖先节点&…

【学习笔记】【Pytorch】六、nn.Module的使用

【学习笔记】【Pytorch】六、nn.Module的使用学习地址主要内容一、torch.nn模块概述二、nn.Module类的使用1.使用说明2.代码实现学习地址 PyTorch深度学习快速入门教程【小土堆】. 主要内容 一、torch.nn模块概述 概述&#xff1a;帮助程序员方便执行与神经网络相关的行为。…

微信小程序——WXSS模板样式,rpx,样式导入,全局样式和局部样式,全局配置-window

一.WXSS模板样式1.什么是 wxss WXSS ( WeiXin Style Sheets &#xff09;是一套样式语言&#xff0c;用于美化 WXML 的组件样式&#xff0c;类似于网页开发中的CSS。2. WXSS 和 CSS 的关系WXSS 具有 CSS 大部分特性&#xff0c;同时&#xff0c; WXSS 还对 CSS 进行了扩充以及修…