ros学习#2 配置ros2环境

前言

        刚下完ros1结果发现ros1到2025年就停止维护了,对比之前的ros1,ros2显然更符合当下趋势,所以就转为ros2的学习,正好ros2很久之前下载过了。

一、ros2和ros1对比(具体可以听古月居讲解2.ROS2对比ROS1_哔哩哔哩_bilibili

1.ros2的使用是基于DDS的Discovery机制,意思是所有节点的管理不再需要依托于Master进行管理,而是通过Discovery机制实现节点间的自动发现服务发现

自动发现:DDS的Discovery机制允许节点在加入网络时自动发现其他节点,以及它们所提供的服务(如话题、服务等)。这样,节点无需事先知道其他节点的存在或配置信息。

服务发现:DDS允许节点查询和发现其他节点提供的服务。例如,客户端可以发现可用的服务器节点,然后与之建立连接。

这意味着ros2可以不依赖于中心化管理,而是使节点间能够互相通信,这样大大减少了单点故障导致整个系统瘫痪的风险。

2.ros2重新设计了用户API,但使用方法类似,具体哪里类似我还没学

3.ros1使用rosbuild、catkin管理项目,ros2使用升级版的ament、colcon

二、ros2开发环境配置

由于之前下载过ros2,所以不再重新下载了,直接进入环境配置,因为很久以前配的ros2,很多东西我也忘了配没配过,可以使用以下命令看看是否下载

dpkg -s <软件包名>

我这里先验了git,也就是

dpkg -s git

 可以看到已经安装过了。 

如果没安装过可以直接sudo apt install git安装一下 

下载完之后再下载vscode,在网页上搜索vscode,下.deb后缀的安装包安装就可以

下载完vscode之后可以下载一些必要的插件:

包括C/C++简体中文插件CMake(用来编译c/c++文件的)、Pythonjubyterintellicode(代码提示的)、Markdown all in one(markdown文本高亮显示的)、MSG language support(MSG格式的高亮显示)、ROSURDF(URDF文件高亮显示的)、vscode-icons(把文件显示图标变得更有辨识性)

vscode配置好之后就可以进入创建工作空间了:

我是根据古月居视频里的配置步骤来的:(建议先看一下后面的遇到问题部分) 

6.工作空间与功能包:开发过程的大本营_哔哩哔哩_bilibili

 

遇到问题 :

1、由于我之前安装过anaconda3,所以我的工作空间是创建了一个虚拟环境,在虚拟环境里安装的,创建虚拟环境具体步骤如下:

conda create -name myros python=3.8

创建完之后激活:

conda activate myros

如果想退出虚拟环境:

conda deactivate

----------------------------------------------------------------------------------------------------------------

经过后来的学习发现由于colcon构建写死的运行系统环境的python,所以好像配置虚拟环境也没什么很大的意义……

------------------------------------------------------------------------------------------------------------------------------

2、在自动安装依赖的最后一步报错:

ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
learning_gazebo_fortress: Cannot locate rosdep definition for [python3-pytest]
learning_service: Cannot locate rosdep definition for [python3-pytest]
learning_tf: Cannot locate rosdep definition for [python3-pytest]
learning_parameter: Cannot locate rosdep definition for [python3-pytest]
learning_urdf: Cannot locate rosdep definition for [python3-pytest]
learning_pkg_python: Cannot locate rosdep definition for [python3-pytest]
learning_gazebo: Cannot locate rosdep definition for [python3-pytest]
learning_launch: Cannot locate rosdep definition for [python3-pytest]
learning_topic: Cannot locate rosdep definition for [python3-pytest]
learning_qos: Cannot locate rosdep definition for [python3-pytest]
learning_node: Cannot locate rosdep definition for [python3-pytest]
learning_cv: Cannot locate rosdep definition for [python3-pytest]
learning_action: Cannot locate rosdep definition for [python3-pytest]

将rosdepc更新一下就解决了,先运行一下更新程序:

rosdepc update

更新完重新执行自动安装依赖的最后一步,成功安装:

3、在编译工作空间的最后一步又遇到了报错:

显示no module named 'em',这种一般直接安装一下就好了,运行:

pip install empy

然而再次运行colcon build再次报错:  

查阅网上后发现是empy的版本与安装的Python版本不契合,具体解决方法我参考了大佬的文章解决编译ros2功能包报错ModuleNotFoundError: No module named ‘em‘_modulenotfounderror: no module named 'em-优快云博客

剩下的就是各种包没安装……

No module named 'numpy',那就pip install numpy

No module named 'lark' ,那就pip install lark

最后总算是都装好了,

打开文件夹有这四个子空间:

点开src文件夹,在文件夹里打开终端,创建c++的功能包:

(myros) hcd@hcd-Dell-G15-5511:~/dev_ws/src$ ros2 pkg create --build-type ament_cmake learning_pkg_c

在创建一个Python的功能包:

(myros) hcd@hcd-Dell-G15-5511:~/dev_ws/src$ ros2 pkg create --build-type ament_python learning_pkg_python

所有环境的配置到这里就结束了,该开始下一步的学习了。 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值