Ubuntu安装ROS2并编写自己的程序(上)

本文涉及的产品
资源编排,不限时长
简介: Ubuntu安装ROS2并编写自己的程序(上)

20200914102934202.png根据官方Distributions说明,Dashing Diademata为Ubuntu 18.04上支持最长的版本,下一个长期版本目标系统为 Ubuntu 20.04,因此作为学习的话,建议安装该版本,同时经过简单测试,当前ROS2对一般开发者并不算太友好,很多功能包也没有,不建议作为主力开发使用。


ROS2架构说明可参考ROS2探索总结(六)——迎接ROS2.0时代的到来


一、安装


1. 设置本地环境


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


2. 设置软件源


sudo apt update && sudo apt install curl gnupg2 lsb-release
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
sudo sh -c 'echo "deb [arch=amd64,arm64] http://packages.ros.org/ros2/ubuntu `lsb_release -cs` main" > /etc/apt/sources.list.d/ros2-latest.list'


3. 安装


sudo apt update


  • 完整版


sudo apt install ros-dashing-desktop


  • 基础版,无GUI工具


sudo apt install ros-dashing-ros-base


4. 安装argcomplete(可选)


用于ROS2的命令行工具(ROS 2命令行工具使用argcomplete自动完成。因此,如果您想要自动完成,安装argcomplete是必要的。)


sudo apt install python3-argcomplete


5. 配置环境


若多版本共存,或以ros1为主力开发,不要写入到.bashrc,使用ros2前在终端手动输入加载ros2环境


source /opt/ros/dashing/setup.bash


单版本使用,或以ros2为主力开发


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


6. 安装RMW implementation


RMW implementation为中间件,默认使用FastRTPS


sudo apt update
sudo apt install ros-dashing-rmw-opensplice-cpp # for OpenSplice
sudo apt install ros-dashing-rmw-connext-cpp # for RTI Connext (requires license agreement)


切换中间件


RMW_IMPLEMENTATION=rmw_opensplice_cpp: OpenSplice


RMW_IMPLEMENTATION=rmw_connext_cpp: RTI Connext(Bouncy新增)


7. 安装ros1_bridge


ros1_bridge用于ros1和ros2通讯,使ros2可以使用ros1的功能包。


sudo apt update
sudo apt install ros-dashing-ros1-bridge


8. ROS2测试


ros2 run demo_nodes_cpp talker
ros2 run demo_nodes_cpp listener


二、使用


1.安装colcon


在Bouncy版本后,ROS2采用colcon替代 ament_tools 用于程序编译。
sudo apt install python3-colcon-common-extensions


2.创建工作空间


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


当前目录结构(编译后会自动生成其余目录)


.
└── src
1 directory, 0 files


3. 创建功能包


这里直接clone例程。


git clone https://github.com/ros2/examples src/examples


切换版本到Bouncy


cd ~/ros2_ws/src/examples/
git checkout $ROS_DISTRO
cd ~/ros2_ws


当前目录结构


.
└── src
    └── examples
        ├── CONTRIBUTING.md
        ├── LICENSE
        ├── rclcpp
        ├── rclpy
        └── README.md
4 directories, 3 files


手动创建功能包


usage: ros2 pkg create [-h] [--package_format {2,3}]
                       [--description DESCRIPTION] [--license LICENSE]
                       [--destination-directory DESTINATION_DIRECTORY]
                       [--build-type {cmake,ament_cmake}]
                       [--dependencies DEPENDENCIES [DEPENDENCIES ...]]
                       [--maintainer-email MAINTAINER_EMAIL]
                       [--maintainer-name MAINTAINER_NAME]
                       [--cpp-node-name CPP_NODE_NAME]
                       [--cpp-library-name CPP_LIBRARY_NAME]
                       package_name


4. 编译


colcon build --symlink-install


完整目录结构


.
├── build
├── install
├── log
└── src
4 directories, 0 files


  • src,程序目录
  • build,编译的缓存信息和中间文件
  • install,编译输出文件目录
  • log,colcon调用的各种日志信息


当前目录结构(编译后会自动生成其余目录)

74b1f0602885937a3686cf2b01d0bc0a.png20200914105247131.png


然后回到工作空间下使用“colcon build”编译:


6ef12129ec05cf5cf25e89a7ee4ea8ec.png


编译完成的功能包都会放置在install文件夹下,可以看下有没有顺利生成可执行文件。


5. 加载环境


编译完成后,在install目录下会生成配置文件setup.bash,运行该文件可以加载运行所需相关环境,确保在运行节点前在终端运行该文件。


source install/setup.bash


6. 测试


启动订阅节点


ros2 run examples_rclcpp_minimal_subscriber subscriber_member_function


启动发布节点


ros2 run examples_rclcpp_minimal_publisher publisher_member_function


20200914110553493.png

相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
阿里云资源编排ROS使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
相关文章
|
7天前
|
Ubuntu Linux Docker
Ubuntu22.04上Docker的安装
通过以上详细的安装步骤和命令,您可以在Ubuntu 22.04系统上顺利安装
94 11
|
1月前
|
Ubuntu 开发工具 git
Ubuntu安装homebrew的完整教程
本文介绍了如何在没有公网的情况下安装 Homebrew。首先访问 Homebrew 官网,然后通过阿里云的镜像克隆安装脚本,并创建普通用户进行安装。接着修改 `install.sh` 文件指向国内镜像,执行安装命令。最后配置环境变量并更换 Homebrew 源为国内镜像,确保安装顺利。
269 50
|
1月前
|
Ubuntu
ubuntu和debian 的安装包dpkg管理命令对安装包进行安装,查询,卸载
Ubuntu dpkg 软件包管理命令概览:安装、卸载、查看和配置软件包。包括解决依赖、强制卸载、列出及过滤已安装包、查看包详情等操作。
55 10
|
1月前
|
Ubuntu API 开发工具
PSOPT在Ubuntu22.04下的安装
通过上述步骤,可以在Ubuntu 22.04下成功安装并配置PSOPT。PSOPT是一个功能强大的工具,适用于解决各种最优控制问题。确保在安装前满足系统要求,并仔细按照步骤操作,可以避免大多数常见问题。通过MATLAB与PSOPT的结合,您可以更高效地处理复杂的控制问题,并获得准确的解决方案。
35 5
|
1月前
|
Ubuntu 网络协议 关系型数据库
超聚变服务器2288H V6使用 iBMC 安装 Ubuntu Server 24.04 LTS及后续系统配置
【11月更文挑战第15天】本文档详细介绍了如何使用iBMC在超聚变服务器2288H V6上安装Ubuntu Server 24.04 LTS,包括连接iBMC管理口、登录iBMC管理界面、配置RAID、安装系统以及后续系统配置等步骤。
120 4
|
1月前
|
消息中间件 Ubuntu Java
Ubuntu系统上安装Apache Kafka
Ubuntu系统上安装Apache Kafka
|
2月前
|
Ubuntu Linux
Ubuntu 16.04下无法安装.deb的解决方法
希望以上策略能有效协助您克服在Ubuntu 16.04中安装.deb文件时遇到的挑战。
66 0
|
Ubuntu Python
Ubuntu安装ROS2并编写自己的程序(下)
Ubuntu安装ROS2并编写自己的程序(下)
Ubuntu安装ROS2并编写自己的程序(下)
|
2月前
|
并行计算 Ubuntu Linux
Ubuntu学习笔记(五):18.04安装多版本CUDA
这篇博客文章介绍了在Ubuntu 18.04系统上如何安装和切换不同版本的CUDA,以及如何安装不同版本的cuDNN。
240 2
|
2月前
|
并行计算 PyTorch TensorFlow
Ubuntu安装笔记(一):安装显卡驱动、cuda/cudnn、Anaconda、Pytorch、Tensorflow、Opencv、Visdom、FFMPEG、卸载一些不必要的预装软件
这篇文章是关于如何在Ubuntu操作系统上安装显卡驱动、CUDA、CUDNN、Anaconda、PyTorch、TensorFlow、OpenCV、FFMPEG以及卸载不必要的预装软件的详细指南。
5059 3