機器人編程趣味實踐02-程序(Hello World)
上一節,概述中(機器人編程趣味實踐01-簡要介紹)簡要說明課程包含內容。
互聯網
物聯網
智聯網(機器人)
開篇
這些設備平臺的Hello World,具體有哪些差異呢???
對于如上設備,它的Hello World,就是測心跳,然后發送可在網頁顯示,如何做到的?
起步
先從一段簡單的程序講起吧^_^
#include
using namespace std; //名字空間
int main() //主函數
{
cout<<"終端最簡單的文本顯示"< return 0; } 這個程序適用于手機和電腦,編譯后執行效果如下: 這個程序包含頭文件、名字空間和主函數。 注意,在主函數中只有輸出cout。這是所有代碼學習最本原的基礎,這個程序屬于單機終端顯示,最最簡陋的人機交互,發布的是一個事先預定的消息。 它不屬于 互聯網程序 物聯網程序 機器人程序 思考: 如何實現多臺電腦之間信息交互?(互聯網) 如何實現多臺傳感器設備之間數據共享?(物聯網) 如何實現多臺機器人之間行動協調?(機器人) 提示: 數據或信息(不一定是真實世界反映) 實際環境測量信息 基于環境信息完成任務或改變 人工智能等內容后續以案例形式補充 躍升 單向消息發布: windows電腦發送Hello World給linux電腦,如下圖所示: 左側為windows,右側為linux,此為單向消息傳送。 然后在linux端開啟消息發布,windows端不僅能查看自己發布的消息,也能看到linux發布的消息。 通過這類工具外加一些圖形化皮膚,可以制作局域網聊天工具,當然圖片之類也可傳送。 問題引出! 異步通信 同步通信 兩臺或多臺電腦之間的時間如何同步呢??? 如何實現實時的視頻傳送呢??? Linux端參考程序如下: #include #include #include #include #include "rclcpp/rclcpp.hpp" #include "std_msgs/msg/string.hpp" using namespace std::chrono_literals; class MinimalPublisher : public rclcpp::Node { public: MinimalPublisher() : Node("minimal_publisher"), count_(0) { publisher_ = this->create_publisher timer_ = this->create_wall_timer( 2000ms, std::bind(&MinimalPublisher::timer_callback, this)); } private: void timer_callback() { auto message = std_msgs::msg::String(); message.data = "來自Linux的消息" + std::to_string(count_++); RCLCPP_INFO(this->get_logger(), "Publishing: '%s'", message.data.c_str()); publisher_->publish(message); } rclcpp::TimerBase::SharedPtr timer_; rclcpp::Publisher size_t count_; }; int main(int argc, char * argv[]) { rclcpp::init(argc, argv); rclcpp::spin(std::make_shared rclcpp::shutdown(); return 0; } 對比一下,第一段程序,有很多類似的地方,但是復雜一些。這個案例發布的消息是鍵盤輸入的字符。 回顧本文開始的那個案例,那是一個物聯網消息案例,數據為心跳頻率。 那么機器人程序Hello World如何編寫??? 限于篇幅,預知詳情,參考如下鏈接: https://blog.csdn.net/ZhangRelay/article/details/83789116 總結 程序(Hello World)由單機發展到網絡,表達形式也變得豐富多彩,對處理器和網絡帶寬的要求也顯著提高。 從互聯網的消息交流 到物聯網的現實物體數字化 再到機器人與現實世界交互協作 虛擬和現實融合越來越緊密 這一切都源自與來自數字芯片所發出的: Hello World Hello World Hello World Hello World -End- Linux 機器人
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。