qt-ros在win10的配置与开发

喜大普奔~~~ros也能跨平台了(只能实现部分功能,更多功能仍待开发)。在此转发一下古月大神和蒋程扬大佬的博客,感兴趣的朋友可以直接去古月论坛留言。
原网址传送门 https://www.guyuehome.com/9842

手动分割线
手动分割线
手动分割线
手动分割线
手动分割线
手动分割线
正片开始

在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本机工具命令提示符”项。
  • 右键单击,选择“更多”,然后选择“以管理员身份运行”

  • 复制以下命令行:
       
         
         
         
         
    1. @"%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"

    将其粘贴到命令窗口中,批准任何提示,完成后,关闭命令提示符以完成安装。

  • 安装Git:
    如上所述,重新打开Visual Studio命令窗口。
    即使您已将其安装为应用程序,也请使用此处的命令安装Git。

       
         
         
         
         
    1. choco upgrade git -y
  • 确认git是否安装成功
    git --version
  • 安装ROS
    • 执行如下命令行,安装ROS
      
            
              
              
              
              
      1. mkdir c:\opt\chocolatey
      2. set ChocolateyInstall=c:\opt\chocolatey
      3. choco source add -n=ros-win -s="https://aka.ms/ros/public" --priority=1
      4. 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版本需要根据自己实际路径进行更改:
       
         
         
         
         
    1. C:\Windows\System32\cmd.exe /k "D:\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”
  • 将该快捷方式设置为管理员
    • 右键单击快捷方式,然后选择“属性”。
    • 选择快捷方式选项卡(如果尚未选择)。
    • 按下[高级]按钮
    • 选中用管理员身份运行,并确认

      4,测试安装

  • 双击打开刚刚创建的ROS终端,运行roscore,并允许访问:
    rocore
  • 再次打开新的终端运行rviz:
    rosrun rviz rviz

    并且其他命令经测试都是完美支持的:

    
        
          
          
          
          
    1. rostopic list
    2. rostopic echo


    到这里ROS Windows安装已经完成

    二,ROS Windows使用

    1,初始化ROS工作空间

    这里我在E盘创建工作空间catkin_ws/src
    使用e:命令跳转到e盘


    进入src目录并初始化工作空间
    cd catkin_ws\src
    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:\opt\melodic\setup.bat的环境变量,所以我猜测在那里添加我们自己的工作空间的setup.bat应该是可以的:

       
         
         
         
         
    1. C:\Windows\System32\cmd.exe /k "D:\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&&E:\catkin_ws\devel\setup.bat

    在最后使用添加E:\catkin_ws\devel\setup.bat,注意使用&&隔开


    此时再重新打开终端,运行我们的功能包,就提示可以找到包了:

    这里提示的是找不到executable是因为我们还没有创建ros_test功能,但是不再提示找不到ros_test功能包,证明我们已经成功将工作空间添加到环境变量中

    5,安装ROS软件包

    1. 二进制安装

    确定是否存在ROS软件包的二进制发行版。
    使用ROS Wiki ,找到二进制发行版名称,然后尝试使用进行安装Chocolatey。
    如果成功,那就万事俱备了!
    choco install ros-melodic-

    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.txtpackage.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开发

                                

标签云

C++

gazebo
Matlab
MoveIt
openCV
Python
ROS
ROS2
ROS史话
rviz
SDF
SLAM
STM32
ubuntu
ubuntu18.04
URDF
webots
单片机
图像处理
图像识别
导航
建模与仿真
建模仿真
恩智浦杯
控制系统
无人机
智能车
智能车竞赛
机器人
机器人学
机器人视觉
机器学习
机器视觉
机械臂
树莓派
水下机器人
硬件电路
神经网络
移动机器人
算法图解
视觉里程计
语音机器人
运动学
运动控制
运动规划

你可能感兴趣的:(其他,其他)