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/
相关文章
|
12天前
|
Ubuntu 开发工具 git
Ubuntu安装homebrew的完整教程
本文介绍了如何在没有公网的情况下安装 Homebrew。首先访问 Homebrew 官网,然后通过阿里云的镜像克隆安装脚本,并创建普通用户进行安装。接着修改 `install.sh` 文件指向国内镜像,执行安装命令。最后配置环境变量并更换 Homebrew 源为国内镜像,确保安装顺利。
114 50
|
1月前
|
Ubuntu Linux 测试技术
Linux系统之Ubuntu安装cockpit管理工具
【10月更文挑战第13天】Linux系统之Ubuntu安装cockpit管理工具
129 4
Linux系统之Ubuntu安装cockpit管理工具
|
8天前
|
Ubuntu Java
Ubuntu之jdk安装
以下是Ubuntu之jdk安装的详细内容
20 0
|
1月前
|
Kubernetes Ubuntu Docker
从0开始搞K8S:使用Ubuntu进行安装(环境安装)
通过上述步骤,你已经在Ubuntu上成功搭建了一个基本的Kubernetes单节点集群。这只是开始,Kubernetes的世界广阔且深邃,接下来你可以尝试部署应用、了解Kubernetes的高级概念如Services、Deployments、Ingress等,以及探索如何利用Helm等工具进行应用管理,逐步提升你的Kubernetes技能树。记住,实践是最好的老师,不断实验与学习,你将逐渐掌握这一强大的容器编排技术。
141 1
|
1月前
|
Ubuntu Linux
软件安装(五):Ubuntu 18.04安装Teamviewer 看一遍就会
这篇文章介绍了在Ubuntu 18.04系统上通过图形界面和命令行两种方法安装TeamViewer远程控制软件的步骤。
31 2
|
21天前
|
消息中间件 Ubuntu Java
Ubuntu系统上安装Apache Kafka
Ubuntu系统上安装Apache Kafka
|
27天前
|
Ubuntu Linux
Ubuntu 16.04下无法安装.deb的解决方法
希望以上策略能有效协助您克服在Ubuntu 16.04中安装.deb文件时遇到的挑战。
26 0
|
3月前
|
存储 Ubuntu Go
在Ubuntu 16.04上安装Go 1.6的方法
在Ubuntu 16.04上安装Go 1.6的方法
47 1
|
3月前
|
存储 Ubuntu Go
在Ubuntu 18.04上安装Go的方法
在Ubuntu 18.04上安装Go的方法
56 1
|
3月前
|
存储 Ubuntu Linux
在Ubuntu 14.04上安装Go 1.6的方法
在Ubuntu 14.04上安装Go 1.6的方法
53 1
下一篇
无影云桌面