ROS中利用API创建listener来读取joint_states、关节轨迹中的关机转动角度、速度、加速度信息

(1)这是ROS官网上的最基础的listener程序

#include "ros/ros.h"
#include "std_msgs/String.h"void chatterCallback(const std_msgs::String::ConstPtr& msg)
{ROS_INFO("I heard: [%s]", msg->data.c_str());
}int main(int argc, char **argv)
{ros::init(argc, argv, "listener_wiki_ros");ros::NodeHandle n;ros::Subscriber sub = n.subscribe("chatter", 1000, chatterCallback);ros::spin();return 0;
}

(2)从joint_path_command话题中读取一段轨迹的转动角度、速度、加速度信息

  • joint_path_command话题需要ros与真实机械臂或仿真软件建立通信,才会被发布出来
  • joint_path_command话题是读取关节轨迹中的信息最便捷的话题,其他话题也能实现,但是会有bug
  • joint_states信息中只能读取position的值,直接利用rostopic echo /joint_states打印即可
#include "ros/ros.h"
#include "std_msgs/String.h"
#include "trajectory_msgs/JointTrajectory.h"void Callback(const trajectory_msgs::JointTrajectoryConstPtr& msg)
{float pos[6];float vel[6];float acc[6];int len = msg->points.size();  //一段轨迹有多少个路径点for (int i = 0; i < len; i++) {  //将每个路径点上的加速度信息打印到屏幕for (int j = 0; j < 6; j++) {  pos[j] = msg->points[i].positions[j];vel[j] = msg->points[i].velocities[j];acc[j] = msg->points[i].accelerations[j];if (j == 5)ROS_INFO("pos,%f,%f,%f,%f,%f,%f", pos[0], pos[1], pos[2], pos[3], pos[4], pos[5]);ROS_INFO("vel,%f,%f,%f,%f,%f,%f", vel[0], vel[1], vel[2], vel[3], vel[4], vel[5]);ROS_INFO("acc,%f,%f,%f,%f,%f,%f", acc[0], acc[1], acc[2], acc[3], acc[4], acc[5]);}}
}int main(int argc, char** argv)
{ros::init(argc, argv, "listener"); //listener ros::NodeHandle n;ros::Subscriber sub = n.subscribe("/joint_path_command", 10000, Callback); //ros::spin();return 0;
}
  • 最后将话题添加到编译环境中,最后catkin_make即可运行了
add_executable(listener src/listener.cpp)  //listener既为话题名称,也为api文件名
target_link_libraries(listener ${catkin_LIBRARIES})
add_dependencies(listener beginner_tutorials_generate_messages_cpp) //beginner_tutorials为笔者的文件夹名称,读者根据自己的编译环境来更改。

利用joint_states、joint_path_command 发布关节值、速度、加速度相关推荐

  1. 利用stm32控制步进电机 速度加速度控制

    因为想申请 CSDN 博客认证需要一定的粉丝量,而我写了五年博客才 700 多粉丝,本文开启关注才可阅读全文,很抱歉影响您的阅读体验 利用stm32控制步进电机 尝试用42系步进电机做倒立摆,总结步进 ...

  2. Double S 曲线轨迹规划——不同速度加速度条件下综合

    目前机械臂常用的轨迹曲线主要是S曲线,由于前后两端速度为抛物线形式,整体相对平滑,具有较好的过渡.程序涵盖了混合轨迹,加速轨迹和减速轨迹,通过设置flag和合理的速度加速度输入值获取双S曲线. 参数的 ...

  3. 利用光流提升视频识别的速度和精度

    daijifeng老师的两篇文章,利用光流提升视频识别的速度Deep Feature Flow for Video Recognition,利用光流提高视频的精度Flow-Guided Feature ...

  4. python去除数组缺失值_动态数组的应用,VBA中如何利用动态数组去除重复值的第二讲...

    大家好,我们今日继续讲解VBA代码解决方案的第62讲内容:在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法第二部分.在上一讲中,我们讲了知识点的利用,其一是Filter函数,其二是ReDi ...

  5. 重新查看Play Framework发布的值

    与Play Framework 2.0一起使用发布的值而不定义表单映射,可能不像Play 1.x那样明显,这就是为什么我要编写此快速备忘单. 对于此快速示例,让我们定义以下视图: app / view ...

  6. c++删除数组中重复元素_在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法...

    大家好,我们今日继续讲解VBA数组与字典解决方案第22讲:在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法.如果文本中含有大量的重复值,此时,如果我们要剔除重复值,该怎么办?用VBA的方法 ...

  7. 一、ArcGIS Server篇:利用ArcGIS Server发布动态地图服务

    写在前面的话:本篇博客参考 在WebGIS开发过程中,我们所需要的数据不仅仅来自于ArcGIS online,有时候我们需要发布自己的数据服务,在本篇博客中主要说明一下如何利用ArcGIS Serve ...

  8. 图灵奖得主Geoffrey Hinton最新研究:利用神经网络对有关节三维模型进行估计的方法NASA

    NASA: Neural Articulated Shape Approximation 论文作者: Timothy Jeruzalski, Boyang Deng, Mohammad Norouzi ...

  9. python学习之 利用蒙特卡洛方法计算PI值

    使用环境为python IDLE3.5. #利用蒙特卡洛方法计算PI值 from random import random from math import sqrt from time import ...

最新文章

  1. 有用就存档,没用就删除,当日清理当日的email
  2. Oracle:关于分布式数据库(创建数据库链路,创建触发器)
  3. python 求系数矩阵,关于numpy:python-如何在数据矩阵中使用nans计算相关矩阵
  4. cenos 下的一些常用命令及技巧收集篇
  5. SQL触发器实例讲解
  6. 【九章算法免费讲座第一期】转专业找CS工作的“打狗棒法”
  7. 对弈(nim-k游戏博弈)
  8. 【JEECG技术文档】JEECG online 表单填值规则使用说明
  9. 获取网页上数据(图片、文字、视频)-b
  10. 智能家居火了这么久 何时到我家?
  11. 关于php中的json_encode和json_decode的”\“(反斜杠)的问题
  12. machine learning 之 Neural Network 3
  13. UVA - 1588 Kickdown
  14. Javascript中四舍六入五成双
  15. Windows系统——ATTCK靶场(一)——MSF方式
  16. oracle 获取每周五,oracle如何根据传入的时间参数,得到这个参数所在周的周一至周五的日期和星期数...
  17. 【拆书】《深度工作》教你时间管理
  18. 两本小书的命运 --- 记《Effective STL》和《The Art Of Deception》两本书的出版翻译过程
  19. 流程图讲解_流程图+地图题小作文练习,详细讲解+精选范文!!
  20. java 试题_Java笔试题完整试卷

热门文章

  1. 参加美国大学生数学建模竞赛,为什么通过数模乐园辅助报名?
  2. HIT 软件构造 lab3
  3. tushare获取当天涨停的股票代码
  4. ppt中上下标的快捷键
  5. Python对象的空间边界:独善其身与开放包容
  6. KEIL5软件安装步骤(全图文,全网最详细)
  7. matlab 调试
  8. 推荐工具:微软AppLocale
  9. dwg 转换 java_Java 读取 dwg 转换 dxf
  10. 十个人口稀少地区的顶级域名