Comments (6)
You can use tf to get the transform from the "map" frame to the "base_footprint" frame. This is the result of the AMCL localization (i.e., the sensor fusion from laser scanners, IMU and odometry). This is what the MiR uses internally as well. You don't need to do any fusion with the /odom topic yourself, since it's already included.
from mir_robot.
Thanks, @mintar. I will give that a shot.
Really appreciate your help!
from mir_robot.
I started exploring the use of tf but wanted to get more input on whether it would help at all with better estimation of robot pose in a situation where I want to use dead reckoning to get to a target pose (using only encoder feedback, no camera feedback).
I am currently extracting the current pose of the MiR using an API call and guide it to its target pose (assuming a target pose such as a waypoint has been defined earlier). All these coordinates (x, y, theta) and (xtarget, ytarget, thetatarget) are in the "map" frame. If the robot is "suffering" from encoder errors, I feel using tf will not help overcome these. There will be a need to capture feedback from other sensors like an overhead camera, or the onboard camera (which I have not leveraged yet).
Am I missing something? The encoder errors are something we have to live with, right?
Is there any way to adjust for it? Appreciate your thoughts...
from mir_robot.
As I said, the tf pose (which should be the same that you get from the MiR via an API call) already contains a sensor fusion between odometry (= encoders), IMU and laser scanners. If you have a normal amount of encoder slip and IMU drift, this is usually corrected by referencing the laser scans to the recorded map. The onboard camera is not useful for localization, since it is pointed downwards to the floor. If you get a lot of localization errors, I would recommend re-recording the map; this usually helps. If you have a highly dynamic environment, where the map changes drastically all the time, you might have to integrate an external positioning system.
from mir_robot.
Thanks a lot for the suggestions. This is working well for now!
from mir_robot.
@mintar I think you need to read the question a bit more careful before replying with the same comment as you replied before.
@rsr152 Yes, that is how AMRs perform the last meter drive in. You first use AMCL to navigate to some pose then when you have arrived, you can turn off the AMCL and slowly give commands directly to the motor controllers to move forward/backward X meters. 1 meter is nothing for wheel encoders and you will probably get mm accuracy
from mir_robot.
Related Issues (20)
- any chance to open source how mir setting the one-way path and priority aera ? HOT 1
- compatibility with gazebo11 HOT 1
- Did anyone attempt to extend the navigation stack for navigation with a trailer / cart attached (via MiR Hook)? HOT 5
- Compatibility with version 2.8.x broken? HOT 1
- General problems / missing details? HOT 3
- Install all dependencies in docker-file using apt HOT 1
- [mir_description] Why the visual of the base is shifted by `mir_act_wheel_dx`? HOT 2
- Error mir_gazebo mir_maze_world.launch HOT 1
- Gazebo Ignition Version? HOT 1
- Mir-robot Gazebo control joystick
- transform failed error hector_mapping.launch
- Goal to MiR doesn't work HOT 24
- Installing chrony on the MiR HOT 1
- Problems when sending it to goal HOT 2
- Migrate to modern Gazebo HOT 3
- MiR movement execution is aborted if target goal is occupied HOT 4
- Error with Running the World Warehouse Gazebo World HOT 3
- Is that works with the MiR250? HOT 4
- Problems with chrony on MIR500 HOT 2
- register new sensor HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mir_robot.