ayujaja
@ayujaja

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

ROSのlaunchファイルが起動できなくなった

解決したいこと

ROSのlaunchファイルがエラーにより起動しなくなった(今までは正常に動作していた).

(経緯)
今まで,ur3eというロボットをROSにより動作させていました.
しかし最近,ログファイルが原因で容量がオーバーし,エラーが発生してしまいました.
その際,容量のほかに,今まで無かった目新しいエラーが同時に発生してしまい困っています.

何か解決方法がわかる方いらっしゃれば,回答していただけると幸いです.
また,分からないことがあれば何でも聞いてください.

発生している問題・エラー

launchファイルを立ち上げるコード

$ roslaunch ur_robot_driver ur3e_bringup.launch robot_ip:=133.91.72.106 limited:=true 
kinematics_config:="${HOME}/my_robot_calibration.yaml" use_tool_communication:=true 
tool_voltage:=24 tool_parity:=0 tool_baud_rate:=115200 tool_stop_bits:=1 
tool_rx_idle_chars:=1.5 tool_tx_idle_chars:=3.5 tool_device_name:=/tmp/ttyUR

エラーメッセージ

... logging to /home/aaa/.ros/log/372370d6-f1b3-11ee-b778-5f3c5669454d/roslaunch-aaa-System-Product-Name-21630.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

Using load_yaml() directly is deprecated. Use xacro.load_yaml() instead.
Use of invalid name(s):  __kinematics 
when evaluating expression '__kinematics['shoulder']['x']'
when instantiating macro: ur3e_robot (/home/aaa/catkin_ws/src/universal_robot/ur_e_description/urdf/ur3e.urdf.xacro)
in file: /home/aaa/catkin_ws/src/universal_robot/ur_e_description/urdf/ur3e_joint_limited_robot.urdf.xacro
RLException: while processing /home/aaa/catkin_ws/src/Universal_Robots_ROS_Driver/ur_robot_driver/launch/ur_common.launch:
while processing /home/aaa/catkin_ws/src/universal_robot/ur_e_description/launch/ur3e_upload.launch:
Invalid <param> tag: Cannot load command parameter [robot_description]: command [['/opt/ros/noetic/lib/xacro/xacro', '/home/aaa/catkin_ws/src/universal_robot/ur_e_description/urdf/ur3e_joint_limited_robot.urdf.xacro', 'transmission_hw_interface:=hardware_interface/PositionJointInterface', 'kinematics_config:=/home/osumi/my_robot_calibration.yaml']] returned with code [2]. 

Param xml is <param if="$(arg limited)" name="robot_description" command="$(find xacro)/xacro '$(find ur_e_description)/urdf/ur3e_joint_limited_robot.urdf.xacro'       transmission_hw_interface:=$(arg transmission_hw_interface)       kinematics_config:=$(arg kinematics_config)"/>
The traceback for the exception was written to the log file

環境

・ubuntu(20.04.6 LTS)
・ROS(noetic)
・ロボット(ur3e)

自分で試したこと

エラーメッセージにもある通り,roscleanにより容量問題は解決した.
また,ログを消したのがまずかったのかと考えたが,消す前から同じエラーが表示されていたので可能性は低い.

疑問点

・エラーが初めて出るまで,3年ほど同じコードで動いていた.
・エラーメッセージには,ur3e_joint_limited_robot.urdf.xacroファイル内でur3e.urdf.xacroのファイルを実行中に,プロパティ名に問題がある(ダブルアンダースコアから始めることはできない. 例 __kinematics)といった趣旨のことが書かれているが,エラーが起きるまでにこのファイルはいじっていない.
・もしかしたら,見てないうちに何かのアップデートがはいり,それが悪さしてエラーをはいているのかも??

追記

現在は,エラーメッセージにあるプロパティ名をすべて変えるような方法でエラー解消を試みていますが,同じような現象になったことがある方や,何か解決方法を知っている方いればアドバイスお願いします.

0

1Answer

2021年からダブルアンダースコアはエラーとなっているようですが・・・

Throw when attempting to declare a property starting with double underscore (#286)

1Like

Comments

  1. @ayujaja

    Questioner

    返信遅くなり申し訳ありません。

    そうだったのですね。勉強になりました。
    しかし、xacroファイルのプロパティ名にダブルアンダースコアをつけていても今の今まで使えていた理由や、コードが急に使えなくなる理由は何だったのでしょうか?
    不思議ですが、原因が分かってよかったです。

    プロパティ名を書き換えるか、おそらくパッケージに変更が入っていると思うので入れ直してみます。
    本当にありがとうございました。

Your answer might help someone💌