ROS系统 用Python或C++实现发布者Publisher
話題編程流程
- 創建發布者
- 創建訂閱者
- 添加編譯選項
- 運行可執行程序
首先需要創建一個工作空間,然后再創建功能包
創建工作空間步驟:https://blog.csdn.net/qq_44989881/article/details/118566679
創建功能包
catkin_create_pkg learning_topic roscpp rospy std_msgs geometry_msgs turtlesim
注:在創建一個新的功能包時,需要刪除其它功能包,否則以下步驟有些指令無法執行。
例如
在剛創建的 learning_topic 目錄中的src文件夾下創建一個 cpp文件
如何實現一個發布者
- 初始化ROS節點。
- 向 ROS Master注冊節點信息,包括發布的話題名和話題中的消息類型。
- 創建消息數據。
- 按照一定頻率循環發布消息 。
在 velocity_publisher.cpp 文件中寫入以下代碼。
以下代碼的功能:為發布turtle1/cmd_vel話題,消息類型geometry_msgs::Twist
在CMakeLists.txt中添加以下代碼:
add_executable(velocity_publisher src/velocity_publisher.cpp) target_link_libraries(velocity_publisher ${catkin_LIBRARIES})- add_executable:通過指定的源文件列表構建出可執行目標文件。
- target_link_libraries:該指令的作用為將目標文件與庫文件進行鏈接。
編譯工作空間
catkin_make設置環境變量,讓系統能夠找到該工作空間
source devel/setup.bash檢查環境變量
echo $ROS_PACKAGE_PATH啟動ROS Master
roscore啟動小海龜仿真器
rosrun turtlesim turtlesim_node啟動自定義的海龜控制節點
rosrun learning_topic velocity_publisher注意:rosrun是運行一個單獨節點的命令,如果要運行多個節點,則需要使用多次rosrun命令。
用Python創建發布者步驟:
cd ~/catkin_ws/src/learning_topic創建 scripts 文件夾
mkdir scripts cd scripts創建 velocity_publisher.py Python文件
touch velocity_publisher.py
注意:需要將Python設置為可執行文件。
用Python創建發布者代碼:
以下代碼的功能:為發布turtle1/cmd_vel話題,消息類型geometry_msgs::Twist
Python代碼不需要重新編譯,可以直接執行。
rosrun learning_topic velocity_publisher.py提示:
關于設置環境變量,可以在 .bashrc 文件中配置,在Home文件夾下,按下快捷鍵 Ctrl + H,可以顯示隱藏文件,找到 .bashrc 文件,并打開。
在.bashrc中的最后一行添加以下代碼,然后保存。
source /home/vvcat/catkin_ws/devel/setup.bash
這樣設置的好處是每次運行程序都不用在 執行 source devel/setup.bash 來設置環境變量,僅現當前創建的工作空間,如果創建其它工作空間,需要再次配置 .bashrc。
總結
以上是生活随笔為你收集整理的ROS系统 用Python或C++实现发布者Publisher的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ROS系统 创建工作空间与功能包
- 下一篇: ROS系统 C++或Python实现订阅