ROS - 发布并且订阅一个 Topic

发布并且订阅一个 Topic

 

官方wiki 说明

http://wiki.ros.org/cn/ROS/Tutorials/WritingPublisherSubscriber(c%2B%2B)

 

 

参考例子

http://blog.csdn.net/weixin_39579805/article/details/78792039

 

详细的写topic 的学习过程

 http://blog.csdn.net/u013453604/article/details/49102957

 

listener 官方说明http://wiki.ros.org/cn/ROS/Tutorials/WritingPublisherSubscriber%28c%2B%2B%29

 

简单的话题发布订阅

http://blog.csdn.net/u013453604/article/details/49102957

 

机械臂关节信息读取,非常好用数组记录信息http://blog.csdn.net/weixin_39579805/article/details/78792039

 

存在问题:

现在已存在rviz 输出的topic,还需要在编写topic 发布的脚本么-- (不要) ?是否可以直接写一个订阅的脚本直接将topic 的数据取出--(可以topic 是唯一的)?

 

编写的订阅topic 的脚本如何与正在运行的 topic 关联起来?直接取名字-- (是的)?

 

目标 topic   /joint_states  中有很多多余的信息,如何将特定的信息取出(对数组里面)?如何做筛选--- 对应的每个关节的position[i]  每个关节的 I 值不一样,只要去对应的就可以?

 

在plan  和play bag 时,采集到的position 信息均无变化。

 

出现问题:(在编译官方的planing 文档时)

/opt/ros/indigo/include/moveit/robot_model/joint_model.h:47:26:fatal error: Eigen/Geometry: 没有那个文件或目录

 

Try adding these lines to yourCmakeLists.txt:

find_package(Eigen REQUIRED)

 

include_directories(SYSTEM${Boost_INCLUDE_DIR} ${EIGEN_INCLUDE_DIRS})

不行 

 6  官方给的motion planner 脚本暂时调不通

存在eigen 问题

eigen 解决办法 https://stackoverflow.com/questions/31882689/eigen3-missing-error-during-ros-installationhttp://blog.csdn.net/u012319493/article/details/78126177

sudo apt install libeigen3-dev

 

CmakeLists.txt

 

find_package(Eigen3 REQUIRED)

 

include_directories(

  ${EIGEN3_INCLUDE_DIR}

  ${EIGEN3_LIBRARIES}

)

paskage 路径中添加FindEigen.cmake 文件

出现新问题

 

 

 

 

做不同数据信息的判断

 

 

 

知识积累:

 

测量发布频率rostopic hz topic-name,带宽rostopic bw topic-name

限制发布频率(这种方法的孔子精度很低,而且频率会一直递增) rosrun topic_tools throttle messages <intopic><msgs_per_sec> [outtopic]

 ros::Rateloop_rate(10); 在发布端程序中代码

 

改变topic 的频率只能在发布端做到。可以在接收端通过额外的程序设计

 

 

注意点:

节点启动之前必须先打开节点管理器    roscore

每次执行前要先编译

开启listener 之前要先开启talker

 

 

 

设计步骤:

在catkin_ws/src  内创建pkg ,catkin_create_pkg

2   在 pkg 中创建listener.cpp 

创建msg  srv http://wiki.ros.org/cn/ROS/Tutorials/CreatingMsgAndSrv

4 注意设置xml  以及 txt 文件 

$ roscd beginner_tutorials

$ cd ../..

$ catkin_make

$ roscore

$ rosrun beginner_tutorials talker (在新的终端里输入)

$rosrun beginner_tutorials listener(在新的终端里输入)

 以上可以做到简单的订阅和发布。

 

 

 

Bug:

 

1 add_message_files() directory not found:

 

 

2  CMakeError at /opt/ros/indigo/share/catkin/cmake/catkin_package.cmake:219 (message):

 

  catkin_package()DEPENDS on the catkin package 'message_runtime' which must

 

  therefore be listedas a run dependency in the package.xml

 

 

3  [ERROR][1516430864.599498693]: Client [/listener] wants topic /joint_states to havedatatype/md5sum [std_msgs/String/992ce8a1687cec8c8bd883ec73ca41d1

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值