Windows ROS2使用教程01-基础环境配置
背景及初衷
windows下ros2相关的文章比较少,官方文档针对windows的相关描述也有很多不明确的地方,现结合ros2官方文档关键点实操记录,希望对大家有所帮助;共勉!
ROS2环境配置
用CMD或者Powershell命令行窗口执行local_setup.bat或者local_setup.ps1
CMD执行
官方指令如下
call C:\dev\ros2\local_setup.bat
windows下安装目录有所不同,实际指令如下
call C:\opt\ros\foxy\x64\local_setup.bat
直接运行ros2验证没有问题
Powershell执行
官方指令如下
C:\dev\ros2_foxy\local_setup.ps1
windows下安装目录有所不同,实际指令如下
C:\opt\ros\foxy\x64\local_setup.ps1
执行完之后报错:
官网提示每次打开新 shell 时,PowerShell 都会请求运行此脚本的权限。为了避免这个问题,你可以运行下方指令,但是还是报相同错误
Unblock-File C:\opt\ros\foxy\x64\local_setup.ps1
问了一下chatgpt错误原因是执行策略的原因,给了解决方式:
更改Powershell执行策略
管理员权限下执行如下脚本,我这里没有图中说的提示确认。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
不放心的话可以执行get-executionpolicy查看是否更改成功,为RemoteSigned表示成功
配置powershell环境以自动载入ros2配置
在C:\Users<当前用户>\Documents\WindowsPowerShell路径下新建文件Microsoft.PowerShell_profile.ps1
直接打开powershell后,输入ros2出现
检查环境变量
此步骤是cmd命令行下可用命令,powershell下不知道该用哪个?反正就是过滤显示ros相关的环境变量
执行效果如下:
其它
ROS_DOMAIN_ID变量
域 ID不知道什么时候能用到
#临时生效
set ROS_DOMAIN_ID=<your_domain_id>
#永久生效
setx ROS_DOMAIN_ID <your_domain_id>
ROS_LOCALHOST_ONLY变量
ROS_LOCALHOST_ONLY环境变量允许您将 ROS 2 通信限制为仅与本地主机。
#临时生效
set ROS_LOCALHOST_ONLY=1
#永久生效
setx ROS_LOCALHOST_ONLY 1
总结
ROS2环境变量为一切的基础,使用 ROS 2 中的包时遇到任何问题,您应该做的第一件事就是检查您的环境变量并确保它们设置为您想要的版本和发行版。