侧边栏壁纸
博主头像
陌上花 博主等级

回首万事皆休

  • 累计撰写 69 篇文章
  • 累计创建 11 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Openrave安装教程

种向日葵的人
2025-01-08 / 0 评论 / 1 点赞 / 33 阅读 / 0 字

Why

  • 因为公司最近需要使用到机器人的ikfast的功能,所以需要使用openrave,本来是有个网站ikfast_generator,但是因为是在日本,所以运行的时候会非常慢,所以这边让我搭建一个。搭建中会涉及到很多问题,以下都会作为记录。此处特别感谢有位Linux老哥在安装中跟我的经验交流。

How

系统

  1. 注意我安装使用的系统是20.4,首先别的版本的或许是可以安装成功的,但是我这边的是一定可以安装成功的版本。
  2. 设置管理员账号密码的命令是:sudo passwd root
  3. 因为后续一定会涉及到github的代码拉取,所以这里一定要配置hosts文件,网上有很多例子,随便找一个,我这里附上我自己的配置。
sudo nano /etc/hosts
# 在hosts文件下假如如下
140.82.112.3 github.com
140.82.112.3 www.github.com

199.232.69.194 github.global.ssl.fastly.net

185.199.108.153 assets-cdn.github.com
185.199.109.153 assets-cdn.github.com
185.199.110.153 assets-cdn.github.com
185.199.111.153 assets-cdn.github.com 
# 重启网络服务
sudo service network-manager restart
# 注意即使是这么配置,有一些时间还是会在连接github的时候会有点卡,这个时候你可以control+c暂停然后重新运行命令就可以了,多试几次。

安装Openrave

  1. 下载openrave-installation
# 解压
unzip openrave-installation-master.zip
cd openrave-installation-master
# 里面有四个脚本 依次执行
./install-dependencies.sh
./install-osg.sh
./install-fcl.sh
./install-openrave.sh
# 以上4个sh成功执行后,在终端输入下面命令测试。
openrave.py --example hanoi
# 你的可能跟我一样一闪而过,但是如果你只是跟我一样为了搭建ikfast,那么可以忽略。能看到输出矩阵就表示成功了。

安装ROS Noetic

  1. 这个是必须装的,不然后续无法检测到。安装步骤为ROS Noetic 的 Ubuntu 安装,但是估计很多人这个网站也打不开或者纯看运气,所以我抄写了一下让自己可以随时看到。
  2. 以下是安装的详细步骤。
# 设置你的 sources.lis 将计算机设置为接受来自 packages.ros.org 的软件。
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
# 设置密钥
sudo apt install curl 
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
# 如果上述的这个链接你发现无论如何也连不上去,建议使用另一台电脑例如win使用curl把这个密钥下载下来,然后拷贝到ubuntu上的形成一个文档例如key.txt,然后这样使用也是可以的
cat key.txt | sudo apt-key add -
# 更新索引
sudo apt update
# 现在选择您要安装的 ROS 数量。
# 桌面完整安装:(推荐):桌面中的所有内容以及 2D/3D 模拟器和 2D/3D 感知包
sudo apt install ros-noetic-desktop-full
# ROS 中还有更多可用的软件包。您始终可以直接安装特定软件包。
sudo apt install ros-noetic-PACKAGE
# 例如
sudo apt install ros-noetic-slam-gmapping
# 环境设置
# 您必须在使用 ROS 的每个 **bash** 终端中获取此脚本
source /opt/ros/noetic/setup.bash

echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
# 用于构建包的依赖项
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
# 初始化 rosdep
# 在你可以使用许多 ROS 工具之前,你需要初始化 rosdep。rosdep 使您能够轻松地为要编译的源代码安装系统依赖项,并且需要在 ROS 中运行一些核心组件。如果尚未安装 rosdep,请执行以下操作
sudo apt install python3-rosdep
# 通过以下内容,您可以初始化 rosdep
sudo rosdep init
rosdep update
# 按照官网上的这个时候应该是没有问题的,但是其实有一个很扯淡的包就是ros-noetic-moveit没有安装上,所以建议这里多两步步骤添加进去,不然后续跑不起来的。
sudo apt-get install ros-noetic-moveit
source /opt/ros/noetic/setup.bash
# ok 完美完成

安装功能包

  1. 安装成功后,继续安装功能包:collada_urdf。命令为:apt install ros-noetic-collada-urdf

开始测试

  1. 用UR5模型,生成C++逆运动学求解源码
# 注意一定要进入到管理员模式,因为后续是基于此的,反正我的是必须要进入才能成功的。
su
mkdir ~p ~/moveit_ws/src
cd ~/moveit_ws/src
catkin_init_workspace
cd ~/moveit_ws
catkin_make
source devel/setup.bash
# catkin_make成功后,需要从github上下载一份测试机器人 我的是直接下载在/root下的
git clone https://github.com/ros-industrial/universal_robot
# 把目录<universal_robot>/ur_description复制到~/moveit_ws/src,再重新catkin_make。
cp -r /root/universal_robot/ur_description/ ~/moveit_ws/src
# 重新make
catkin_make
source devel/setup.bash
  1. 以下是后续正式生成ikfast步骤
# xacro格式转换成urdf格式
cd ~/moveit_ws/src/ur_description/urdf
# 建议先使用这个测试
rosrun xacro xacro --inorder -o ur5.urdf ur5.xacro
# urdf格式转换成dae格式
rosrun collada_urdf urdf_to_collada ur5.urdf ur5.dae
# 设置精度
export IKFAST_PRECISION="5"
rosrun moveit_kinematics round_collada_numbers.py ur5.dae ur5.dae "$IKFAST_PRECISION"
# 查看关节数据
openrave-robot.py ur5.dae --info links
# 查看三维模型
openrave ur5.dae
# 生成IKFast C++文件
# 注意要加“sudo”,sympy模块的路径在“/root/.local/lib/python2.7/site-packages”**(0.7.1),要有管理权限才能读取。没有权限会报找不到sympy模块。
# 需要注意,如果你只运行官方的内容,后面的参数8应该改成9,我这个是公司的主要配置
python `openrave-config --python-dir`/openravepy/_openravepy_/ikfast.py --robot=$(pwd)/ur5.dae --iktype=transform6d --baselink=0 --eelink=8 --savefile=$(pwd)/ikfast61.cpp
# 生成的文件就在当前文件夹下哦
# 注意,这个ikfast.py的路径是在:/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_0_53/ikfast.py,如果你使用的dae文件没有加路径前缀的话需要将这个dar拷贝到这个文件夹下面哦,不然会说找不到文件的。
  1. 上面生成ikfast C++源码的时候,用到了openravepy模块,其安装路径为:/usr/local/lib/python2.7/dist-packages/openravepy。查看ikfast.py参数:sudo python openrave-config --python-dir/openravepy/_openravepy_/ikfast.py --help
  2. 使用ikfast61.cpp求逆解:暂时没到这一步,后续补充。

Tips

1
博主关闭了所有页面的评论