gazebo里通過節(jié)點(diǎn)發(fā)布topic讓關(guān)節(jié)轉(zhuǎn)動(dòng)實(shí)現(xiàn)詳解
通過終端是這樣發(fā)送得
rostopic pub -1 /swivel/swiveljoint1_position_controller/command std_msgs/Float64 "data: 1.5"
發(fā)布得消息類型是 std_msgs/Float64
這個(gè)應(yīng)該發(fā)布得topic得名稱 /swivel/swiveljoint1_position_controller/command
實(shí)驗(yàn)一下

通過啟動(dòng)后查看活躍得topic 發(fā)現(xiàn)了此topic 但是現(xiàn)在有發(fā)布得地方,應(yīng)該是有訂閱的地方所以此時(shí)該topic 活躍

是對(duì)應(yīng)得
創(chuàng)建功能包
$ catkin_create_pkg swivel_controller_cmd_publisher roscpp std_msgs
依賴 std_msgs 因?yàn)樾枰l(fā)布std_msgs/Float64 類型得數(shù)據(jù)
寫發(fā)布功能得cpp
#include <ros/ros.h>
#include "std_msgs/Float64.h" //要發(fā)布該類型得數(shù)據(jù) 需要包含該類型文件
int main(int argc, char **argv)
{
ros::init(argc,argv,"swivel_gimbal_controller_cmd_publisher");
ros::NodeHandle nh ; //實(shí)例化句柄,初始化node
std_msgs::Float64 msg; //創(chuàng)建該類型消息
msg.data = 0.1; // 初始化消息
// 聲明發(fā)布句柄 <std_msgs::Float64> 消息類型
// "/swivel/swiveljoint1_position_controller/command" 模板名稱
// 數(shù)據(jù)緩存大小
ros::Publisher pub = nh.advertise<std_msgs::Float64>( "/swivel/swiveljoint1_position_controller/command", 1);
ros::Rate loop_rate(10);//定義發(fā)布的頻率,1HZ
while (ros::ok())
{
msg.data = (msg.data)+0.1;
pub.publish(msg); //發(fā)布消息
loop_rate.sleep();//根據(jù)前面的定義的loop_rate
}
return 0;
}
修改CMakeLists.txt
其中 swivel_gimbal_controller_cmd_publisher 是節(jié)點(diǎn)名字
include_directories(
include
${catkin_INCLUDE_DIRS}
)
add_executable(swivel_gimbal_controller_cmd_publisher src/swivel_controller_cmd_publisher.cpp ) #生成可執(zhí)行文件 swivel_gimbal_controller_cmd_publisher 節(jié)點(diǎn)的名字
add_dependencies(swivel_gimbal_controller_cmd_publisher mastering_ros_demo_pkg_generate_messages_cpp) #必須添加add_dependencies,否則找不到自定義的msg產(chǎn)生的頭文件
target_link_libraries(swivel_gimbal_controller_cmd_publisher ${catkin_LIBRARIES})
執(zhí)行
roscore
rosrun swivel_controller_cmd_publisher swivel_gimbal_controller_cmd_publisher
查看
rostopic echo /swivel/swiveljoint1_position_controller/command
數(shù)值按代碼進(jìn)行自增0.1變化
與系統(tǒng)聯(lián)調(diào)
結(jié)果: 按之前方式啟動(dòng)整個(gè)系統(tǒng)
在啟動(dòng)發(fā)布消息得節(jié)點(diǎn)
云臺(tái)轉(zhuǎn)動(dòng)了
但是會(huì)在敲下回車后延時(shí)1-2秒,延時(shí) rostopic echo 也沒有信息打印說明還沒發(fā)布 可能是節(jié)點(diǎn)啟動(dòng)得延時(shí) ,并不是執(zhí)行器延時(shí)
實(shí)驗(yàn)成功!
以上就是gazebo里通過節(jié)點(diǎn)發(fā)布topic讓關(guān)節(jié)轉(zhuǎn)動(dòng)實(shí)現(xiàn)詳解的詳細(xì)內(nèi)容,更多關(guān)于gazebo發(fā)布topic節(jié)點(diǎn)轉(zhuǎn)動(dòng)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
select函數(shù)實(shí)現(xiàn)高性能IO多路訪問的關(guān)鍵示例深入解析
這篇文章主要為大家介紹了select函數(shù)實(shí)現(xiàn)高性能IO多路訪問的關(guān)鍵示例深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
C++實(shí)現(xiàn)水仙花數(shù)判斷實(shí)例
大家好,本篇文章主要講的是C++實(shí)現(xiàn)水仙花數(shù)判斷實(shí)例,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2022-01-01
MFC對(duì)話框中實(shí)現(xiàn)走馬燈效果
這篇文章主要為大家詳細(xì)介紹了MFC對(duì)話框中實(shí)現(xiàn)走馬燈效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-05-05
關(guān)于統(tǒng)計(jì)數(shù)字問題的算法
本文介紹了統(tǒng)計(jì)數(shù)字問題的算法,計(jì)算出書的全部頁(yè)碼中分別用到多少次數(shù)字0,1,2,3,.....9,并有每一步的解題思路,需要的朋友可以參考下2015-08-08
編譯錯(cuò)誤error: stray ‘\343’in program的解決方法
以下是對(duì)編譯錯(cuò)誤error: stray ‘\343’in program的解決方法進(jìn)行了詳細(xì)的分析介紹,如遇此問題的朋友們可以過來參考下2013-07-07
Qt帶參數(shù)的信號(hào)和槽函數(shù)舉例詳解
信號(hào)槽的設(shè)計(jì)旨在實(shí)現(xiàn)控件和處理邏輯的解耦合,但在實(shí)際開發(fā)中,一對(duì)一的關(guān)系更為常見,這篇文章主要介紹了Qt帶參數(shù)的信號(hào)和槽函數(shù)的相關(guān)資料,需要的朋友可以參考下2025-03-03

