moveit / moveit2_tutorials

A sphinx-based centralized documentation repo for MoveIt 2
https://moveit.picknik.ai
BSD 3-Clause "New" or "Revised" License
147 stars 191 forks source link

Pandabot won't show until i set export LC_NUMERIC="en_US.UTF-8" #508

Closed MightyMirko closed 9 months ago

MightyMirko commented 2 years ago

Description

After following all tutorials this line ros2 launch moveit2_tutorials demo.launch.py rviz_tutorial:=true won't work as predicted move_group-4] [ERROR] [1662375043.529176769] [moveit_robot_model.robot_model]: Joint 'wheel_left_joint' not found in model 'panda' [move_group-4] [ERROR] [1662375043.529211279] [moveit_robot_model.robot_model]: Joint 'wheel_right_joint' not found in model 'panda' Your environment

ROS Distro: Galactic
OS Version: e.g. Ubuntu 20.04
git clone -b galactic https://github.com/ros-planning/moveit2_tutorials.git --depth 1

Steps to reproduce

Freshly install, ros2 via ros2 tutorial and moveit2 via tutorial - https://moveit.picknik.ai/galactic/doc/tutorials/quickstart_in_rviz/quickstart_in_rviz_tutorial.html#getting-started Expected behaviour

rviz should open with panda robot Backtrace or Console output

Use [gist.github.com](https://github.com/ros-planning/moveit2_tutorials/issues/gist.github.com) to copy-paste the console output or segfault backtrace using gdb.


i need to set

export LC_NUMERIC="en_US.UTF-8"

then it will work

if it is not set one will see this error:

`rviz2-1] [ERROR] [1662547064.760901552] [moveit_background_processing.background_processing]: Exception caught while processing action 'loadRobotModel': parameter 'panda_arm.kinematics_solver_timeout' has invalid type: Wrong parameter type, parameter {panda_arm.kinematics_solver_timeout} is of type {double}, setting it to {string} is not allowed.

`

rhaschke commented 2 years ago

This exception relates to reading yaml or ROS parameters. Probably, locale settings are still not considered there (yet/again). I guess the exception is gone if you switch to en_US? The issue is definitely not related to liburdfdom.

MightyMirko commented 2 years ago

isn't it an issue by having , instead of . in decimal numbers?

rhaschke commented 2 years ago

Yes, locale=de_DE expects a comma instead of a dot due do a bug in parameter parsing. However, it's not a bug related to liburdfdom, which was another well-known issue in the past.

MightyMirko commented 2 years ago

And to answer your question: yes! the exception is gone after setting to en_US

rhaschke commented 2 years ago

I didn't dive into ROS2 parameter access yet, but the MoveIt2 maintainers will easily know how to handle this issue based on the provided info. @JafarAbdi, @tylerjw.

tylerjw commented 9 months ago

This is a known issue with ROS. The instructions for installing ROS (https://docs.ros.org/en/rolling/Installation/Ubuntu-Install-Debians.html#set-locale) include a section on setting your locale for this reason.