[ROS2 Foxy]#1.1 ROS2安装
参考
官网教程:https://docs.ros.org/en/foxy/Installation/Ubuntu-Install-Binary.html
https://blog.csdn.net/HikFF/article/details/120889338
🖥️环境配置:
- 硬件: 树莓派 4B -4G
- 操作系统Ubuntu Linux Focal Fossa (20.04) 64-bit ARM server版本
- ROS版本:ROS 2 Foxy Fitzroy🦊
📁 添加 ROS 2 的apt repository
在安装前先要添加ROS2 的apt repository到本地系统
- 首先获取GPG的秘钥授权,执行以下command:
sudo apt update && sudo apt install curl gnupg2 lsb-release sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
- 添加库到源列表(sources list),执行以下command
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
⏬ Download
📩下载地址:https://github.com/ros2/ros2/releases
从以上下载地址选择自己需要的版本,以下以**ros2-foxy-20211013-linux-focal-arm64.tar.bz2为例**
由于我是在Windows端下载的,所以需要传到树莓派上的Ubuntu,直接下载到Ubuntu可以跳过第2步:
-
在Ubuntu 上先建立ros的路径,安装包将上传并解压到该路径下
mkdir -p ~/ros2_foxy cd ~/ros2_foxy
-
上传ROS的release安装包.Windows端上,在文件管理器里找到安装包所在路径,按
shift
同时右键点击空白处,点击在此处打开powershel窗口
,执行一下command:(请根据自己的情况修改指令 参数)scp ros2-foxy-20211013-linux-focal-arm64.tar.bz2 ubuntu@192.168.0.16:~/ros2_foxy
-
解压.在Ubuntu端解压ROS的安装包,
在第1步后,执行以下command:
tar xf ros2-foxy-20211013-linux-focal-arm64.tar.bz2
等待解压完成.
🏗️安装ROS 2
🏗️安装rosdep:
执行以下command安装并初始化rosdep
sudo apt update
sudo apt install -y python3-rosdep
sudo rosdep init
rosdep update
-
以上command执行时出现timeout的报错可以通过参考以下链接尝试解决,
https://blog.csdn.net/HikFF/article/details/120889338
报错原因最主要是因为
the wall
🏗️安装缺少的依赖(dependencies)
官网教程上写的指令如下:
rosdep install --from-paths ~/ros2_foxy/ros2-linux/share --ignore-src -y --skip-keys "cyclonedds fastcdr fastrtps rti-connext-dds-5.3.1 urdfdom_headers"
执行时出现以下报错⚠️:
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies (ROS distro is not set. Make sure `ROS_DISTRO` environment variable is set, or use `--rosdistro` option to specify the distro, e.g. `--rosdistro indigo`):
rosidl_typesupport_c: Cannot locate rosdep definition for [rosidl_typesupport_connext_c]
rosidl_typesupport_cpp: Cannot locate rosdep definition for [rosidl_typesupport_connext_cpp]
rosidl_generator_py: Cannot locate rosdep definition for [rosidl_typesupport_connext_c]
rmw_implementation: Cannot locate rosdep definition for [rmw_connext_cpp]
原因是报错列出来的库无法在本地定位到,暂时没找到解决方法,将报错的库的key填写到 skip keys里command执行成功,command如下:
rosdep install --from-paths ~/ros2_foxy/ros2-linux/share --ignore-src -y --skip-keys "cyclonedds fastcdr fastrtps rti-connext-dds-5.3.1 urdfdom_headers rosidl_typesupport_connext_cpp rosidl_typesupport_connext_c rmw_connext_cpp"
🏗️安装Python3 libraries
command如下:
sudo apt install -y libpython3-dev python3-pip
pip3 install -U argcomplete
💡测试一下
ROS2 在运行任何程序前,先要起一下ROS2 的环境即Workspace,command如下(注意修改为自己的安装目录):
. ~/ros2_foxy/ros2-linux/setup.bash
测试时间🕐:
-
首先启动一个终端,运行
talker
,commad如下:. ~/ros2_foxy/ros2-linux/setup.bash ros2 run demo_nodes_cpp talker
-
再另外启动一个终端,运行
listener
,command如下:. ~/ros2_foxy/ros2-linux/setup.bash ros2 run demo_nodes_py listener
3.最终结果如下则成功:
最终结果如上说明安装成功