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/
相关文章
|
17天前
|
Ubuntu Linux Docker
Ubuntu 18.04 安装Docker实战案例
关于如何在Ubuntu 18.04系统上安装Docker的实战案例,包括安装步骤、配置镜像加速以及下载和运行Docker镜像的过程。
103 3
Ubuntu 18.04 安装Docker实战案例
|
17天前
|
Ubuntu 网络安全 开发工具
Ubuntu19.04的安装过程详解以及操作系统初始化配置
本文详细介绍了Ubuntu 19.04操作系统的安装过程、初始化配置、网络设置、软件源配置、SSH远程登录以及终端显示设置。
40 1
Ubuntu19.04的安装过程详解以及操作系统初始化配置
|
4天前
|
存储 Prometheus 监控
在Ubuntu系统上安装与配置Prometheus的步骤
通过以上步骤,您应该已经成功在Ubuntu系统上安装并配置了Prometheus。您现在可以开始使用Prometheus收集和分析您的系统和应用程序的指标数据了。
13 1
|
17天前
|
Ubuntu NoSQL
ubuntu上安装某个程序的符号表和源码包
ubuntu上安装某个程序的符号表和源码包
|
17天前
|
Ubuntu
在树莓派4B上安装ubuntu系统
在树莓派4B上安装ubuntu系统
|
17天前
|
Ubuntu
使用dpkg在ubuntu上安装软件包遇到依赖包的问题
使用dpkg在ubuntu上安装软件包遇到依赖包的问题
|
14天前
|
存储 Ubuntu 网络安全
在Ubuntu系统下通过Caddy实现LXD的安装与部署
通过上述步骤,您可以在Ubuntu系统下通过Caddy实现LXD的安装与部署。这种方法不仅可以提高容器管理的效率,还可以借助Caddy的自动SSL管理功能提升安全性。
12 0
|
Ubuntu Python
Ubuntu安装ROS2并编写自己的程序(下)
Ubuntu安装ROS2并编写自己的程序(下)
Ubuntu安装ROS2并编写自己的程序(下)
|
28天前
|
Ubuntu Shell 网络安全
安装了ubuntu虚拟机后发现shell无法连接 ubuntu开启ssh连接
【8月更文挑战第23天】安装了ubuntu虚拟机后发现shell无法连接
85 6
|
22天前
|
Ubuntu Shell C++
在Ubuntu18.04上安装ros2的环境,ros2的常用命令:播放包、录制包等
在Ubuntu18.04上安装ros2的环境,ros2的常用命令:播放包、录制包等
35 1