一直以来,网上都是默认ROS(机器人操作系统)按照到C盘的,不过我的C盘有点小,就打算更改一下,想着把ROS改到D盘。
原有环境说明
由于一直开发软件,因此电脑上面装有VS2017、git和Qt,这样就不用再安装了。
一、安装Chocolatey
1. 在“开始”菜单中搜索“VS 2017 的 x64 本机工具命令提示”,用管理员身份运行
2. 复制以下命令行,将其粘贴到命令窗口中
@"%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"
3. 完成后,允许任何提示。最后关闭命令行
二、按照ROS系统
1. 在“开始”菜单中搜索“VS 2017 的 x64 本机工具命令提示”,用管理员身份运行
2. 输入下面命令
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
其中第二行我在实际安装时进行了修改,因为我的C盘空间不多了,改成了D:\opt\chocolatey,后面还要更改它的环境变量,具体可以百度查找。
然后就是等待,
安装好之后,把安装在C:\opt下面的东西拷贝到D:\opt中,当然你也可以从安装好的其他机器上面拷贝过来这个目录。
接下来就要修改ros中部分环境设置的路径
有如下几个目录,D:\opt\ros\melodic\x64\etc\catkin\profile.d ;
文件有 1.ros_etc_dir.bat、1.ros_package_path.bat、999.vcpkg.bat、999.sdformat.bat、999.graphviz.bat、99.roslisp.sh
D:\opt\ros\melodic\x64\bin ;
这里不一一列举了。
3. 创建ROS命令窗口快捷方式
在输入框内输入
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
其中涉及VS路径,请自行修改,另外就是opt路径,微软官方给的是c盘,我装在d盘了,需要手动修改。
然后将快捷方式命名为 “ROS启动命令”,再将该快捷方式设置为以管理员身份运行。
打开三个“ROS启动命令”快捷方式
输入以下指令
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key.exe
最终效果如下
三、关于编译自己项目的问题
1. 需要注意的是,ros自带的cmake里面有一个查找路径的设置,它编译到exe中了,这一点很不好,也需要修改。
由于我的安装路径是D盘,因此cmake路径在 D:\opt\ros\melodic\x64\Scripts\cmake.exe
用二进制查看工具打开这个exe,可以看到红色箭头指示位置的路径。由于这里是写死的,建议各位在把ros安装到其他盘符的时候,只改变盘符,不要改变opt路径名称什么的。否则这里改动会比较麻烦。
如果,不进行更改,则会出现如下错误
build\CMakeFiles\CMakeTmp\CheckIncludeFile.c(1): fatal error C1083: 无法打开包括文件: “pthread.h”: No such file or directory
NMAKE : fatal error U1077: “"D:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64\cl.exe"”: 返回代码“0x2
2. 在编译项目过程中发现,下面目录中有很多.cmake文件需要修改文件中的的路径。
D:\opt\ros\melodic\x64\share\
比如,你用到rviz,那就要进入D:\opt\ros\melodic\x64\share\rviz\cmake\目录下,修改 rvizConfig.cmake文件里面涉及路径的地方,把C改成D(或者对应的盘符)。
可以参看上图的打开文件tab标签显示,我改了一些。
如果不更改是不会编译成功的,通过它的提示你也可以找到需要修改的文件名。如下图。
最终,编译成功!!!!!!
参考及感谢,
1 https://blog.csdn.net/qq_38441692/article/details/107614054
2 https://blog.csdn.net/qq_34062822/article/details/104675428