鱼香ROS一键安装:
?
rosdep安装:
rosdep
是一个在ROS(Robot Operating System)生态系统中非常重要的工具,它用于安装ROS包的依赖项。rosdep
确保了ROS包所需的系统依赖项能够被正确安装,这对于维护ROS工作空间和编译源代码来说是非常重要的。
rosdep
的主要功能包括:安装依赖项:rosdep
会查看ROS包的package.xml
文件,根据其中列出的依赖项自动安装它们。这包括库文件、工具、系统软件包等。
跨平台支持:它支持多种Linux发行版(如Ubuntu、Fedora等),并能够根据不同的操作系统和发行版安装正确的软件包。
简化ROS安装:rosdep
使得安装和管理ROS工作空间的依赖项变得更加简单,特别是在处理大型项目或多个ROS包时。
rosdep
初始化 rosdep
:在首次使用 rosdep
时,需要进行初始化:
sudo rosdep init
rosdep update
安装特定ROS包的依赖项:
rosdep install --from-paths src --ignore-src -r -y
rosdep
之前已经正确设置了ROS环境。rosdep
需要具有足够的权限来安装系统软件包,通常这意味着需要使用 sudo
。rosdep
是管理依赖项的关键工具。rosdep
并不负责安装编译后的ROS包本身,它只处理系统级的依赖项。编译ROS包通常是通过 catkin_make
或 colcon 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版本。
下面直接输入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
?测试完成!