目录
一、Windows系统下的ROS安装
1.Visual Studio安装
2.巧克力 - Chocolatey安装
3. git安装
4.ROS安装
5.创建启动ROS的快捷方式
二、Windows与Ubuntu间ROS主从机通信
1.主从机配置
2.测试效果展示
可能遇到的问题:
想要在Windows系统下运行ROS系统避免不了跟微软打交道,ROS的安装需要用到Visual Studio,本文以Visual Studio2019为例。相信大部分程序员都有安装这一软件,需要注意的是版本需Visual Studio2019及以后。安装时需要选择使用C++桌面开发和通用Windows开发平台,给出官网链接,安装过程这里不再赘述。
chocolatey是类似于apt-get的下载器
在开始菜单中,找到“x64 Native Tools Command Prompt for VS 2019”项,以管理员身份运行。
复制一下代码到命令框中运用,允许所有操作
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command “iex ((New-Object System.Net.WebClient).DownloadString(‘https://chocolatey.org/install.ps1’))” && SET “PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin”
安装完成后关闭命令框
重新打开“x64 Native Tools Command Prompt for VS 2019”,输入以下命令安装git
choco upgrade git -y
确认git是否安装成功
git --version
本文ROS以melodic版本为例,对应为ubuntu18.04下的ROS系统,安装其他版本修改第4条的ros-melodic-desktop_full即可
mkdir c:\opt\chocolatey
set ChocolateyInstall=c:\opt\chocolatey
choco source add -n=ros-win -s="https://aka.ms/ros/public" --priority=1
choco upgrade ros-melodic-desktop_full -y --execution-timeout=0
上面的命令要一步一步执行,出现下载异常可更换网络尝试
右键桌面空白处创建快捷方式
输入以下位置,需要做替换。其中第一个引号内为Visual Studio安装路径下对应的VsDevCmd.bat路径需要根据安装情况修改,目标末尾的c:\opt\ros\melodic\x64\setup.bat需要根据版本修改。
C:\Windows\System32\cmd.exe /k "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64&& set ChocolateyInstall=c:\opt\chocolatey&& c:\opt\ros\melodic\x64\setup.bat
为快捷方式命名后创建成功,建议命名为ROS.exe。
右键快捷方式打开属性,点击高级设置勾选为以管理员方式启动。
打开创建的ROS快捷方式,输入roscore测试
安装完成。
与两ubuntu系统间通信相似,需要在同一局域网内,确认主从机ip,这边以ubuntu系统为主机,windows系统为从机。windows在网络的属性处查看ip地址
ubuntu可用ifconfig查看
本文以windows ip 为192.168.0.105 ,hostname 为ningcong;ubuntu ip为192.168.106,hostname 为 nx 为例。
互相ping进行测试,可能出现ubuntu系统下ping不通的情况,需要修改防火墙设置,具体方法参照参考链接
在windows端以记事本方式打开C:\Windows\System32\drivers\etc\hosts文件
添加主机与从机ip与hostname,保存退出
在ubuntu端输入
sudo gedit /etc/hosts
在文件顶端同样添加主机与从机ip与hostname,保存退出
再输入
sudo gedit .bashrc
在末尾添加一下内容,在本文中主机hostname替换为nx,主机IP替换为192.168.0.106,从机IP替换为192.168.0.105
export ROS_HOSTNAME=主机hostname
export ROS_MASTER_URI=http://主机IP:11311
export ROS_IP=从机IP
在windows端打开ROS.exe快捷方式,输入,在本文中主机IP替换为192.168.0.106,从机IP替换为192.168.0.105,注意此设置在未写脚本的情况下每次启动都要设置
set ROS_MASTER_URI=http://主机IP:11311
set ROS_IP=从机IP
至此通信配置完成,下面添加windows脚本设置
在桌面创建记事本文件,添加以下内容,并做对应修改 ,最后一行修改方法参照快捷方式创建过程,在本文中主机IP替换为192.168.0.106,从机IP替换为192.168.0.105
@ECHO OFF
setlocal EnableDelayedExpansion
PUSHD %~DP0 & cd /d "%~dp0"
%1 %2
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :target","","runas",1)(window.close)&goto :eof
:target
C:\Windows\System32\cmd.exe /k "cd C:\Windows\System32\&& "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64&& set ChocolateyInstall=c:\opt\chocolatey&& c:\opt\ros\melodic\x64\setup.bat&&set ROS_MASTER_URI=http://主机ip:11311 &&set ROS_IP=从机ip"
将记事本文件后缀名改为.bat即可,脚本可代替快捷方式作用.。
roscore测试
在ubuntu系统下打开roscore 并roabag play 包
在windows系统下通过run rviz rviz 进行数据查看(ros相关软件操作都一样)
在nx上跑bag可以在windows上实时读取到topic数据
1.通讯失败,原因为windows端或ubuntu端未进行ROS_MASTER_URI设置,参考上文
2.windows端接受ubuntu端发出的信息极度缓慢,未进行host文件设置,参考windows端host文件设置修改
3.ubuntu端接受不到windows端发出的信息,windows端或ubuntu端未进行ROS_IP设置