Closed osrf-migration closed 5 years ago
Original comment by Steve Peters (Bitbucket: Steven Peters).
Original comment by Addisu Z. Taddese (Bitbucket: azeey, GitHub: azeey).
Incorrect gains or missing feedback for the X3/X4 vehicles' roll_pitch_yawrate_thrust_controller_node
You might be right. I'll look into it.
Competitors will need to feed their own odometry estimate on some documented topic to the UKF to get good results
Controllers for X3/X4 are currently launched in world launch files (eg. virtual_stix.ign
). Moving them into team.ign might allow teams to customize them as they need. I'll look into this as well. This might tie into your first point.
A way to test whether or not a good odometry estimate from a competitor would work might be using truth from Ignition to ensure that the control is sufficient with perfect odometry.
There's a variable, $enableGroundTruth
, in the world launch files (virtual_stix.ign, tunnel_practice_circuit.ign, etc). It's set to false by default and during the competition, but for testing you can set it to true and it will publish ground truth poses on /<robot name>/pose
and TF.
Original comment by Derek Knowles (Bitbucket: dknowles-ssci).
cmd_vel
now seems to be a force input, not a velocity command with the X4 hovering when around 33.0 is published to cmd_vel.linear.z
Original comment by Alfredo Bencomo (Bitbucket: bencomo).
We've improved the inertia settings for the UAVs (i.e. X3).
If you are using a docker container installation, then download the new Docker image from here:
https://cloud.docker.com/repository/registry-1.docker.io/nkoenig/subt-virtual-testbed
If you are using a catkin workspace installation, then run the commands below to update it:
sudo apt update && sudo apt upgrade
sudo reboot
cd ~/subt_ws/src/tunnel_circuit
hg pull && hg update tunnel_circuit
source /opt/ros/melodic/setup.bash
rm -rfv ~/.ignition/fuel/fuel.ignitionrobotics.org/openrobotics/models/*
cd ~/subt_ws/
catkin_make install
. ~/subt_ws/install/setup.bash
ign launch -v 4 competition.ign robotName1:=X3 robotConfig1:=X3_SENSOR_CONFIG_1
# Open another terminal and run these commands:
. /opt/ros/melodic/setup.bash
. ~/subt_ws/install/setup.bash
roslaunch subt_example teleop.launch
BEFORE:
AFTER:
Original comment by Nate Koenig (Bitbucket: Nathan Koenig).
This fix has been merged. Does this resolve your issue?
Original comment by Arthur Schang (Bitbucket: Arthur Schang).
I just pulled it down and took a look at it. The change in inertia looks great however this does not fix the noted issue.
If the desired interface teams are to use is to send motor commands, there is no change required but if the desired interface is the velocity topic “cmd_vel” accepting velocity commands, this does not fix the issue at least as it relates to Z. I can still send a command of 1.0 m/s in Z and the rotors will not speed up to achieve a 1.0 m/s Z take-off. The motors merely spin up to some equivalent proportional amount which does not result in a successful take-off or positive Z velocity.
Maybe the appropriate fix is to bias the translation of the command from velocity mode to motor PWM mappings by the required motor PWM for hover.
Original comment by Derek Knowles (Bitbucket: dknowles-ssci).
The cmd_vel topic name does seem to be confusing as it is not actually a command velocity. Instead it seems to be a command force as the X3 lifts off with a cmd_vel.linear.z of about 15 and the more massive X4 with a cmd_vel.linear.z of about 34. We implemented a velocity to force controller in order to get the UAVs flying.
If it was intended to switch to a force command for the UAVs, changing the name to something like cmd_force would seem more intuitive.
Original comment by Neil Johnson (Bitbucket: realdealneil1980).
Our team has now adapted to the new way that cmd_vel works. We would rather that it didn’t change again at this point. With two weeks left, we don’t want to have to modify our controller yet again.
Original comment by Alfredo Bencomo (Bitbucket: bencomo).
We cannot change this topic names right now, but we will consider this change after the tunnel circuit.
Original comment by Louise Poubel (Bitbucket: chapulina, GitHub: chapulina).
I added a note about this to the API page: https://osrf-migration.github.io/subt-gh-pages/#!/osrf/subt/wiki/api
Please update that page if the topic is changed.
Original report (archived issue) by Arthur Schang (Bitbucket: Arthur Schang).
The cmd_vel interface on the X3/X4 vehicles does not work intuitively as one would expect:
Example on X3 Config 1:
Command 1.0 m/s Z velocity (all others zero) -> the rotors slowly spin at a constant rate
Command 15.0 m/s Z velocity (all others zero) -> the rotors spin up and the vehicle slowly lifts off
There are two issues present with the current setup using the UKF feedback to the roll_pitch_yawrate_thrust_controller_node from rotors_gazebo:
-The odometry put out by the UKF seems to be all zero which should cause the controller to continue to increase thrust by ramping up each rotor until 1.0 m/s is measured by the odometry. This does not happen and there is a constant rotor speed so there may be missing feedback or insufficient gains for some terms.
This is related to issue #94