ZebraDevs / fetch_gazebo

Gazebo simulator for Fetch
104 stars 89 forks source link

[BUG] Arm gets into unusable position when using moveit and moving the torso #94

Open GregoryLeMasurier opened 5 years ago

GregoryLeMasurier commented 5 years ago

Describe the bug The arm gets into an unusable state after controlling it with moveit and then moving the torso. The arm seems to fall down and is able to go through the other parts of the robot. We can not control the arm after the arm gets into this state.

To Reproduce Clone this repo: (https://github.com/GregoryLeMasurier/FetchArmTest)

Launch gazebo with fetch: roslaunch fetchit_challenge main_arena_montreal2019_highlights.launch

Start move group: roslaunch fetch_moveit_config move_group.launch

Move the arm: rosrun test_ws arm_up_node

Move the torso: rosrun test_ws torso_up_node

Try to move the arm while it is stuck in robot: rosrun test_ws arm_up_node

Expected behavior Arm doesn't move or fall after the torso moves.

Video (https://youtu.be/yihiZyimFCI)

catkin workspace (please complete the following information):

umhan35 commented 5 years ago

@RDaneelOlivav this is the issue that I mentioned when you interview us during the competition.

moriarty commented 5 years ago

Thumbs up :+1: for the great bug report!

I'm currently working remotely from my personal laptop, so this may need to wait until next week when I'm back in the office.

RDaneelOlivav commented 5 years ago

@umhan35 I think you are confusing me with Ricardo , my boss, he was the one going to the competition ;). Have you checked the status of the controllers? Does it happen in an empty world or if you only move the arms, without moving the torso?

GregoryLeMasurier commented 5 years ago

@RDaneelOlivav This happens in an empty world, I used: roslaunch fetch_gazebo simulation.launch. It does not happen when we only move the arm. (I have updated the repo in the first post to include another node for moving the arm). I am not sure how to check the status of the controllers. I saw some rostopics for controllers but I didn't find any data that seemed useful for this issue.

moriarty commented 5 years ago

I think @RDaneelOlivav is right... there is this file:

@GregoryLeMasurier it looks like the launch file you’re using calls:

https://github.com/fetchrobotics/fetch_gazebo/blob/gazebo9/fetch_gazebo/launch/include/fetch.launch.xml

But you want to call the one with the _pp

https://github.com/fetchrobotics/fetch_gazebo/blob/gazebo9/fetch_gazebo/launch/include/fetch_pp.launch.xml

The _pp I assume stands for pick & place, as that launch file calls: prepare_simulated_robot_pick_place.py ... but I’m not sure why this isn’t the default as I’d expect if you’re using the Fetch in simulation you always want to wait for the arm controllers.

moriarty commented 5 years ago

Maybe ignore my comment- I’m on my phone and can’t really easily view the diff between the scripts.

GregoryLeMasurier commented 5 years ago

@moriarty I was originally using main_arena_montreal2019_highlights.launch which does call the pick and place version. I also have tried simulation.launch which does use fetch.launch.xml. Both versions have the same issue.

GregoryLeMasurier commented 5 years ago

@moriarty Have you had a chance to look into this yet?

moriarty commented 5 years ago

No sorry - after ICRA I had some catching up to do, was at RoboCup, and missed some days for personal reasons, I'll be away next week too.

I'll assign @erelson

erelson commented 5 years ago

Sorry, I won't be able to dig into this. My experience level with Gazebo is zero, so this isn't something I can productively troubleshoot.

moriarty commented 5 years ago

Okay- I’ll look into it after I get back from Vacation.