Giter Site home page Giter Site logo

Comments (5)

adamantivm avatar adamantivm commented on June 24, 2024 1

Today we did additional tests. We couldn't find a single, whole culprit for the behavior difference, but we did find some incremental differences between the Linux and Android set-ups that could add-up to the observed difference in behavior:

  1. Linux is using a velocity smoother (yocs_velocity_smoother) as part of the base_controller nodelet manager. This seems to improve the navigation output behavior to a visible extent. Recommendation: incorporate a velocity smoother in the Android configuration as well
  2. When running components in different hardware components (TF publishers on a desktop computer, odom publisher on Android), there are noticeable missed TF warnings by the planner. Recommendation: run all the core components (especially TF) inside a single device.
  3. It is worth noting that the "best behaved" Liinux config is using the base_contoller to publish odom. Using Tango for odometry may require additional planner fine tuning.

For the record, the environment for bisection testing included:

  • A laptop running the Turtlebot set-up with a modified kobuki_node params (publish_tf = false), running turtlebot_minimal.launch
  • A Tango device on top of the Turtlebot laptop, running a version of tangobot that has move_base and the move_base params commented out.
  • A desktop computer running ROS core and a modified version of navigation_setup tangobot_navigation_bringup.launch by removing the remapper python script. Also turtlebot_navigation move_base.launch was manually changed to remap from cmd_vel to mobile_base/commands/velocity, to navigation_velocity_smoother/raw_cmd_vel or to not remap depending on the desired scenario.

Scenarios run include:
a) Android version: laptop is not used. Yellowstone device connected to Kobuki base, running base_controller and tango_ros. Desktop running ROS core and tangobot_navigation_bringup.launch with cmd_vel not remapped.
b) Linux base controller: laptop connected to kobuki. Yellowstone NOT connected to Kobuki, only running tango_ros node. Desktop running ROS core and tangobot_navigation_bringup.launch remapped to mobile_base/commands/velocity.
c) Linux base controller with smoothing: Sames as b) but remapping to navigation_velocity_smoother/raw_cmd_vel

Results where that a) and b) work roughly equally badly and c) works better - although this is not 100% repeatable.

from tangobot.

jubeira avatar jubeira commented on June 24, 2024

Based on the update in #43 , a proposed test to check these differences is to replay a rosbag containing a cmd_vel topic recorded by a Linux stack with the Android device driving the robot.

from tangobot.

adamantivm avatar adamantivm commented on June 24, 2024

Today we did some tests and got to the conclusion that the source of the difference is not in the base controller implementation.

We tested replaying a given trajectory from a rosbag to two different set-ups, one running base controller on Android (running tangobot without navigation and Tango nodes) and one running on Linux (turtlebot_bringup turtlebot_minimal.launch).

For the record, the rosbag was a recording of the navigation stack running on Linux, from which we replayed the /mobile_base/commands/velocity topic (in the case of the Android base controller, this was remapped to /cmd_vel)

from tangobot.

jubeira avatar jubeira commented on June 24, 2024

Update: #63 adds the remaining transformations published to tf from device, without needing to use external scripts (recommendation 2)

from tangobot.

jubeira avatar jubeira commented on June 24, 2024

Update: the robot doesn't get stuck when turning around when using Phab 2 Pro with its printed mount attached properly to the robot as shown in the tutorial about hardware setup; it's navigation performance is quite smooth 👍 .
The suggestion for Tango tablets is to adjust the extrinsics a bit more. This affects the navigation stack especially when performing pure rotations (if there are errors in the pose of the device wrt the base footprint, the robot will think it's translating and rotating when it's only rotating, and this could affect the navigation stack performance).

@juergensturm @PerrineAguiar @smits FYI, this was the main issue regarding navigation performance we talked about so many times in the meetings.

from tangobot.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.