heuristicus / spot_ros

ROS driver for controlling Boston Dynamics' Spot robot
https://heuristicus.github.io/spot_ros/
Other
273 stars 141 forks source link

spot trembling gait #60

Closed edomil90 closed 2 years ago

edomil90 commented 2 years ago

Hi,

I am running spot_ros on a jetson nano that is connected via ethernet to the GXP of our Spot. Everything works fine, but when I try to teleoperate spot, either using the interactive marker on rviz, the teleop_twist_keyboard or just publishing on a topic with the command line, spot moves really bad, kind of trembling. On the contrary, when I use the wasd example of the SDK with the same setup, the gate is smooth as it should be. What can be the problem? Maybe the jetson nano is too slow at sending the commands via spot_ros? thanks for helping!

civerachb-cpr commented 2 years ago

What network devices do you have connected to the Jetson? We've noticed in the past that high-bandwidth devices, like a VLP-16, can effectively choke the network connection, causing high latency and this sort of interrupted velocity control.

edomil90 commented 2 years ago

The Nano does not have other devices connected. We replaced the Nano with Jetson AGX and it goes much better, even though some times Spot still makes some weird steps.

Prassi07 commented 2 years ago

I think I had this issue too. One thing that helped me resolve this is by increasing the timeout of the velocity_cmd function in spot_wrapper from 0.125 to 0.5. That instantly fixed this. I do not know why this was happening

heuristicus commented 2 years ago

Perhaps this is something to do with the rate of whatever you are using to publish messages to the cmd_vel topic. If the rate is slower than the velocity_cmd timeout you will probably observe jerkiness in the motion as the robot starts to move into the stable position and then starts moving agian.

edomil90 commented 2 years ago

I think I had this issue too. One thing that helped me resolve this is by increasing the timeout of the velocity_cmd function in spot_wrapper from 0.125 to 0.5. That instantly fixed this. I do not know why this was happening

Thanks for the tip! This solved the issue, I actually noticed that in the wasd example of spot-sdk the timeout is set to 0.6, so this makes sense