YusukeKato
YusukeKato
# What does this implement/fix? checkDataFormat関数を下記のように更新しました。 - ASCII形式のチェック機能を追加 - BinaryでもASCIIでもない形式のチェックも追加 - while文を追加&タイムアウト機能を追加 それ以外にも下記を修正しました。 - Binary形式のチェックを強化 - 不正なデータを読み込んでから正常なデータを読み込むように単体テストを修正 - 必要がなくなったのでhasCompletedFormatCheck()を削除 # Does this close any currently open issues? 下記のissueに対応します。 - https://github.com/rt-net/rt_usb_9axisimu_driver/issues/53...
# 現状の問題点 現在の実装だと9軸IMUのBinaryデータかASCIIデータ以外のデータを取得したときに、whileループが終わらない可能性がある。 該当箇所 ```cpp while (rclcpp::ok() && driver_->hasCompletedFormatCheck() == false) { driver_->checkDataFormat(); } ``` https://github.com/rt-net/rt_usb_9axisimu_driver/blob/ros2-devel/src/rt_usb_9axisimu_driver_component.cpp#L96 原因:checkDataFormat()がBinaryかASCIIを判別するまでループするので、BinaryでもASCIIでもないデータを取得するとループが終わらない。 # 改善案 タイムアウト機能を追加する。 # 代替案 checkDataFormat()を実行する回数をカウントする。 # その他 なし。
# 現状の問題点 RtUsb9axisimuRosDriver::checkDataFormat関数では取得したデータがBinary形式かどうかのチェックは行っているが、ASCII形式かどうかのチェックは直接的には行っていない。 https://github.com/rt-net/rt_usb_9axisimu_driver/blob/ros2-devel/src/rt_usb_9axisimu_driver.cpp#L252 現在のcheckDataFormat関数の実装では取得したデータがBinary形式かどうかチェックして、Binary形式ではない場合はASCII形式だと判断している。 また、取得したデータがASCII形式だと判断されるためにはcheckDataFormat関数が二度実行される必要がある。 取得したデータが「ASCII形式」か「BinaryでもASCIIでもない形式」かの区別もできていなさそう。 # 改善案 RtUsb9axisimuRosDriver::readAsciiData関数で行っているASCII形式チェックをcheckDataFormat関数でも実施すると良さそう。 https://github.com/rt-net/rt_usb_9axisimu_driver/blob/ros2-devel/src/rt_usb_9axisimu_driver.cpp#L183 checkDataFormat関数を一度実行するだけで、Binary形式、ASCII形式、BinaryでもASCIIでもない形式、が判別できると良い。 # 代替案 なし。 # その他 なし。
READMEに従ってUnity Editor 2021.3.0f1をインストールしたところ、Unityプロジェクトを開く際に2021.3.7f1をインストールするように警告が出ました。警告に従って2021.3.7f1をインストールすると無事Unityプロジェクトを開くことができました。 詳細はhakoniwaのDiscussionのほうにも投稿しています。 https://github.com/toppers/hakoniwa/discussions/167
# What does this implement/fix? pick_and_placeサンプルでプランニングに失敗しやすい問題を解決するため、目標の手先位置姿勢の許容範囲を狭めます。 # Does this close any currently open issues? しません。 # How has this been tested? 実機とGazebo環境でプランニングに成功することを確認しました。 # Any other comments? ありません。 # Checklists -...
# What does this implement/fix? 古い記述の修正や記述内容の統一などリファクタリングを行います。 # Does this close any currently open issues? しません。 # How has this been tested? 実機、Gazebo、mock_componentで動作確認しました。 # Any other comments? ありません。 # Checklists -...
# What does this implement/fix? 目標とする手先の位置をlink4からグリッパの中心に変更するために新しくTCPリンクを追加します。 また、TCPリンクをデフォルトとしてサンプルも変更します。 # Does this close any currently open issues? https://github.com/rt-net/crane_plus/issues/80 # How has this been tested? 実機、Gazebo、mock_componentですべてのサンプルが動くことを確認しました。 # Any other comments? 私の環境だけかもしれませんが、実機動作中、controller_managerがあらかじめ設定している100Hzの周期に達していないという警告が出ました。 80Hzに設定するとこの警告が出ないことも確認できました。 使用しているPCに依存する可能性が高そうであるため修正は行っていません。...
# What does this implement/fix? 古い記述の修正や各製品の記述内容の統一などのリファクタリングを行います。 統一内容は https://github.com/rt-net/crane_plus/pull/90 に合わせます。 - コントローラはExecuteProcessではなくNodeで起動 - Nodeの引数の統一 - Ruffによるフォーマット # Does this close any currently open issues? しません。 # How has this been tested?...
# What does this implement/fix? lifecycleのactivate時のセンサからデータが取得できるかのチェックは、元々はreadSensorData()の実行が成功するかどうかチェックしていましたが現在の方法だと正しくIMUセンサが接続されていてもタイミングによって失敗することがあるため、タイムアウト機能を追加して設定した時間内でセンサデータが取得できるかチェックするように変更します。 # Does this close any currently open issues? しません。 # How has this been tested? 下記コマンドを実行してIMUノードのlifecycleがactiveへ遷移できることを確認しました。 ```sh # ターミナル1 ros2 run rt_usb_9axisimu_driver rt_usb_9axisimu_driver #...
# What does this implement/fix? 元々launchファイルではIMUのノードを起動するだけでしたが、IMUのノードを起動してからLifecycleをactiveへ遷移させるようにlaunchファイルを変更します。 # Does this close any currently open issues? すでにclose済みですが、関連のIssueとして https://github.com/rt-net/rt_usb_9axisimu_driver/issues/64 があります。 # How has this been tested? 下記コマンドでlaunchファイルを実行すると、IMUノードのlifecycleがactiveへ遷移して、センサデータトピックが配信されることを実機で確認しました。 ```sh ros2 launch rt_usb_9axisimu_driver rt_usb_9axisimu_driver.launch.py ```...