文章目录

 
    • ① 背景
    • ② 前提
    • ③ 任务
      • Ⅰsource setup 文件
      • Ⅱ 在shell启动文件中加命令
      • Ⅲ 检测环境变量
      • Ⅳ `ROS_DOMAIN_ID` 变量
    • ④ 总结
 

① 背景

  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
  这个样子   微信图片_20210103191339  

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 中,墙裂推荐第二种