概要

ArduinoでROSのトピックを受信して動作をさせたいときに、使うのがrosserialです。

このrosserial_arduinoを用いてArduinoと繋げてROSトピックを投げた際に下記のようなエラーが出る時があります。

Unable to sync with device; possible link problem or link software version mismatch such as hydro rosserial_python with groovy Arduino

 このエラーに関する対処法について解説をします。

チェックリスト

原因はいくつかあるようですので原因ごとに対処法を記載しておきます。

ボーレートは合っているか

メイン端末側

rosrun rosserial_python serial_node.py _port:=/dev/ttyACM0 _baud:=9600

rosserial_pythonを起動する際に、baudというパラメータを設定することができます。これはシリアル通信を行う際のボーレートで、Arduino側でも同じボーレートを指定する必要があります。

Arduino側

ros::NodeHandle nh;
nh.getHardware()->setBaud(9600);
nh.initNode();

 NodeHandleを作った後、setBaudで、メイン端末側と同じボーレートを指定しましょう。

ボーレートは遅くする

ボーレートを遅くすると解決することがありますので、9600など、遅いボーレートで試してみると良いでしょう。

nh.spinOnceの周期を遅くする

特にコードを変更していない場合は、これが原因の可能性が高いです。

void loop() {
  nh.spinOnce();
  delay(30);
}

 Arduinoのloopでnh.spinOnce()をした後にdelayをしているかと思いますが、ここの値を増やすと解決することがあります。

 

Arduino

Related Posts

ブレッドボードに5V/3.3Vの電源をMB102で供給する
ブレッドボードに5V/3.3Vの電源をMB102で供給する
概要 ブレッドボードには電源を流すことに主に用いられる、両脇の赤と青のラインがあります。Arduinoなどのマイコンから5Vや3.3Vの電源を供給することもできますが、色々な用途に使っていると電流が足りなくなってしまったりするので、別...
Read More
積載重量2kg / 4輪駆動小型DCモータ メカナムホイールロボット台車・カーシャーシの組み立てマニュアル
積載重量2kg / 4輪駆動小型DCモータ メカナムホイールロボット台車・カーシャーシの組み立てマニュアル
概要 積載重量2kg / 4輪駆動小型DCモータ メカナムホイールロボット台車・カーシャーシの組み立て方について解説をします。 商品リンクは下記になります。 https://rb-station.com/products/%E7%A9...
Read More
温度・湿度センサーDHT11を使ってArduinoで温度と湿度を計測する
温度・湿度センサーDHT11を使ってArduinoで温度と湿度を計測する
概要 温度と湿度を計測することができるDHT11というセンサーを用いて、Arduinoで温度と湿度を計測する方法について解説をします。 DHT11について   DHT11は、温度と湿度を同時に計測することができるセンサーです。上記はモ...
Read More