1.确保您在C盘中有10GB的可用空间,用于安装ROS系统。
2.下载visual studio 2022
https://visualstudio.microsoft.com/zh-hans/vs/
3.Chocolatey是Windows下的包管理工具,相当于Ubuntu中的apt-get,方便后续安装各种软件包。在“开始”菜单中搜索“VS 2017 的 x64 本机工具命令提示”以管理员身份运行,复制以下命令行,将其粘贴到命令窗口中.
@"%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"
choco upgrade git -y
安装 Git 后,请确保 Git 现在在 Visual Studio 命令窗口中可用。
git --version
输入以下指令:
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
4、创建ROS命令窗口快捷方式
ROS命令窗口相当于Ubuntu系统的终端,在这个命令窗口输入ROS相关的命令,简化ROS在Windows系统下运行的操作。
右击“新建”>“快捷方式”
在输入框中复制粘贴以下内容:
C:\Windows\System32\cmd.exe /k "C:\Program Files (x86)\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64&& set ChocolateyInstall=c:\opt\chocolatey&& c:\opt\ros\melodic\x64\setup.bat
将快捷方式命名为“ROS”,
将该快捷方式设置为默认以管理员身份运行:
(1).右键单击快捷方式并选择"属性"。
(2).按"高级"按钮
(3).选中按钮"以管理员身份运行"。
(4).在"高级属性"对话框中按"确定"。
(5).在"ROS 属性"快捷方式对话框上按"确定"。
5.测试
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key.exe
小海龟顺利跑起来,说明您的ROS系统安装成功!
6.Windows系统中创建ROS工作空间
文件路径可变,但是不在C盘时,例如在D盘,要加一步,输入:D:
mkdir c:\catkin_ws\src
cd c:\catkin_ws\src
catkin_init_workspace
7.Windows系统中编译ROS工作空间
输入以下两条指令,这个时候虽然没有功能包,但是是可以正常编译的。
cd c:\catkin_ws
catkin_make
8.创建功能包
cd c:\catkin_ws\src
catkin_create_pkg learning_topic roscpp rospy std_msgs geometry_msgs turtlesim
9.在learning_topic中的创建一个c++文件,输入以下代码。(有古月居21讲的例程代码,可以直接将learning_topic中的velocity_publisher.cpp文件复制过来。)
如果是新手,不知道这部分代码什么意思可以去看这个视频。古月居21讲
/**
* 该例程将发布turtle1/cmd_vel话题,消息类型geometry_msgs::Twist
*/
#include
#include
int main(int argc, char **argv)
{
// ROS节点初始化
ros::init(argc, argv, "velocity_publisher");
// 创建节点句柄
ros::NodeHandle n;
// 创建一个Publisher,发布名为/turtle1/cmd_vel的topic,消息类型为geometry_msgs::Twist,队列长度10
ros::Publisher turtle_vel_pub = n.advertise("/turtle1/cmd_vel", 10);
// 设置循环的频率
ros::Rate loop_rate(10);
int count = 0;
while (ros::ok())
{
// 初始化geometry_msgs::Twist类型的消息
geometry_msgs::Twist vel_msg;
vel_msg.linear.x = 0.5;
vel_msg.angular.z = 0.2;
// 发布消息
turtle_vel_pub.publish(vel_msg);
ROS_INFO("Publsh turtle velocity command[%0.2f m/s, %0.2f rad/s]",
vel_msg.linear.x, vel_msg.angular.z);
// 按照循环频率延时
loop_rate.sleep();
}
return 0;
}
10.配置CMakeLists.txt中的编译规则
设置需要编译的代码和生成的可执行文件,设置链接库。
这里执行的操作是将以下两句话拷贝到learning_topic目录下的CMakeLists.txt中照片所示的位置。
add_executable(velocity_publisher src/velocity_publisher.cpp)
target_link_libraries(velocity_publisher
${catkin_LIBRARIES}
)
11.再次进行编译
cd c:\catkin_ws
catkin_make
12.在执行程序之前,需要设置坏境变量(刷新作用)
cd devel
setup.bat
13.运行功能包
roscore
再开一个窗口
cd c:\catkin_ws
catkin_make
cd devel
setup.bat
rosrun learning_topic velocity_publisher
13.在linux中,每次执行source devel/setup.bash会很麻烦,一般会将该命令加入到隐藏文件.bashrc文件中,这样就不用每次在终端执行这条指令。
在Windows中,我考虑的解决办法是右击ROS命令窗口快解方式,点击属性,在目标那一栏加入&& c:\catkin_ws\devel\setup.bat,这样可以起到相同的效果。
参考博客:
https://blog.csdn.net/weixin_41802388/article/details/112865672?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164569354216780366528046%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=164569354216780366528046&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-5-112865672.pc_search_result_control_group&utm_term=windows%E4%BD%BF%E7%94%A8ros%E5%86%99cpp%E7%A8%8B%E5%BA%8F&spm=1018.2226.3001.4187https://blog.csdn.net/weixin_41802388/article/details/112976765?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164566004316781685344628%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=164566004316781685344628&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-8-112976765.pc_search_result_cache&utm_term=windows%E5%AE%89%E8%A3%85ros&spm=1018.2226.3001.4187