lbr-stack / lbr_fri_ros2_stack

ROS 2 integration for KUKA LBR IIWA 7/14 and Med 7/14
https://lbr-stack.readthedocs.io/en/latest/lbr_fri_ros2_stack/lbr_fri_ros2_stack/doc/lbr_fri_ros2_stack.html
Apache License 2.0
151 stars 46 forks source link

Missing dependencies #1

Closed Giggus closed 9 months ago

Giggus commented 3 years ago

Controller_spawner is failing because some dependencies are not satisfied when running

"rosdep install --rosdistro melodic --ignore-src --from-paths src"

Fixed by installing ros-melodic-moveit and ros-melodic-joint-trajectory-controller

It might be worth investigating which are the missing packages in the package dependencies rather then installing these two packages which include many others that might not be useful.

anubhav-dogra commented 2 years ago

Can you please help me with the following errors. The simulation is working fine with the melodic, but I am not able to understand the issue with Foxy. Please help to understand what I am missing here Thanks.

[spawner.py-6] [INFO] [1651662207.865197859] [spawner_position_trajectory_controller]: Waiting for /controller_manager services [rviz2-8] Warning: Invalid frame ID "lbr_link_1" passed to canTransform argument source_frame - frame does not exist [rviz2-8] at line 133 in /tmp/binarydeb/ros-foxy-tf2-0.13.11/src/buffer_core.cpp [rviz2-8] Warning: Invalid frame ID "lbr_link_2" passed to canTransform argument source_frame - frame does not exist [rviz2-8] at line 133 in /tmp/binarydeb/ros-foxy-tf2-0.13.11/src/buffer_core.cpp [rviz2-8] Warning: Invalid frame ID "lbr_link_3" passed to canTransform argument source_frame - frame does not exist [rviz2-8] at line 133 in /tmp/binarydeb/ros-foxy-tf2-0.13.11/src/buffer_core.cpp [rviz2-8] Warning: Invalid frame ID "lbr_link_4" passed to canTransform argument source_frame - frame does not exist [rviz2-8] at line 133 in /tmp/binarydeb/ros-foxy-tf2-0.13.11/src/buffer_core.cpp [rviz2-8] Warning: Invalid frame ID "lbr_link_5" passed to canTransform argument source_frame - frame does not exist [rviz2-8] at line 133 in /tmp/binarydeb/ros-foxy-tf2-0.13.11/src/buffer_core.cpp [rviz2-8] Warning: Invalid frame ID "lbr_link_6" passed to canTransform argument source_frame - frame does not exist [rviz2-8] at line 133 in /tmp/binarydeb/ros-foxy-tf2-0.13.11/src/buffer_core.cpp

mhubii commented 2 years ago

Hi and sorry for seeing this so late. This usually happens when the communication to the robot is not setup for some reason

mhubii commented 2 years ago

what realtime priority do you have on your system? The launch file launches the controller with a realtime priority of 99

https://github.com/KCL-BMEIS/lbr_fri_ros2_stack/blob/0d2cc6e2f6bcfbff860fa87ecb87a64520f55181/lbr_bringup/launch/lbr_control.launch.py#L69

If the realtime priority is not set, the communicating thread will not be launched

https://github.com/KCL-BMEIS/lbr_fri_ros2_stack/issues/14

anubhav-dogra commented 2 years ago

Hi, there thank you for the information. I did change the real time priority as mentioned. But I'm still facing the same error. as of now, my arg for simulation is true as, sim:= true

I am using ubuntu on a Virtual machine.. and that should not be a problem I guess (?)

mhubii commented 2 years ago

if you wish to connect to the real robot, you'll have to set sim:=false. Also you'll have to launch the LBRServer application on the SmartPad

anubhav-dogra commented 2 years ago

Yes I'm able to work with the real robot with the current "lbr_fri_ros_stack" in melodic...

I'm trying to workout the same for ros2 stack but I'm stuck with the error mentioned above in my earlier comment. I edited the rtprio in the system, but the error still persists.

"[spawner.py-6] [INFO] [1651662207.865197859] [spawner_position_trajectory_controller]: Waiting for /controller_manager services......."

mhubii commented 2 years ago

have you tried to install dependencies? rosdep install --from-paths src --ignore-src -r -y Sometimes I have encountered that xacro didn't get installed, so I had to do it manually sudo apt install ros-foxy-xacro.

I currently don't have access to a real robot, so it is hard to tell what the issue is and I can't test it

The errors that you receive about the missing transforms are most likely only the result of missing joint states, ie a connection to the robot is not established. That is because the robot_state_publisher https://github.com/KCL-BMEIS/lbr_fri_ros2_stack/blob/9e78f9d2b04fa545a412ff5d31fdc1dc05a3b600/lbr_bringup/launch/lbr_control.launch.py#L72 never receives joint states, which are published through a controller named joint_state_broadcaster https://github.com/KCL-BMEIS/lbr_fri_ros2_stack/blob/9e78f9d2b04fa545a412ff5d31fdc1dc05a3b600/lbr_bringup/launch/lbr_control.launch.py#L82

anubhav-dogra commented 2 years ago

anubhav@ubuntu:~/lbr_fri_ros2_stack_ws$ ros2 launch lbr_bringup lbr_bringup.launch.py model:=med14 sim:=true | grep ERROR [move_group-7] [ERROR] [1654036072.629839378] [moveit.ros.occupancy_map_monitor]: No 3D sensor plugin(s) defined for octomap updates [ERROR] [gzserver-1]: process has died [pid 2632, exit code 255, cmd 'gzserver -s libgazebo_ros_init.so -s libgazebo_ros_factory.so -s libgazebo_ros_force_system.so ']. [spawner.py-6] [ERROR] [1654036082.251245291] [spawner_position_trajectory_controller]: Controller manager not available [spawner.py-5] [ERROR] [1654036082.253981082] [spawner_joint_state_broadcaster]: Controller manager not available [ERROR] [spawner.py-6]: process has died [pid 2644, exit code 1, cmd '/opt/ros/foxy/lib/controller_manager/spawner.py position_trajectory_controller --controller-manager /controller_manager --ros-args']. [ERROR] [spawner.py-5]: process has died [pid 2642, exit code 1, cmd '/opt/ros/foxy/lib/controller_manager/spawner.py joint_state_broadcaster --controller-manager /controller_manager --ros-args']. [move_group-7] [ERROR] [1654036087.953478906] [moveit.simple_controller_manager.follow_joint_trajectory_controller_handle]: Action client not connected: position_trajectory_controller/follow_joint_trajectory

And this is how Rviz windows opens: even if the world frame or lbr_link_0 is selected ... image

gazebo window:

image

mhubii commented 2 years ago

oh okay sorry I misunderstood you. I thought it was working well in simulation for foxy, but it doesn't. Please apologize. What is the error about the Gazebo server? Does just launching Gazebo work? In a terminal write gazebo

mhubii commented 2 years ago

I'll try this later today, as I currently don't have access to a PC. Hopefully I can replicate the issue and find a fix. Thank you for sharing

anubhav-dogra commented 2 years ago

Hey, did you have a chance to look into this problem? :) I was just wondering if this problem is only due to using Ubuntu as in Virtual Machine on Windows. ? I am not very sure because ROS-1 is working fine with the same.

mhubii commented 2 years ago

no sorry, it is on my mind though. What about compiling this on Windows? ROS2 should support that. Only the visibility headers headers would have to be implemented

mhubii commented 2 years ago

hey @anubhav-dogra , did you get to look into this again? I recently tried the system with the newest foxy release and everything worked well. I am also having time to work on this again, so please let me know. Your feedback is much appreciated

Nicolai-98 commented 10 months ago

I seem to be having a similar problem using humble and Ubuntu 22.04. I installed all the dependencies and tried to run the launch file following the ReadMe: Screenshot from 2024-01-11 10-24-07 Gazebo does not open properly(its stuck on "Peparing your world...") and rviz showed an error in the robot model like shown in the pictures from anubhav-dogras earlier comment. I made sure packages like the joint-jrajectory-controller and controller manager are installed.

mhubii commented 10 months ago

hi @Nicolai-98 . Yes this is a very well known issue. The very first launch is somehow extremely slow and doesn't spawn the model.

Here is how to fix:

I think this is some Gazebo related bug. Note after the first launch this will never re-occur. Please let me know if this works. Btw, love your folder name :P

Nicolai-98 commented 9 months ago

Thank you for the quick answer! The folder name might be related to some issues I am experiencing with getting my robot to run properly on humble :D. I tried your fix:

Update: I manged to launch it the way you described it using a docker container. I guess there is some problem with my ros2-humble setup on my machine. Thanks for your help!

mhubii commented 9 months ago

hi @Nicolai-98 , great to hear that worked! The error no transform suggests no model was loaded into Gazebo, hence the robot_state_publisher can't read joint states from joint_state_broadcaster and can't compute transforms.

Would you be happy to share the docker file, maybe create a pull request, I can create a dev-humble-docker branch. That would create a lot of value for many people. If not, no problem!

mhubii commented 9 months ago

Closing this issue for now, as dependencies seem to work well. Opening #149