文章目录
① 背景
ROS 2依赖于使用shell环境组合工作空间的概念。“工作区”是一个ROS术语,表示您在系统中使用ROS 2开发的位置。核心ROS 2工作区称为底层。后续的本地工作区称为覆盖。在使用ROS 2开发时,通常会同时激活多个工作区。
工作去通过setup.bash 进行设置和切换,跟ros1 一样的操作 只是自己的工作空间路径变了,不是devel变成install了
② 前提
确保已经安装了ros2,如果没有参考我的博客:https://blog.csdn.net/weixin_36628778/article/details/105170234
③ 任务
Ⅰsource setup 文件
可以每次使用的时候source setup.bash
source /opt/ros/<distro>/setup.bash
比如现在用的ROS2 是dashing
source /opt/ros/dashing/setup.bash
Ⅱ 在shell启动文件中加命令
如果嫌上面每次开一个终端,都要输入命令比较麻烦的话,可以吧上面的命令加到启动脚本里,shell 的是.bashrc
,zsh 是.zshrc
echo "source /opt/ros/<distro>/setup.bash" >> ~/.bashrc
我们需要设置
- bash
echo "source /opt/ros/dashing/setup.bash" >> ~/.bashrc
- zsh
echo "source /opt/ros/dashing/setup.zsh" >> ~/.zshrc
Ⅲ 检测环境变量
跟ROS1 的操作一样的
printenv | grep ROS
这个样子
Ⅳ ROS_DOMAIN_ID
变量
这个是多机通讯的变量,相当于交换机的vlanid ,当你局域网想区分出多个ROS集群的时候,每个ROS2集群之间不想相互干扰,需要设置这个ID 选择一个整数
对于eProsima Fast RTPS上的默认RMW,从ROS 2 Eloquent开始,此整数必须介于0-232之间,才能成功启动ROS 2守护守护进程。
如果通讯不了的话,可以通过这个网站来排查:https://index.ros.org/doc/ros2/Troubleshooting/
命令:
export ROS_DOMAIN_ID=<your_domain_id>
或者添加到启动脚本
echo "export ROS_DOMAIN_ID=<your_domain_id>" >> ~/.bashrc
④ 总结
使用之前必须要配置使用的环境,两种方式,一是每次打开shell,搞一次,二是把命令写道启动文件中.bashrc
中,墙裂推荐第二种