ROS学习

一、ROS开发环境(IDE)

参考ROS官网ROS IDE 及教程eclipse ROS 配置

二、ROS编程

1.Callbacks and Spinning

参考ros wiki  Callbacks and Spinning ,内有 Single-threaded Spinning和 Multi-threaded Spinning。

2.添加第三方库(动态链接库)

编辑CMakeLists.txt文件,添加如下行:

 target_link_libraries(executable_name ${catkin_LIBRARIES} lib_name)
然后将需要使用的第三方库(动态链接库)存储到/usr/lib中,并将该库文件相应的头文件存储在ROS package 中include文件中。

至此可以使用库文件中的函数、类等。

三、MOVEIT

1.moveit_visual_tools

查看wiki链接moveit visual tools.


四、ROS教程

1、ROS URDF模型文件中坐标说明

在gazebo中搭建自己的机械臂模型时,对于模型文件中的坐标系建立规则理解的模糊,导致建立模型失败,故花费了一些时间来深入的了解下URDF文件中模型坐标系的建立规则。有错误之处,烦请指正、交流。

    在gazebo仿真环境中,机械臂模型坐标系有三种:世界坐标系、基坐标系、连杆坐标系、连杆属性坐标系(碰撞坐标系collision、惯量坐标系inertial、视角坐标系visual)、关节坐标系。

注意:在阅读本文前,假定读者已经了解gazebo仿真环境、URDF文件创建以及为使URDF文件能被gazebo成功加载,需要在URDF文件中添加<gazebo>标签等知识。

1.1世界坐标系

    在gazebo仿真环境中,存在一个表示世界的坐标系-世界坐标系,机械臂基座的位置和姿态就是相对其而确定的。

1.2基坐标系

为了固定基座,使其不在gazebo仿真环境中运动,需要固接一个坐标系在基座上-基坐标系,表示基座在仿真环境中的姿态和位置。在gazebo中,会让连杆坐标系和关节坐标系重合,要建立基坐标系(基连杆坐标系),需要建立世界与基座连接的关节坐标系,如下代码所示:

 <link name="world"/>
  <joint name="fixed" type="fixed">
    <parent link="world"/>
    <child link="base_link"/>
    <origin xyz="0 0 0" rpy="0 0 0" />
    <axis xyz="0 0 1" />
  </joint>

然后在URDF文件中添加基座连杆标签<link>,可参考官方链接点击打开链接,来建立自己机械臂的基座。通过gazebo加载URDF文件显示,基座是的初始位姿是直立放置的,如果想要把它平放到地面,可以设置基连杆坐标系(关节坐标系)的姿态朝向,即以上代码中的RPY。那这里就有一个问题,固连于连杆的连杆坐标系如何确定其连杆在gazebo中显示的初始位姿呢?固连于连杆的连杆坐标系在连杆姿态表示上与世界坐标系(大连杆坐标系)之间有什么关系呢?首先可以把世界坐标系表示的世界看作一个大连杆,Gazebo中默认该坐标系表示的大连杆是竖直的,其他连杆的姿态可以通过该世界坐标系的旋转来确定。

1.3连杆坐标系

在这里需要强调的是在Gazebo仿真环境中,连杆坐标系与其相邻的关节坐标系重合。

1.4连杆属性坐标系

这里提到:碰撞坐标系collision、惯量坐标系inertial、视角坐标系visual。关于这部分内容可参看官方链接 点击打开链接。但有几点需要注意:
  1. <visual>标签中的<origin>坐标系原点xyz为可见几何体中心,其坐标系姿态rpy确定了连杆初始加载朝向。其原理与上述一致。
  2. <collision>标签中的<origin>坐标系原点为碰撞几何体中心,其坐标系姿态rpy确定了连杆初始加载朝向。其原理与上述一致。
  3. <inertial>标签中的<origin>坐标系原点为几何体的质心,其坐标系姿态rpy、<mass>和<inertia>标签共同为gazebo物理引擎计算几何体质量分布信息提供依据,以便更好的模拟真实世界中的物体。


  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值