首页 > 其他分享 >ROS2 学习记录文档

ROS2 学习记录文档

时间:2023-04-19 09:56:59浏览次数:56  
标签:记录 -- sudo 文档 ROS2 install ros ros2 build

ros2的 安装 (humble version)

1.换源

2.过程

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
export LANG=en_US.UTF-8
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
sudo apt update && sudo apt upgrade
sudo apt install ros-humble-desktop
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc

3.测试

ros2 run demo_nodes_cpp talker
ros2 run demo_nodes_py listener

4.基本语法

#ROS1      --> #ROS2
# -----------------------------------
roscore    --> ros2
rosrun     --> ros2 run
rosnode    --> ros2 node
roslaunch  --> ros2 launch
rosparam   --> ros2 param
rospkg     --> ros2 pkg
rosservice --> ros2 service 
rossrv     --> ros2 srv
rostopic   --> ros2 topic
rosaction  --> ros2 action

5.colcon命令

colcon build
#–packages-select 命令
colcon build --packages-select YOUR_PKG_NAME #编译指定包,可以多个
#–packages-ignore 命令
colcon build --packages-ignore YOUR_PKG_NAME #忽略指定包,可以多个
#–continue-on-error 命令
colcon build --continue-on-error #在编译出错之后继续编译其他模块
#–symlink-install 命令
colcon build --symlink-install
#表示编译时如果 install 中文件已经存在于 src 或者 build 文件夹中,就用超链接指向该文件,避免浪费空间,也可以实现同步更新
#–merge-install 命令
colcon build --merge-install
#默认会使用install使用作为所有软件包的安装前缀,而不是 安装库中特定于软件包的子目录;
#如果没有这个选项,每个包都会贡献自己的环境路径,导致环境变量特别长;使用此选项,环境变量更短;
#–parallel-workers 命令
colcon build --parallel-workers NUMBER
#要并行处理的最大作业数, 默认值是逻辑 CPU 内核数
#–cmake-args 命令
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release #表示传入cmake编译选项参数

6.package.xml 文件

<package>               <!--1. 根标签-->
        <name>              <!--2. 包名-->
        <version>           <!--3. 版本号-->
        <description>       <!--4. 包描述-->
        <maintainer>        <!--5. 维护者-->
        <license>           <!--6. 软件许可-->
        <buildtool_depend>  <!--7. 编译构建工具,通常为catkin-->
        <depend>            <!--8. 指定依赖项为编译、 导出、 运行需要的依赖,最常用的依赖标记。-->
        <build_depend>      <!--9. 编译依赖项-->
        <build_export_depend> <!--10. 导出依赖项-->
        <exec_depend>        <!--11. 运行依赖项-->
        <test_depend>        <!--12. 测试用例依赖项-->
        <doc_depend>         <!--13. 文档依赖项-->
</package>              <!--根标签-->

7.关于 ros 的命名规则

https://blog.csdn.net/zvvzxzko2006/article/details/110222802?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-3-110222802-blog-120363007.pc_relevant_3mothn_strategy_and_data_recovery&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-3-110222802-blog-120363007.pc_relevant_3mothn_strategy_and_data_recovery&utm_relevant_index=6

8.数据录制与回放

ros2 bag record topic_name 
ros2 topic list 
ros2 bag play -l *.db3 
ros2 topic hz topic_name 
ros2 topic echo topic_name 

9.launch 文件的编写

import os
from ament_index_python.packages import get_package_share_directory
from launch import LaunchDescription
from launch_ros.actions import Node

def generate_launch_description():
    # config_file = os.path.join(get_package_share_directory("app_locator"), "config", "app_locator.yaml")
    return LaunchDescription([
        Node(
            package='app_controller',
            namespace='/',
            executable='app_controller_node',
            name='app_controller_node',
            output='screen',
            emulate_tty=True,
        )
    ])

 

foxy version: https://blog.csdn.net/feimeng116/article/details/106602562

TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
  TRANSLATE with COPY THE URL BELOW Back EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back

标签:记录,--,sudo,文档,ROS2,install,ros,ros2,build
From: https://www.cnblogs.com/E-Dreamer-Blogs/p/17332198.html

相关文章

  • docker官方文档解读
    官网:https://docs.docker.com/get-started/overview/1Dockeroverview2开始2.1创建镜像并启动这里我们以一个nodejs用于为例,说明容器化应用程序过程首先克隆这个应用程序源码 gitclonehttps://github.com/docker/getting-started.git 然后,创建一个Dockerfile文件[......
  • 每日记录
    今天研究了javaweb的记住用户,就是用户登陆过之后可以选择记住用户,下次登录时不用再输入密码账号具体实现如下importwmx.bean.User;importwmx.service.UserService;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.s......
  • php---pdo类 添加记录
    1<?php2header("Content-type:text/html;charset=utf-8");3//设置中国时区4date_default_timezone_set('PRC');56$dsn="mysql:host=127.0.0.1;port=3306;dbname=test;charset=utf8";7$username="root";8$pass......
  • Apple iWork(Pages、Numbers、Keynote)13.0 - 文档、电子表格、演示文稿
    请访问原文链接:https://sysin.org/blog/apple-iwork-13/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org苹果今天将其专为iOS和macOS设备设计的iWork应用套件更新为版本12(sysin),引入了许多新功能和改进功能。文档、电子表格、演示文稿,尽可集思广益。Pages......
  • Oracle mos文档关于视图v$open_cursor中说法矛盾
     Oraclemos文档关于视图v$open_cursor中矛盾说法 HowtoMonitorandtuneOpenandCachedCursors(文档ID1430255.1)中指出:v$open_cursorshowscachedcursors,notcurrentlyopencursors,bysession.Ifyouarewonderinghowmanycursorsasessionhasopen......
  • 【内附源码和文档】基于C++14异步蒙特卡洛工具函数
    Simple-Monte-Carlo-Tool-Function这是一个使用C++实现的简单的异步蒙特卡洛算法工具函数C++标准:C++14使用autores=MonteCarlo(sample_nums,check_sample_funtion,generate_sample_funtion,…args);doublep=res.get();std::cout<<p<<std::endl;sample_nums:需要生成的样......
  • 记录一下工作中遇见的geoserver项目编译不成功和开源团队沟通解决问题的bug
    文件地址:org.geoserver.wcs.kvp.rangesubset.AbstractContentNode最近公司需要一些geoserver的定制化修改开发,但是在build项目的时候,发现这个Node是没有import的,我网上看了下,有的是直接引入的上面我注释掉的,---这是错误的做法,我根据这个问题和开源官方直接沟通得知是使用的下面......
  • linux蚁剑入门到熟悉文档地址整理
    linux蚁剑入门到熟悉文档地址收录蚁剑GetHub地址帮助文档kali安装出现问题的解决方式kali安装记录linuxdebian下载解压后进入文件内,使用root身份执行./AntSword后选择下载运行环境,新建并选择位置即可之后再次./AntSword即可......
  • 《3D编程模式》写书-第4次记录
    大家好,这段时间我完成了“再看设计原则”的初稿,包括了设计基础、单一职责原则、依赖倒置原则、接口隔离原则、合成复用原则、最少知识原则、开闭原则目前我已经完成了所有的初稿,后面会进行第二轮的修改,将初稿改为二稿目前暂定删除“提出新的设计原则”的内容感谢大家的支持!......
  • 学习记录:第二周day05笔记
    一、什么是指针指针是一种特殊的数据类型,使用它可以定义指针变量,指针变量中存储的是整型数据,该数据代表了内存的编号(地址),可以通过这个编号访问到对应的内存 二、为什么要使用指针1、函数之间内存是相互独立的,但有时候需要函数之间共享变量普通传参是单向值传递全局变......