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入门实践
本课程将基于基础设施即代码 IaC 的理念,介绍阿里云自动化编排服务ROS的概念、功能和使用方式,并通过实际应用场景介绍如何借助ROS实现云资源的自动化部署,使得云上资源部署和运维工作更为高效。
相关文章
|
1月前
|
Ubuntu 安全 iOS开发
Nessus Professional 10.10 Auto Installer for Ubuntu 24.04 - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for Ubuntu 24.04 - Nessus 自动化安装程序
125 5
|
1月前
|
NoSQL Ubuntu MongoDB
在Ubuntu 22.04上安装MongoDB 6.0的步骤
这些步骤应该可以在Ubuntu 22.04系统上安装MongoDB 6.0。安装过程中,如果遇到任何问题,可以查阅MongoDB的官方文档或者Ubuntu的相关帮助文档,这些资源通常提供了解决特定问题的详细指导。
216 18
|
2月前
|
Ubuntu 安全 关系型数据库
安装MariaDB服务器流程介绍在Ubuntu 22.04系统上
至此, 您已经在 Ubuntu 22.04 系统上成功地完成了 MariadB 的标准部署流程,并且对其进行基础但重要地初步配置加固工作。通过以上简洁明快且实用性强大地操作流程, 您现在拥有一个待定制与使用地强大 SQL 数据库管理系统。
213 18
|
2月前
|
Ubuntu 安全 关系型数据库
安装MariaDB服务器流程介绍在Ubuntu 22.04系统上
至此, 您已经在 Ubuntu 22.04 系统上成功地完成了 MariadB 的标准部署流程,并且对其进行基础但重要地初步配置加固工作。通过以上简洁明快且实用性强大地操作流程, 您现在拥有一个待定制与使用地强大 SQL 数据库管理系统。
239 15
|
2月前
|
存储 Ubuntu iOS开发
在Ubuntu 22.04系统上安装libimobiledevice的步骤
为了获取更多功能或者解决可能出现问题,请参考官方文档或者社区提供支持。
152 14
|
2月前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
389 7
|
2月前
|
消息中间件 人工智能 运维
Ubuntu环境下的 RabbitMQ 安装与配置详细教程
本文聚焦在Ubuntu下RabbitMQ安装与配置教程,旨在帮助读者快速构建稳定可用的消息队列服务。
|
Ubuntu Python
Ubuntu安装ROS2并编写自己的程序(下)
Ubuntu安装ROS2并编写自己的程序(下)
Ubuntu安装ROS2并编写自己的程序(下)
|
3月前
|
Ubuntu Linux
任何Ubuntu用户都应安装的四大Linux应用程序
当然,这款程序不需要太多介绍。我们面对的是网上最庞大最完整的多媒体中心,由于丰富的插件,我们能够高度细化地定制其每一项功能。这是我们的Linux发行版不可或缺的必备软件。 我们可以通过运行以下命令来轻松安装Kodi:sudo apt install kodi。
|
3月前
|
Ubuntu 物联网 Linux
从零安装一个Linux操作系统几种方法,以Ubuntu18.04为例
一切就绪后,我们就可以安装操作系统了。当系统通过优盘引导起来之后,我们就可以看到跟虚拟机中一样的安装向导了。之后,大家按照虚拟机中的顺序安装即可。 好了,今天主要介绍了Ubuntu Server版操作系统的安装过程,关于如何使用该操作系统,及操作系统更深层的原理,还请关注本号及相关圈子。