ROS2 Eloquent Windows下开发环境填坑记录

1、中文windows 10默认的codec并不是unicode utf-8。而colcon工具集严重依赖python3。而python3要求codec是utf-8,因此Windows也得在区域设置里面设置成utf-8(这个功能现在是beta版本)。如下图:

ROS2 Eloquent Windows下开发环境填坑记录_第1张图片

2、一开始以为和linux一样,对某一个单一的package colcon build就好了。结果发现无论build成功失败都没有任何信息反馈。查了半天,原来是微软的编译器信息输出到stdout而不是stderr。所以colcon build必须加入指定信息输出的选项:

colcon build --event-handlers console_cohesion+

3、rviz2会找不到package://packagename/meshes/abc.dae而报错:原因是rviz2调用ogre调用的resource_retriever有问题。resource_retriever的包里面包含libcurl_vendor,libcurl_vendor里面的CMakeList.txt对于windows有些bug,具体的bug请参阅:resource_retriever包的bug

解决的办法是把eloquent源代码里面的resource_retriever代码copy出来,按照上面链接修改libcurl_vendor里面的CMakeList.txt和libcurl_vendor-extras.cmake.in文件。另外,在libcurl_vendor的CMakeList.txt里面,它会先找一下有没有已经存在的libcurl,没有才会build包里面的libcurl。所以我们得把libcurl_vendor主程序里面的find_package(CURL QUIET)注释掉,保证colcon会重新build。然后重新build resource_retriever。最后把install\libcurl_vendor\opt\libcurl_vendor里面所有的目录copy到你的eloquent安装位置。

 

假设你安装eloquent在c:\ros2,那么上述的目标位置就在:c:\ros2\opt\libcurl_vendor

内容包括下面的目录:bin Cmake include lib

 

解决完rviz2和基本的ros2运行就好了,Windows环境只是用于监控,真正运行还得在linux上面。

你可能感兴趣的:(ROS2)