兩個或者多個ros之間的資訊通訊
【必做】
時間同步
sudo apt-
getinstall chrony
1、【問題:】
e: 無法獲得鎖 /var/lib/apt/lists/lock - open (11: 資源暫時不可用)
e: 無法對目錄 /var/lib/apt/lists/ 加鎖
解決:sudo rm /var/lib/apt/lists/lock
2、【知識】
ros分布式多機通訊
ros是一種分布式軟體框架,節點之間通過松耦合的方式進行組合,在很多應用場景下,節點可以執行在不同的計算平台上,通過topic、service進行通訊。但是「一山不容二虎」,ros只允許存在乙個master,在多機系統中master只能執行在乙個機器上,其他機器需要通過 ssh 的方式和master取得聯絡。所以在多級ros系統中需要一些配置。
我們以兩台虛擬計算機為例,介紹分布式多機通訊的配置步驟,其中計算機wlzxzq作為主機執行master,計算機bei作為從機執行節點。
通過ifconfig檢視計算機ip
master計算機wlzxzq:192.168.161.132
從機計算機bei:192.168.161.132
修改~/.bashrc檔案
master計算機wlzxzq:192.168.161.132
# set ros kinetic【以下是3個工作空間】
source /opt/ros/kinetic/setup.bash
source ~/catkin_ws/devel/setup.bash
source ~/ros_tutorials/devel/setup.bash
# set ros alias command
alias cw='cd ~/catkin_ws'
alias cs='cd ~/catkin_ws/src'
alias cm='cd ~/catkin_ws && catkin_make'
# set ros network
export ros_hostname=192.168.161.132
#ros主機ip 如機械人
:11311 可以放開注釋
#pc ip
從機計算機bei:192.168.161.132
# set ros network
export ros_hostname=192.168.161.133
export ros_master_uri=
# set ros alias command
alias cw='cd ~/catkin_ws'
alias cs='cd ~/catkin_ws/src'
alias cm='cd ~/catkin_ws && catkin_make'
source /opt/ros/kinetic/setup.bash
source ~/catkin_ws/devel/setup.bash
測試通訊
a:master計算機wlzxzq:192.168.161.132
b:從機計算機bei:192.168.161.132
重新開啟terminor
a: ping 192.168.161.132
b: ping 192.168.161.133
正常通訊。
①在a中開啟我們的roscore
②在a中使用例程ros_tutorials下面的talk
rosrun roscpp_tutorial talk
③在b中使用例程listen
rosrun roscpp_tutorial listen
ssh通訊
①master: sudo apt-get
install
openssh-
server ②
從機:
sudo apt-get
install
openssh-
client ③
開啟服務:
sudo service ssh
start
修改配置:sudo gedit /etc/ssh/sshd_config
把配置檔案中的"permitrootlogin without-password"加乙個"#"號注釋掉,再增加一句"permitrootlogin yes",儲存檔案,是為了允許root使用者登入。 ④
兩個視窗之間資訊的傳遞 C
下面有個例子 我要將 form1 中的 textboxinform1 的內容讀到 form2 的 textboxinform2 中 我有兩種方法介紹給大家,隨便看看吧!第一種,先在 from2中新增乙個全域性變數form1msg,然後寫乙個得到from1msg的方法,如下 private strin...
兩個視窗之間資訊的傳遞 C
下面有個例子 我要將 form1 中的 textboxinform1 的內容讀到 form2 的 textboxinform2 中 我有兩種方法介紹給大家,隨便看看吧!第一種,先在 from2中新增乙個全域性變數form1msg,然後寫乙個得到from1msg的方法,如下 csharp view p...
docker乙個宿主機內兩個容器之間的通訊問題
爬坑。今天搞了個docker小demo 在乙個宿主機內建立了三個容器,乙個tomcat 乙個redis 乙個mysql。tomcat裡有乙個springboot專案。訪問的時候怎麼也連不上資料庫。後來才發現兩個容器之前的網路是不互通的。解決方法 在執行容器的時候如果想連線其他容器 在執行的時候加上 ...