正片开始
在ROS librviz 人机交互软件开发系列教程中我们实现了Ubuntu端的界面开发。但是很多小伙伴问到能不能在Windows上进行开发,当时回复是不能,主要就是库的依赖问题难解决。但是我想了想ROS是有windows版本的,并且也能运行rviz之类的,既然rviz都可以在windows上运行,就说明是有库可以支持的。于是本人又进行了一番探索与总结。
本篇教程主要是介绍ROS Windows开发环境的搭建,ROS Windows基本的使用。以及在Windows中编译ROS Qt功能包。
实现效果
1. Windows运行rviz
2. ROS Windows QT 功能包编译并运行
3. ROS Windows Qt 功能包release版本
此release版本是本人将动态库进行打包,可以在未安装ROS的win10上直接运行(仅在一台电脑测试,可能会缺少其他动态库),下载后双击压缩包内的ros_qt_demo.exe即可运行。
经测试可运行在未安装ROS的Win10上并连接Ubuntu的Master主节点,并发布Chatter话题:
左:Ubuntu 右:win10
release地址: github
目录
一,安装windows版本的ROS
1,安装Visual Studio
2,安装ROS
3,创建ROS快捷终端
4,测试安装
二,ROS Windows使用
1,初始化ROS工作空间
2,创建ROS功能包
3,编译ROS功能包
4,添加ROS工作空间到环境变量
5,安装ROS软件包
三,ROS Qt功能包模板的编译与使用
一,安装windows版本的ROS
参考资料:ROS wiki
目标Windows ROS 支持kinetic,melodic,noetic,这里主要演示melodic版本的,其他版本大同小异,可参考wiki教程,确保c盘有10g以上的安装空间。
安装时对网络环境要求比较高,这就需要小伙伴们自己去寻找一个稳定的网络环境
1,安装Visual Studio
需要利用vs编译ROS代码,所以需要安装Visual Studio 2019
==这里注意要使用vs2019,ROS wiki给的教程是使用2019,由于我安装的是vs2015导致后面安装出现了一些问题==
注意安装以下组件:
“使用c++的桌面开发”。
“通用Windows平台开发”。
这里安装过程约1-2小时,请耐心等待
2,安装ROS
在“开始”菜单中,找到“ VS 2019 x64本机工具命令提示符”项。
右键单击,选择“更多”,然后选择“以管理员身份运行”
复制以下命令行:
@“%SystemRoot%System32WindowsPowerShellv1.0powershell.exe” -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command “iex ((New-Object System.Net.WebClient).DownloadString(‘https://chocolatey.org/install.ps1’))” && SET “PATH=%PATH%;%ALLUSERSPROFILE%chocolateybin”
将其粘贴到命令窗口中,批准任何提示,完成后,关闭命令提示符以完成安装。
安装Git:
如上所述,重新打开Visual Studio命令窗口。
即使您已将其安装为应用程序,也请使用此处的命令安装Git。
choco upgrade git -y
确认git是否安装成功
git --version
安装ROS
执行如下命令行,安装ROS
mkdir c:optchocolatey
set ChocolateyInstall=c:optchocolatey
choco source add -n=ros-win -s=“https://aka.ms/ros/public” --priority=1
choco upgrade ros-melodic-desktop_full -y --execution-timeout=0
但是我执行最后一步遇到了错误(Vcpkg is not installed):
我这里是因为使用的不是vs2019版本(2015),所以解决方法是只能去安装vs2019才能正常的去编译。
这里我已经正常安装:
由于网络原因可能安装缓慢或者异常失败,这里建议使用稳定的网络环境,错误后并多次尝试
3,创建ROS快捷终端
为避免每次打开终端都需要加载ROS环境变量,这里我们可以为ROS创建一个终端
右键单击Windows资源管理器文件夹,选择“新建”》“快捷方式”
在路径选项中粘贴以下,注意Visual Studio2019 VsDevCmd.bat的路径和ROS版本需要根据自己实际路径进行更改:
C:WindowsSystem32cmd.exe /k “D:Program Files (x86)Microsoft Visual Studio2019CommunityCommon7ToolsVsDevCmd.bat” -arch=amd64 -host_arch=amd64&& set ChocolateyInstall=c:optchocolatey&& c:optrosmelodicx64setup.bat
将快捷方式命名为“ ROS”
将该快捷方式设置为管理员
右键单击快捷方式,然后选择“属性”。
选择快捷方式选项卡(如果尚未选择)。
按下[高级]按钮
选中用管理员身份运行,并确认
4,测试安装
双击打开刚刚创建的ROS终端,运行roscore,并允许访问:
rocore
再次打开新的终端运行rviz:
rosrun rviz rviz
并且其他命令经测试都是完美支持的:
rostopic list
rostopic echo
到这里ROS Windows安装已经完成
二,ROS Windows使用
1,初始化ROS工作空间
这里我在E盘创建工作空间catkin_ws/src
使用e:命令跳转到e盘
进入src目录并初始化工作空间
cd catkin_wssrc
catkin_init_workspace
2,创建ROS功能包
依旧在src目录下使用catkin_create_pkg进行创建,后跟依赖
catkin_create_pkg ros_test roscpp rviz
3,编译ROS功能包
使用catkin_make命令在catkin_ws目录下进行编译:
4,添加ROS工作空间到环境变量
此时如果使用rosrun 运行我们创建的ros_test功能包是找不到的,因为没有添加到环境变量中:
还记得安装ROS时配置的那个终端的快捷方式的终端吗,
我们在哪里添加了c:optmelodicsetup.bat的环境变量,所以我猜测在那里添加我们自己的工作空间的setup.bat应该是可以的:
C:WindowsSystem32cmd.exe /k “D:Program Files (x86)Microsoft Visual Studio2019CommunityCommon7ToolsVsDevCmd.bat” -arch=amd64 -host_arch=amd64&& set ChocolateyInstall=c:optchocolatey&& c:optrosmelodicx64setup.bat&&E:catkin_wsdevelsetup.bat
在最后使用添加E:catkin_wsdevelsetup.bat,注意使用&&隔开
此时再重新打开终端,运行我们的功能包,就提示可以找到包了:
这里提示的是找不到executable是因为我们还没有创建ros_test功能,但是不再提示找不到ros_test功能包,证明我们已经成功将工作空间添加到环境变量中
5,安装ROS软件包
1. 二进制安装
确定是否存在ROS软件包的二进制发行版。
使用ROS Wiki ,找到二进制发行版名称,然后尝试使用进行安装Chocolatey。
如果成功,那就万事俱备了!
choco install ros-melodic-《package_name》
2. 源码编译安装
如果二进制安装失败就只能使用源码编译安装了
三,ROS Qt功能包模板的编译与使用
1. 编译安装依赖
这里本人主要就是进行ROS Qt可视化程序开发,在前面一系列Ubuntu ROS Qt开发教程中提到如果想要创建Qt Pkg需要使用catkin_create_qt_pkg进行创建功能包,这个命令会创建一个qt的模板功能包,但是想要使用这个命令需要安装qt_create和qt_build:
这里使用Choco命令进行二进制安装:
choco install ros-melodic-qt-create
显然这个包目前不存在Windows二进制版本:
2. 直接编译功能包
因此我们可以直接使用Ubuntu创建的Qt Pkg模板进行开发,拿过来是可以直接进行编译,不做任何更改。或者可以使用我这个ros_qt_demo
2.1 下载功能包
下载此包或者克隆本包到自己的工作空间src目录下
如果需要更改功能包的名称:
使用文本编辑器的查找与替换功能替换cmakelist.txt与package.xml中的ros_qt_demo为自己想要的名称
更改include目录下的文件夹名称为自己的功能包名称
更改src目录下三个cpp文件的的包含目录
2.2 编译
回到功能包根目录,直接执行catkin_make
可以发现ROS下的功能包不用任何更改即可编译成功:
2.3 运行
首先打开个终端运行roscore,再运行当前功能包:
rosrun ros_qt_demo ros_qt_demo
同意权限,运行成功:
可以发现和Ubuntu下的基本相同,测试下功能是否正常
由于我们在本机运行roscore,所以rosmaster和ros ip都填本地回环地址(127.0.0.1),点击连接:
同意权限,连接成功并发布话题:
使用rostopic echo chatter查看话题是否发布:
成功发布!
2.4 打包发布
并且此功能包本人进行动态打包发布,经测试可运行在未安装ROS的Win10上并连接Ubuntu的Master主节点,并发布Chatter话题:
左:Ubuntu 右:win10
release地址: github
到这里ROS Windows开发环境搭建已经完成,在接下来继续探索windows librviz开发。
正片开始
在ROS librviz 人机交互软件开发系列教程中我们实现了Ubuntu端的界面开发。但是很多小伙伴问到能不能在Windows上进行开发,当时回复是不能,主要就是库的依赖问题难解决。但是我想了想ROS是有windows版本的,并且也能运行rviz之类的,既然rviz都可以在windows上运行,就说明是有库可以支持的。于是本人又进行了一番探索与总结。
本篇教程主要是介绍ROS Windows开发环境的搭建,ROS Windows基本的使用。以及在Windows中编译ROS Qt功能包。
实现效果
1. Windows运行rviz
2. ROS Windows QT 功能包编译并运行
3. ROS Windows Qt 功能包release版本
此release版本是本人将动态库进行打包,可以在未安装ROS的win10上直接运行(仅在一台电脑测试,可能会缺少其他动态库),下载后双击压缩包内的ros_qt_demo.exe即可运行。
经测试可运行在未安装ROS的Win10上并连接Ubuntu的Master主节点,并发布Chatter话题:
左:Ubuntu 右:win10
release地址: github
目录
一,安装windows版本的ROS
1,安装Visual Studio
2,安装ROS
3,创建ROS快捷终端
4,测试安装
二,ROS Windows使用
1,初始化ROS工作空间
2,创建ROS功能包
3,编译ROS功能包
4,添加ROS工作空间到环境变量
5,安装ROS软件包
三,ROS Qt功能包模板的编译与使用
一,安装windows版本的ROS
参考资料:ROS wiki
目标Windows ROS 支持kinetic,melodic,noetic,这里主要演示melodic版本的,其他版本大同小异,可参考wiki教程,确保c盘有10g以上的安装空间。
安装时对网络环境要求比较高,这就需要小伙伴们自己去寻找一个稳定的网络环境
1,安装Visual Studio
需要利用vs编译ROS代码,所以需要安装Visual Studio 2019
==这里注意要使用vs2019,ROS wiki给的教程是使用2019,由于我安装的是vs2015导致后面安装出现了一些问题==
注意安装以下组件:
“使用c++的桌面开发”。
“通用Windows平台开发”。
这里安装过程约1-2小时,请耐心等待
2,安装ROS
在“开始”菜单中,找到“ VS 2019 x64本机工具命令提示符”项。
右键单击,选择“更多”,然后选择“以管理员身份运行”
复制以下命令行:
@“%SystemRoot%System32WindowsPowerShellv1.0powershell.exe” -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command “iex ((New-Object System.Net.WebClient).DownloadString(‘https://chocolatey.org/install.ps1’))” && SET “PATH=%PATH%;%ALLUSERSPROFILE%chocolateybin”
将其粘贴到命令窗口中,批准任何提示,完成后,关闭命令提示符以完成安装。
安装Git:
如上所述,重新打开Visual Studio命令窗口。
即使您已将其安装为应用程序,也请使用此处的命令安装Git。
choco upgrade git -y
确认git是否安装成功
git --version
安装ROS
执行如下命令行,安装ROS
mkdir c:optchocolatey
set ChocolateyInstall=c:optchocolatey
choco source add -n=ros-win -s=“https://aka.ms/ros/public” --priority=1
choco upgrade ros-melodic-desktop_full -y --execution-timeout=0
但是我执行最后一步遇到了错误(Vcpkg is not installed):
我这里是因为使用的不是vs2019版本(2015),所以解决方法是只能去安装vs2019才能正常的去编译。
这里我已经正常安装:
由于网络原因可能安装缓慢或者异常失败,这里建议使用稳定的网络环境,错误后并多次尝试
3,创建ROS快捷终端
为避免每次打开终端都需要加载ROS环境变量,这里我们可以为ROS创建一个终端
右键单击Windows资源管理器文件夹,选择“新建”》“快捷方式”
在路径选项中粘贴以下,注意Visual Studio2019 VsDevCmd.bat的路径和ROS版本需要根据自己实际路径进行更改:
C:WindowsSystem32cmd.exe /k “D:Program Files (x86)Microsoft Visual Studio2019CommunityCommon7ToolsVsDevCmd.bat” -arch=amd64 -host_arch=amd64&& set ChocolateyInstall=c:optchocolatey&& c:optrosmelodicx64setup.bat
将快捷方式命名为“ ROS”
将该快捷方式设置为管理员
右键单击快捷方式,然后选择“属性”。
选择快捷方式选项卡(如果尚未选择)。
按下[高级]按钮
选中用管理员身份运行,并确认
4,测试安装
双击打开刚刚创建的ROS终端,运行roscore,并允许访问:
rocore
再次打开新的终端运行rviz:
rosrun rviz rviz
并且其他命令经测试都是完美支持的:
rostopic list
rostopic echo
到这里ROS Windows安装已经完成
二,ROS Windows使用
1,初始化ROS工作空间
这里我在E盘创建工作空间catkin_ws/src
使用e:命令跳转到e盘
进入src目录并初始化工作空间
cd catkin_wssrc
catkin_init_workspace
2,创建ROS功能包
依旧在src目录下使用catkin_create_pkg进行创建,后跟依赖
catkin_create_pkg ros_test roscpp rviz
3,编译ROS功能包
使用catkin_make命令在catkin_ws目录下进行编译:
4,添加ROS工作空间到环境变量
此时如果使用rosrun 运行我们创建的ros_test功能包是找不到的,因为没有添加到环境变量中:
还记得安装ROS时配置的那个终端的快捷方式的终端吗,
我们在哪里添加了c:optmelodicsetup.bat的环境变量,所以我猜测在那里添加我们自己的工作空间的setup.bat应该是可以的:
C:WindowsSystem32cmd.exe /k “D:Program Files (x86)Microsoft Visual Studio2019CommunityCommon7ToolsVsDevCmd.bat” -arch=amd64 -host_arch=amd64&& set ChocolateyInstall=c:optchocolatey&& c:optrosmelodicx64setup.bat&&E:catkin_wsdevelsetup.bat
在最后使用添加E:catkin_wsdevelsetup.bat,注意使用&&隔开
此时再重新打开终端,运行我们的功能包,就提示可以找到包了:
这里提示的是找不到executable是因为我们还没有创建ros_test功能,但是不再提示找不到ros_test功能包,证明我们已经成功将工作空间添加到环境变量中
5,安装ROS软件包
1. 二进制安装
确定是否存在ROS软件包的二进制发行版。
使用ROS Wiki ,找到二进制发行版名称,然后尝试使用进行安装Chocolatey。
如果成功,那就万事俱备了!
choco install ros-melodic-《package_name》
2. 源码编译安装
如果二进制安装失败就只能使用源码编译安装了
三,ROS Qt功能包模板的编译与使用
1. 编译安装依赖
这里本人主要就是进行ROS Qt可视化程序开发,在前面一系列Ubuntu ROS Qt开发教程中提到如果想要创建Qt Pkg需要使用catkin_create_qt_pkg进行创建功能包,这个命令会创建一个qt的模板功能包,但是想要使用这个命令需要安装qt_create和qt_build:
这里使用Choco命令进行二进制安装:
choco install ros-melodic-qt-create
显然这个包目前不存在Windows二进制版本:
2. 直接编译功能包
因此我们可以直接使用Ubuntu创建的Qt Pkg模板进行开发,拿过来是可以直接进行编译,不做任何更改。或者可以使用我这个ros_qt_demo
2.1 下载功能包
下载此包或者克隆本包到自己的工作空间src目录下
如果需要更改功能包的名称:
使用文本编辑器的查找与替换功能替换cmakelist.txt与package.xml中的ros_qt_demo为自己想要的名称
更改include目录下的文件夹名称为自己的功能包名称
更改src目录下三个cpp文件的的包含目录
2.2 编译
回到功能包根目录,直接执行catkin_make
可以发现ROS下的功能包不用任何更改即可编译成功:
2.3 运行
首先打开个终端运行roscore,再运行当前功能包:
rosrun ros_qt_demo ros_qt_demo
同意权限,运行成功:
可以发现和Ubuntu下的基本相同,测试下功能是否正常
由于我们在本机运行roscore,所以rosmaster和ros ip都填本地回环地址(127.0.0.1),点击连接:
同意权限,连接成功并发布话题:
使用rostopic echo chatter查看话题是否发布:
成功发布!
2.4 打包发布
并且此功能包本人进行动态打包发布,经测试可运行在未安装ROS的Win10上并连接Ubuntu的Master主节点,并发布Chatter话题:
左:Ubuntu 右:win10
release地址: github
到这里ROS Windows开发环境搭建已经完成,在接下来继续探索windows librviz开发。
举报