2019年11月18日 星期一

apt-get update異常處理

1. 問題描述

系統環境:Ubuntu 18.04.3 LTS

執行apt-get update更新時遇到如下狀況

錯誤訊息:
Err:1 http://security.ubuntu.com/ubuntu bionic-security InRelease
  Could not resolve 'security.ubuntu.com'
Err:2 http://tw.archive.ubuntu.com/ubuntu bionic InRelease               
  Could not resolve 'tw.archive.ubuntu.com'
Err:3 http://packages.ros.org/ros/ubuntu bionic InRelease                
  Could not resolve 'packages.ros.org'
Err:4 http://tw.archive.ubuntu.com/ubuntu bionic-updates InRelease
  Could not resolve 'tw.archive.ubuntu.com'
Err:5 http://tw.archive.ubuntu.com/ubuntu bionic-backports InRelease
  Could not resolve 'tw.archive.ubuntu.com'
Reading package lists... Done
W: Failed to fetch http://tw.archive.ubuntu.com/ubuntu/dists/bionic/InRelease  Could not resolve 'tw.archive.ubuntu.com'
W: Failed to fetch http://tw.archive.ubuntu.com/ubuntu/dists/bionic-updates/InRelease  Could not resolve 'tw.archive.ubuntu.com'
W: Failed to fetch http://tw.archive.ubuntu.com/ubuntu/dists/bionic-backports/InRelease  Could not resolve 'tw.archive.ubuntu.com'
W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/bionic-security/InRelease  Could not resolve 'security.ubuntu.com'
W: Failed to fetch http://packages.ros.org/ros/ubuntu/dists/bionic/InRelease  Could not resolve 'packages.ros.org'
W: Some index files failed to download. They have been ignored, or old ones used instead.


2. 解決方法

Linux Force DHCP client (dhclient) to renew ip address

Linux renew ip command
$ sudo dhclient -r //release ip 釋出IP
$ sudo dhclient //獲取IP


Now obtain fresh IP:
$ sudo dhclient

$ sudo ifdown eth0
$ sudo ifup eth0
$ sudo /etc/init.d/network restart
OR
$ sudo /etc/init.d/networking restart

參考資料


2019年11月15日 星期五

麥輪車開發相關問題

  1. MeOrion 記憶空間不足
  2. 說明:
      MeOrion採用Arduino Uno架構,記憶體空間只有2048 bytes。若是要同時使用Makeblock及ros的函式庫,則會使得超過記憶體空間大小。

    處理方式:
    1. 透過修改ros nodehandle的宣告方式,減少rosarduino使用的publisher及subscriber數量,可以減少使用空間。但測試後仍然還是不夠使用。實際做法可參考此篇部落格 Using rosserial for a ATmega168/Arduino based motorcontroller

    2. 改為使用MeAuriga開發版,此開發版為Arduino 2560的架構,具有flash memory 256 KB。即可同時使用Mackblock及rosarduino函式庫。 

  3. MeAuriga無法與Raspberry PI3 進行連線
  4. 說明:
    1. Raspberry PI3預設將UART串口指定連接至藍芽介面

    2. MeAuriga UART埠為Serial2,但rosarduino預設為Serial

    處理方式
    1. 修改Raspberry PI3 UART設定的路徑,改為連接至UART Serial串口
      可參考此部落格,樹莓派3 串列埠使用 raspberry pi 3B+ uart boot overlay

    2. 修改rosarduino呼叫時,使用的nodehandle預設的UART埠,實際做法如下:

  5. ROS與C# UI連線之後,在使用者沒有操作的情況下,ROS端的callback函式也沒有做動
  6. 說明:
      ros端,Socket.recv 指令會導致系統block,才使得callback函式沒有執行

    處理方式
      在Socket初始化完成之後,加上fcntl函式設定socket參數為O_NONBLOCK,參考如下
      Beej's Guide to Network Programming 正體中文版




apt-get update異常處理

1. 問題描述 系統環境:Ubuntu 18.04.3 LTS 執行apt-get update更新時遇到如下狀況 錯誤訊息: Err:1 http://security.ubuntu.com/ubuntu bionic-security InRe...