发布并且订阅一个 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
存在问题:
1 现在已存在rviz 输出的topic,还需要在编写topic 发布的脚本么-- (不要) ?是否可以直接写一个订阅的脚本直接将topic 的数据取出--(可以topic 是唯一的)?
2 编写的订阅topic 的脚本如何与正在运行的 topic 关联起来?直接取名字-- (是的)?
3 目标 topic /joint_states 中有很多多余的信息,如何将特定的信息取出(对数组里面)?如何做筛选--- 对应的每个关节的position[i] 每个关节的 I 值不一样,只要去对应的就可以?
4 在plan 和play bag 时,采集到的position 信息均无变化。
5 出现问题:(在编译官方的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
设计步骤:
1 在catkin_ws/src 内创建pkg ,catkin_create_pkg
2 在 pkg 中创建listener.cpp
3 创建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