IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 话题控制robotiq机械爪 -> 正文阅读

[人工智能]话题控制robotiq机械爪

话题控制robotiq机械爪

     在机械臂进行自主抓取时,需要机械臂到达目标位置时,机械爪能够自动执行动作。因此需要在逻辑中加入话题控制机械爪。

机械爪控制话题

在运行了机械爪的控制话题之后,我们使用rostopic list来寻找控制机械爪的话题:

Robotiq2FGripperRobotOutput

同时,我们在robotiq_2f_gripper_control中查看msg消息类型:

uint8 rACT
uint8 rGTO
uint8 rATR
uint8 rPR
uint8 rSP
uint8 rFR

我们调用的头文件应该为:

 #include<robotiq_2f_gripper_control/Robotiq2FGripper_robot_output.h>

C++程序编写

在编写程序时,只需要调用相关的控制消息,并且按照机械爪的消息类型来发布相关的数据就可以控制机械爪的开合。

 #include<ros/ros.h>
 #include<robotiq_2f_gripper_control/Robotiq2FGripper_robot_output.h>
 
 
 int main(int argc, char **argv)
 {
       ros::init(argc, argv, "robotiq");
      ros::NodeHandle n;
       ros::Publisher pub = n.advertise<robotiq_2f_gripper_control::Robotiq2FGripper_robot_output>("/Robotiq2FGripperRobotOutput",10);

           ros::Rate  loop_rate(1);

               int count = 0;
               while (ros::ok())
    {
        // 初始化learning_topic::Person类型的消息
    	robotiq_2f_gripper_control::Robotiq2FGripper_robot_output Robotiq2FGripperRobotOutput;
Robotiq2FGripperRobotOutput.rACT=1;
Robotiq2FGripperRobotOutput.rGTO=1;
Robotiq2FGripperRobotOutput.rATR=0;
Robotiq2FGripperRobotOutput.rPR=0;
Robotiq2FGripperRobotOutput. rSP=255;
Robotiq2FGripperRobotOutput.rFR=150;

        // 发布消息
		pub.publish(Robotiq2FGripperRobotOutput);

       	ROS_INFO("Publish Robotiq2FGripper_robot_output Info: rACT:%d  rGTO:%d  rATR:%d rPR:%d rSP:%d rFR:%d", 
				  Robotiq2FGripperRobotOutput.rACT,Robotiq2FGripperRobotOutput.rGTO, Robotiq2FGripperRobotOutput.rATR,Robotiq2FGripperRobotOutput.rPR,Robotiq2FGripperRobotOutput. rSP,Robotiq2FGripperRobotOutput.rFR);

        // 按照循环频率延时
        loop_rate.sleep();
    }

    return 0;

 }

一般情况下,只需要改变rPR的值就可以控制开合,0值时机械爪打开,255值时机械爪闭合,可以选择中间的数值来满足我们的需求。

##配置依赖

在编写完成C++程序后,我们需要配置cmakelists文件和package.xml文件来编译:

find_package(catkin REQUIRED COMPONENTS
  roscpp
  rospy
  std_msgs
  message_generation
)
# 需要加入 message_generation,必须有 std_msgs
## 配置 msg 源文件
add_message_files(
  FILES
  Person.msg
)
# 生成消息时依赖于 std_msgs
generate_messages(
  DEPENDENCIES
  std_msgs
)
#执行时依赖
catkin_package(
#  INCLUDE_DIRS include
#  LIBRARIES demo02_talker_listener
  CATKIN_DEPENDS roscpp rospy std_msgs message_runtime
#  DEPENDS system_lib
)

在package.xml中添加下面两句:

  <build_depend>message_generation</build_depend>
  <exec_depend>message_runtime</exec_depend>

这样调用自定义的消息的依赖就完成了,接下来只需要在cmakelists文件中加入C++文件的两个依赖库就可以运行该程序了。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-09-04 17:31:26  更:2021-09-04 17:32:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 16:42:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码