Moveit 初次接触

前言

对moveit的使用进行简单的记录, 可能是对于用其他人已创建好的模型的使用的最快方法;

moveit leaning

起初在github项目中看到的这个,于是就自己尝试复现一下作者的操作,首先,搞定moveit配置环境(根据自己版本去替换,笔者自己用的是noetic)

sudo apt-get install ros-noetic-moveit

进入ROS工程的存放地址, 并下载源码

cd ~/catkin_ws/src
git clone https://github.com/myyerrol/learning_moveit.git
cd ..
rosdep install -y --from-paths src --ignore-src --rosdistro noetic # 这个可能因为墙的原因无法正常执行
cd ~/catkin_ws/src/learning_moveit
./setup.sh

需要注意的是,此项目是基于kinetic建立的,因此需要将原项目中的kinetic全部替换成noetic, 这个比较简单,可以通过vim来查询含有这个关键词的位置,直接替换即可,参考指令如下

vim ~/catkin_ws/src/
:vimgrep /kinetic/noetic/gj **

找到后替换即可,但是到编译的时候会报错,报错信息如下

error: static assertion failed: YOU_PREFORMED_AN_INVALID_TRANSFORMATION_CONVERSION

这个是因为Eigen库更新时API的迁移问题,类似的采用vim查找关键词Affine3d, 替换成Isometry3d即可,如下图所示,为查找出来的两个地方

接下来进行编译

cd ~/catkin_ws
catkin_make

编译成功,结果如下所示

接下来根据作者的给出的操作进行,不过最后没法显示出机器人,结果如下

毕竟是五年前的东西,可以采用比较新的版本去搞,所以就没接着研究下去了,感觉是一个很好的开始,花了我半天的时间才编译通过,有一点小小的惊喜,哈哈哈~

moveit tutorials

这部分则是 moveit 官网给出来的教程了,通过他们的教程,可以真实的创建一些机器人,把目前跑通了的给记录下来(Ubuntu 系统中), 这里假设之前已进行好相关的配置,比如在zshrc中加入了source ~/catkin_ws/devel/setup.zsh等等, 官方界面如下所示

环境配置

相关依赖安装

由于自己已经安装好了 noetic 和 moveit, 所以只需要安装下面的即可

sudo apt install python3-catkin-tools

示例代码下载

cd ~/catkin_ws/src/
git clone https://github.com/ros-planning/moveit_tutorials.git -b master
git clone https://github.com/ros-planning/panda_moveit_config.git -b noetic-devel

构建cakin 工作空间

cd ~/catkin_ws/src
rosdep install -y --from-paths . --ignore-src --rosdistro noetic
sudo sh -c 'echo "deb http://packages.ros.org/ros-testing/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt update

在 RViz 中运行

开启示例

roslaunch panda_moveit_config demo.launch rviz_tutorial:=true

可以看到一个空的界面,如下所示

添加运动规划插件

然后选中运动规划的插件

确定后得到的结果如图所示

现在可以手动拖动末端,进行相关的规划了,如下所示

界面中还提供了很多丰富的选项,这里就不一一列举了,建议去官网浏览一遍;

参考

[1]. moveit 官方教程

CMakeLists Eigen FCPX GNU Gazebo Git Interest KDL Life Linux Matrix ODE ROS Ros UML Ubuntu VcXsrv algorithm algorithms axis-angle bode calibration chrome control cpp data_struct dots figure gdb latex launch life linux mac math matlab memory motor moveit operator optimal algorithm python robot robotics ros ros2 rtb simulation stl thread tools twist urdf velocity vim web work wsl
知识共享许可协议