Questions concerning gamepad operating parameters.

6 views
Skip to first unread message

thomasco...@gmail.com

unread,
Jan 22, 2022, 11:29:33 AM1/22/22
to ROS for Arlobot
Hi Chris,

I have found that there are a number of gamepad operating parameters that can be adjusted:

In opt/ros/noetic/share/teleop_twist_joy/config/xbox.config.yaml there are several adjustable operating parameters:
  1. For axis 1 (left joystick) the 'scale_linear' default value is 0.7 and I assume that this controls the maximum speed with the left joystick vertical axis pressed all the way forward.
  2. For axis 0 (left joystick) the 'scale_angular' default value is 0.4 and I assume that this controls the maximum rate of turning with the left joystick pressed all the way to either the left or the right.
  3. For the left trigger button enable_button: 2 which acts like a 'dead-man' switch.
In catkin_ws/src/ArloBot/noetic/arlobot_ros/launch/xbox360_teleop.launch there appears to be four adjustable operating parameters:
  1. <param name="deadzone" value="0.3"/>
  2. <param name="autorepeat_rate"="20"/>
  3. <param name="scale_angular"="1.5"/>
  4. <param name="enable_button"="4"/>
There appears to be some inconsistencies between 'xbox.config.yaml' and   'xbox360_teleop.launch' operating parameters?

When ROS is started on the Web Interface, which gamepad configuration values take precedence as I would like the adjust the 'dead zone' and the 'scale_linear' values to improve robot performance. I would like to reduce the maximum robot speed with the left joystick vertical axis fully forward and reduce the joystick dead zone to 0.1 for smoother startups.

Comments?

Regards,
TCIII

thomasco...@gmail.com

unread,
Jan 22, 2022, 1:22:13 PM1/22/22
to ROS for Arlobot

Hi Chris,

The thing that I am concerned about here with the gamepad is that if the 'dead zone' value is too large, like the present .3 value, it can cause this to occur:

Assuming the max forward joystick value of .7 (default), the robot will try to jump to a minimum speed of .3 (dead zone value), when the left joystick is pushed forward, which is somewhat like a step function from 0 to .3 which can suddenly suck up a fair amount of current instantaneously.

This is why I am asking about where in your software the joystick 'dead zone' is specified, when ROS is running, so that I can reduce it to .1. We have successfully used .1 with our Donkey Car gamepads.

Regards,
TCIII  

thomasco...@gmail.com

unread,
Jan 22, 2022, 4:52:19 PM1/22/22
to ROS for Arlobot
Hi Chris,

Bump?

Regards,
TCIII

Christen Lofland

unread,
Jan 24, 2022, 5:38:54 PM1/24/22
to ROS for Arlobot
The parameters that are used for the joystick are in the xbox360_teleop.launch file 

You've already found that file I believe, so I'm guessing that maybe I don't understand the question?

There is no  xbox.config.yaml in the Arlobot repository. My guess is that is a file that you found in the installed ROS code in /opt/ros/...?

If so, I expect the  xbox.config.yaml parameters to be the defaults, and anything added to xbox360_teleop.launch will override those defaults. So you can add/update things in xbox360_teleop.launch in the <node pkg="joy" type="joy_node" name="joy_node"> section to override the settings in the yaml file in /opt/ros/...

The best way to know for sure though is empirical evidence:
You can run the rosparam command line program from the Pi to find out what parameters exist and what their settings are.
The instructions for using rosparm are here:

I hope I got all of that right and that it helps.

thomasco...@gmail.com

unread,
Jan 25, 2022, 3:55:36 PM1/25/22
to ROS for Arlobot
Hi Chris,

Very insightful, thankyou.

Regards,
TCIII

Reply all
Reply to author
Forward
0 new messages