Franka-ros的使用

需要安装Franka-ros      https://blog.csdn.net/philthinker/article/details/103457758

 

       franka_ros将libfranka集成到ROS和ROS控制。在这里,我们将介绍它的包,并简要介绍如何编写控制器。

       本节中传递给启动文件的所有参数都带有默认值,因此如果使用默认网络地址和ROS名称空间,则可以省略这些参数。确保源命令是用设置脚本从你的工作空间调用的

 

franka_description:

       这个包包含了运动学方面的机器人和末端执行器的描述,关节限制,视觉表面和碰撞空间。碰撞空间是可视化描述的简化版本,用于提高碰撞检查的性能。这些描述基于URDF XML文档中的URDF格式。

franka_gripper:

      这个包针对夹爪进行操作

franka_gripper::MoveAction(width, speed)

 以定义的速度移动到目标宽度

franka_gripper::GraspAction(width, epsilon_inner, epsilon_outer, speed, force)

在给定的速度下,试图以所需的力度抓住所需的宽度,\text{width} - \epsilon_\text{inner} < d < \text{width} + \epsilon_\text{outer},距离需要满足此条件。

可以用

roslaunch franka_gripper franka_gripper.launch robot_ip:=<fci-ip>

运行可执行文件。

franka_hw

       这个包包含了基于libfranka API的ROS控制框架的机器人的硬件。硬件类

franka_hw::FrankaHW

是在这个包中实现的,这个包为控制器提供了以下接口:

 

 要使用ROS控制接口,必须按名称检索资源句柄

 

默认情况下,<arm_id>被设置为" panda "。

franka_hw::FrankaHW

这个类还实现了控制器的启动、停止和切换;

       FrankaHW类还充当FrankaCombinableHW的基类,FrankaCombinableHW是一个硬件类,可以与其他类组合,从一个控制器控制多个机器人FrankaHWFrankaCombinedHW的关键区别是后者只支持转矩控制。 FrankaHW方法是单机器人控制的最优方法。因此我们建议仅在控制多个机器人时使用  FrankaCombinableHW/FrankaCombinedHW类。

 

      唯一可接受的命令接口声明是EffortJointInterface,可以与任何一组仅读接口(FrankaModelInterfaceJointStateInterfaceFrankaStateInterface)组合。所有接口提供的资源句柄都是通过名称声明的,并且遵循与FrankaHW中描述的相同的命名约定。FrankaCombinableHW的每个实例都提供了一组完整的服务和操作接口(请参阅franka_control)。

franka_control

       ROS节点franka_control_nodefranka_combined_control_node是ROS控制的硬件节点,它们根据来自franka_hw的硬件类使用。

       有关基于硬件类加载参数的更多信息,请参考https://github.com/ros-controls/ros_control的官方文档combined_robot_hw::CombinedRobotHW。 

 

franka_visualization

这个包包含连接到机器人并发布机器人和夹具联合状态,以便在RViz中可视化。要运行这个包:

roslaunch franka_visualization franka_visualization.launch robot_ip:=<fci-ip> \
  load_gripper:=<true|false>

franka_example_controllers

       在这个包中,一组通过ROS控制机器人的示例控制器被实现。控制器描述了franka_hw::FrankaHW类所提供的各种接口以及它们的用法。每个示例都附带一个独立的启动文件,用于启动机器人上的控制器并对其进行可视化。

要启动关节阻抗示例,请执行以下命令:

roslaunch franka_example_controllers joint_impedance_example_controller.launch \
  robot_ip:=<fci-ip> load_gripper:=<true|false>

dual_arm_cartesian_impedance_example_controller展示了在基于FrankaCombinedHW的基础上,使用一个实时控制器实现基于阻抗的笛卡尔任务的控制。可以启动示例控制器:

roslaunch franka_example_controllers \
    dual_arm_cartesian_impedance_example_controller.launch \
    robot_id:=<name_of_the_2_arm_setup> \
    robot_ips:=<your_robot_ips_as_a_map> \
    rviz:=<true/false> rqt:=<true/false>

       这个示例假设机器人配置是根据dual_panda_example.urdf.xacro进行的,其中两个Panda机器人被放置在距离1米的盒子顶部。请随意将此机器人描述替换为与您的设置相匹配的描述。rviz选项允许选择是否启动可视化。

franka_msgs

      这个包包含消息、服务和操作类型,这些类型主要使用包franka_hw和franka_control来发布机器人状态或在ROS生态系统中公开libfranka API。有关此包中提供的服务和操作的更多信息,请参阅franka_control。

panda_moveit_config

这个包被转移到 ros_planning repos,更多细节,文档和教程,请查看MoveIt! tutorials website

 

Writing your own controller

......................................................................

 

 

 

 

 

 

 

 

 

 

 

 

 

 


版权声明:本文为weixin_45278916原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。