发布时间:2023-08-31 12:00
由于未来的ROS主流版本是ROS2,在这一节里面我们安装配置一下ROS2-Dashing和ROS1-Melodic切换共存。
ROS1-Melodic在前面的章节下载安装过,这里就不再安装,安装ROS1-Melodic见
ROS学习03-NVIDIA JETSON TX2 - Ubuntu18.04安装ROS-melodic[规避踩坑]
按住傲官网上的话先要确保支持UTF-8的语言环境。如果处于最小的环境中,例如docker容器,则语言环境可能与POSIX一样精简。使用以下设置进行测试。如果使用不同的UTF-8支持的语言环境,应该没问题。
#这个地方可先不配置
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
设置安装源
要安装Debian软件包,需要将Debian库添加到apt源代码中。首先,需要使用以下方式获取授权的gpg密钥:
sudo apt update && sudo apt install curl gnupg2 lsb-release
curl http://repo.ros2.org/repos.key | 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\'
更新apt库缓存:
sudo apt update
ROS 2命令行工具使用argcomplete来自动完成补全。因此,如果想要自动完成,则需要安装argcomplete:
sudo apt install python3-argcomplete
安装与ROS1与ROS2通信桥梁:
sudo apt install ros-dashing-ros1-bridge
ROS 2默认安装的RWM是FastRTPS,也可以使用如下方式安装OpenSplice或RTI Connext的RWM:
sudo apt install ros-dashing-rmw-opensplice-cpp # for OpenSplice
sudo apt install ros-dashing-rmw-connext-cpp # for RTI Connext (requires license agreement)
安装配置完成在/opt/ros可以看到两个ROS的目录
测试ROS2-Dashing
执行命令:
ros2 run demo_nodes_cpp talker
再开启一个终端,输入命令:
ros2 run demo_nodes_py listener
由于设置环境变量才能使用ROS的功能,而两个ROS不能同时使用,因此我们需要写几行代码加到~/.bashrc下面以每次选择使用哪个ROS
原来每打开一个终端需要选择运行下面的两个ROS
source /opt/ros/dashing/setup.bash
source /opt/ros/melodic/setup.bash
在~/.bashrc下最后加入以下代码
vim ~/.bashrc
echo \"Please Choose ros melodic(1) or ros2 dashing(2)?\"
read edition
if [ \"$edition\" -eq \"1\" ];then
source /opt/ros/melodic/setup.bash
echo \"melodic(1)!\"
else
source /opt/ros/dashing/setup.bash
echo \"dashing(2)!\"
fi
参考链接:
https://blog.csdn.net/ZhangRelay/article/details/90695078
https://blog.csdn.net/sad490/article/details/81460395