Skip to content

Vehicle velocity oscillates badly during teleop #4

@pjreed

Description

@pjreed

I've got a 4wd rover, and I'm trying to set it up so that I can teleop it with a joystick using ROS 2. I'm using an Intel NUC that has Ubuntu 18.04 and ROS Dashing installed.

First, when I start the openrover_demo hardware.launch.py and teleop.launch.py, I can send use the keyboard to send it commands, but the velocity oscillates badly, so it seems like the vehicle is constantly jerking forward. The values in the /cmd_vel topic look reasonable, but the /motor_efforts bounce around quiet a bit, and I suspect it may be due to a badly PID controller somewhere in the driver.

Also, when I lower the velocity back near zero, it tends to suddenly rocket away at top speed. The nickp/prevent_near_zero_runaway branch in this repository seems to fix that, so it would be nice to have that merged in.

Next, I've also tried using the standard teleop_twist_joy_node to use a joystick to publish Twist messages to /cmd_vel. I've observed similar behaviors, except that the angular velocity is very slow even when the joystick is turned all the way, so that's probably just an issue of scaling the magnitude somewhere; another issue, though, is that the teleop_twist_joy_node stops publishing Twist messages if the joystick axes are within their dead zones, and a side effect is that it seems like the openrover driver stops changing the motor efforts when it stops receiving Twists. A behavior I very frequently observe is that if the motor efforts are almost reduced to neutral, but not quite, the rover will stop moving but its internal fans will keep running, and so I have to very lightly tap the joystick until it drops all the way to neutral and the fans turn off.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions