ROS:rosdep与ROS2的安装记录

发布时间:2024年01月23日

鱼香ROS一键安装:

一键安装微信使用指南 | 鱼香ROS

?

rosdep安装:

rosdep 是一个在ROS(Robot Operating System)生态系统中非常重要的工具,它用于安装ROS包的依赖项。rosdep 确保了ROS包所需的系统依赖项能够被正确安装,这对于维护ROS工作空间和编译源代码来说是非常重要的。

rosdep 的主要功能包括:

  1. 安装依赖项rosdep 会查看ROS包的package.xml文件,根据其中列出的依赖项自动安装它们。这包括库文件、工具、系统软件包等。

  2. 跨平台支持:它支持多种Linux发行版(如Ubuntu、Fedora等),并能够根据不同的操作系统和发行版安装正确的软件包。

  3. 简化ROS安装rosdep 使得安装和管理ROS工作空间的依赖项变得更加简单,特别是在处理大型项目或多个ROS包时。

使用 rosdep

  1. 初始化 rosdep:在首次使用 rosdep 时,需要进行初始化:

sudo rosdep init
rosdep update

安装特定ROS包的依赖项

  • 首先,导航到ROS工作空间的根目录。
  • 然后,使用以下命令安装所有必需的依赖项:

rosdep install --from-paths src --ignore-src -r -y

注意事项

  • 确保在使用 rosdep 之前已经正确设置了ROS环境。
  • 使用 rosdep 需要具有足够的权限来安装系统软件包,通常这意味着需要使用 sudo
  • 有时,特别是在开发新的ROS包或使用来自不同源的包时,rosdep 是管理依赖项的关键工具。
  • rosdep 并不负责安装编译后的ROS包本身,它只处理系统级的依赖项。编译ROS包通常是通过 catkin_makecolcon build 等工具完成的。

????????总的来说,rosdep 是ROS工作流的一个关键组成部分,它极大地简化了依赖项管理和跨平台开发。

随后继续在ROS1的基础上安装一个ROS2:

?对于Ubuntu 20.04 (Focal Fossa),推荐安装的ROS 2版本是ROS 2 Foxy Fitzroy。Foxy是专门为Ubuntu 20.04优化的,且是在这个Ubuntu版本上受到长期支持(Long-Term Support,LTS)的ROS 2版本。

ROS 2 Foxy Fitzroy

  • LTS支持:Foxy Fitzroy是长期支持版本,这意味着它将会接收定期的维护更新和bug修复。
  • 与Ubuntu 20.04的兼容性:Foxy是为了与Ubuntu 20.04的库和系统环境进行优化而设计的,从而确保最佳的兼容性和性能。

下面直接输入2:

?输入1:

?用户输入1之后,终端出现:ROS_DISTRO was set to 'noetic' before. Please make sure that the environment does not mix paths from different distributions.

一般这个现象可以不用管,但是有时想运行ros2的指令时,查询的却是ros1下的路径,这时我们需要在bashrc文件里将ros1相关的路径都注释掉(反之,亦然。)

如果非要解决的话,给出一种方案如下:

解决方案:使用脚本自动清除环境

您可以在脚本中添加逻辑来自动清除当前的ROS环境,然后再激活新的版本。例如:

这里需要将.bashrc文件中最后的部分更该为:

# >>> fishros initialize >>>
echo "ros:foxy(1) noetic(2) ?"
read choose
case $choose in
1)? if [ -n "$ROS_DISTRO" ]; then
??????? unset ROS_DISTRO
??? fi
??? source /opt/ros/foxy/setup.bash;;
2)? if [ -n "$ROS_DISTRO" ]; then
??????? unset ROS_DISTRO
??? fi
??? source /opt/ros/noetic/setup.bash;;
esac
# <<< fishros initialize <<<

?

然后source下bashrc文件:

source ~/.bashrc

再次重启终端运行ros2指令就恢复正常了。


最后测试启动小乌龟仿真器:

下面新开一个终端开始测试:

ros2 run turtlesim turtlesim_node

另外需要打开一个终端,在里面运行键盘控制的节点,命令如下:

ros2 run turtlesim turtle_teleop_key

?测试完成!

文章来源:https://blog.csdn.net/qq_54900679/article/details/135765773
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。