一、论文介绍
论文题目:《Dynamic Movement Primitives: Volumetric Obstacle Avoidance Using Dynamic Potential Functions》,Journal of Intelligent & Robotic Systems
该论文在2019年ICRA《Dynamic Movement Primitives: Volumetric Obstacle Avoidance》上进行了改进。
论文作者:Michele Ginesi,Daniele Meli,Andrea Roberti,Nicola Sansonetto,Paolo Fiorini
一作为:Michele Ginesi,意大利University of Verona博士,期间发表了多篇论文,很高产,其导师为Paolo Fiorini,早年发了多篇IJRR,2009年获IEEE Fellow。
Michele Ginesi博士论文《Learning of Surgical Gestures for Robotic Minimally Invasive Surgery using Dynamic Movement Primitives and Latent Variable Models》
系统:Windows 11
代码链接:
作者个人网站:https://sites.google.com/view/michele-ginesi/home?authuser=0
DMP避障代码:https://github.com/mginesi/dmp_vol_obst
个人代码路径:E:\manipulator_programming\DMP code\dmp_vol_obst-master
二、程序复现
1.下载作者的python项目包及环境配置
a.下载作者的python项目包
进入https://github.com/mginesi/dmp_vol_obst网站,下载压缩文件,另存到E:\manipulator_programming\DMP code文件夹,并解压
a.创建运行dmp_vol_obst
包的conda环境
# windows系统左下角搜索Anaconda Prompt,创建名为DmpVolObst的python3.6的conda环境
conda create -n DmpVolObst python=3.6
# 激活conda环境
conda activate DmpVolObst
# 进入到D盘存放代码的文件夹
E:
cd E:\manipulator_programming\DMP code\dmp_vol_obst-master
# 安装依赖
pip3 install .
小技巧:pip3 install .
就是安装当前目录下setup.py提到的功能包,比如numpy、matplotlib等等,pip3 install .
的具体解释及用法可查阅我的另外一篇CSDN pip3 install .和pip install .的用法以及在Windows环境下,如何通过命令行cd到D盘
至此,运行避障DMP代码的前期准备工作均已完成,执行命令
conda env list
可查看当前的conda环境列表,进入某个conda环境后,执行命令
conda list
可查看当前conda环境下,安装的所有功能包,如下图所示
2.运行程序
a.启动pycharm,新建项目dmp_vol_obst-master
b. pycharm启动conda环境,具体步骤参见Windows系统配置Anaconda虚拟环境,并安装Numpy、Scipy和Matplotlib等模块方法
c.运行demo程序,看效果,路径为:E:/manipulator_programming/DMP code/dmp_vol_obst-master/demos/ginesi_2020/panda_demo.py
此时,若报错No mudule seaborn字样,则回到Anaconda prompt命令行窗口,在DmpVolObst的conda环境下执行命令pip3 install seaborn
即可
以下是成功运行panda_demo.py的结果
三、遇到的bug
因作者把2019年的ICRA及2021年Journal of Intelligent & Robotic Systems期刊上的代码放到一起了,所以当运行ginesi_2019里的one_obstacle.py时,报如下错:
解决办法:将one_obstacle.py中的代码from dmp import dmp_cartesian
修改为from dmp import dmp as dmp_cartesian
即可解决,效果如下:
运行程序E:/manipulator_programming/DMP code/dmp_vol_obst-master/demos/ginesi_2019/two_obstacles.py:结果如下:
运行程序E:/manipulator_programming/DMP code/dmp_vol_obst-master/demos/ginesi_2019/synthetic_test.py:结果如下:
四、未解决的问题
程序E:/manipulator_programming/DMP code/dmp_vol_obst-master/demos/ginesi_2019/point_cloud_test.py运行不通过,报错ModuleNotFoundError: No module named ‘dmp.dmp_cartesian’