目录
1. 引言
最近读机器人相关开源项目代码时遇到了iit-rtb这样一个库,在网上寻找了半天没有什么线索,几经周折才发现这是一个与机器人运动学及动力学源代码自动生成工具RobCoGen相关的一个库。
RobCoGen官网可以参考https://robcogenteam.bitbucket.io/index.html。这是一个很厉害的库,只要输入机器人的模型文件,这个库能够帮助你生成机器人的运动学及动力学代码!最厉害的是它是基于一本神书实现的,这本书叫做:Rigid Body Dynamics Algorithm,作者是Roy Featherstone!这本书作者曾经拜读过,只是水平不够,没能理解其中的原理,以后有机会必定好好研究一下。
2. 代码生成过程
2.1 RobCoGen下载
RobCoGen官网可以下载到源码和二进制包,建议如果只是使用的话直接下载二进制包就可以了。下图所示是官网下载二进制包的位置。
需要注意的是RobCoGen主要是基于Java实现的。因此需要配置一下Java的环境,这里比较推荐jdk-8版本。更高的版本可能导致一些警告。jdk-8的配置过程可以参考前面的1. Eclipse配置ROS开发环境。
2.2 机器人源码生成命令
官网同时给出了非常详细的机器人运动学及动力学代码生成过程,其实非常容易,只需要以下简单步骤:
unzip robcogen-0.5.2.zip
cd robcogen-0.5.2/exe/
./robcogen.sh ../sample/fancy/model/fancy.kindsl # launches the program
# you may now input 1, 4, and 28 to exit
ls -l /tmp/gen/cpp/ # check the generated C++
2.3 模型文件获取
需要注意的是RobCoGen直接输入的是机器人的模型文件,但是这个模型文件的类型是".kindsl"。RobCoGen提供了fancy机器人的一个例子,你可以打开模型文件看一下,总体上这个文件并不复杂可以手工编写,但这样做总是容易出错的。
其实网上已经有开源项目帮忙解决了这个问题,你可以参考:https://github.com/leggedrobotics/urdf2robcogen/tree/v1.0,如下图所示,
urdf2robcogen是一个ROS包,编译完成后这个包可以将xacro格式或者urdf格式的机器人模型描述文件转换为".kindsl"文件。
2.4 生成源代码的注意事项
得到模型文件后可以参考RobCoGen官方的fancy机器人示例,将你的模型文件放到RoboCoGen/sample/model/your_robot目录下,同时通过命令行进入到robcogen.sh脚本所在目录并执行前述源码生成指令。注意必须要进入这个目录执行指令才能成功否则会报lib/...不存在等问题。
3. 总结
最近的工作遇到了非常多的挑战,希望自己能不断突破能力边界,获取新的技能,拓宽自己的视野。
这一部分内容作者也是第一次接触,欢迎批评指正。