RVO官网代码运行
RVO官网有RVOc++、c#的包,也有实例,按照说明文档运行
https://gamma.cs.unc.edu/RVO2/
RVO-3D运行
打开下载的目录:
目前测试运行正常的是这个包
-
解压并在根目录创建build文件夹 ,在build文件夹中cmake src 生产make文件后make;
-
修改example中cmake文件的链接地址,把rvo库链接到cpp文件中;
-
同上在example中创建builde文件夹,在build文件夹中cmke … 生成make文件后 make;
-
执行RVO可执行文件,生成时间戳和速度值,RVO的名字是上边CMakeLists文件中自己修改的名称 ;
RVO 3D 算法示例,可以修改目标点和智能体个数来调试查看使用方法。
RVO_ROS 运行
在github中找到了rvo_ros 包,在二维空间的避障的仿真:
https://github.com/hanruihua/rvo_ros
效果
把二维库换成三维库
|
把三维库放到工作目录中,修改CMakeList文件,将RVO库的目录修改
修改 nav_rvo.cpp、rvo_node.cpp、set_goals_client.cpp、world_multi_obs.cc文件中的三维部分
记录发生的问题
插件目录
期间有一个问题突然就只能在二维方向上移动而不能在三维方向上移动了,原因是gazebo插件的路径在环境中写了两次,有一次是之前跑的二维的代码,所以系统找插件的时候默认先找到了二维的插件,所以无论三维这块怎么修改,都没有用到三维的插件。
调试
修改找问题的过程中也让我学会了怎么去看输出,怎么看话题,通过对比输出和订阅话题最终把问题锁定在了插件的问题上。
所学
ros通信gazebo仿真都是通过使用cpp文件写插件,写订阅话题发布话题,重定义实现的。