-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Linda's mileage #49
Comments
I've not seen it here. What is the robots dosimetry reading like? Has that also gone bad? |
Hi yes odometry is working perfectly, we don't know where the problem may come from, I can only tell you that it happened right after updating Linda. |
I just found this commit: 332833f which I find very suspicious, because our mileage is about 5 times less than it should be... |
This was a while ago, and did not effect it then. However, this file is the only way I can see something us doing being able to effect the mileage. It is simply a MIRA channel which I publish out as a ROS topic, and I guess it is calculated in firmware. Did you update MIRA recently? (is there even a newer version that ours?) |
@marc-hanheide the odometry changing pull request you mentioned was tested on Linda for a few weeks before we merged it into the master. So I don't think that this has anything to do with it. Otherwise we would have noticed. |
No we haven't update MIRA in a while. But you are right @cdondrup tried that commit a while ago and there didn't seem to be any problem. |
Could this be related to us setting the force on the robot, e.g. a side effect or an implementation bug? Was it about the time we implemented the ramp behavior? |
@chmartin21 have you got any other idea what could cause the mileage to be screwed up on the robot. We just publish the mileage as reported by MIRA, can we easily check something? |
Can you have check the property "MainControlUnit.TotalMileage" of the authority Robot? |
Hi, @cburbridge and @chmartin21 Can you tell me how to get this I had never worked with MIRA before. What I have tried so far is running miracenter then open the RPC console, my original intention was to run /robot/Robot#builtin.getProperty("MainControlUnit.TotalMileage") but TAB was not working for this so by doing TAB I got to run this I suppose my problem is not running the Miracenter under the correct authority, but I don’t know how to do this, can you help me? |
You have to start miracenter with a configuration, which contains at least the driver for the SCITOS. For example, you can use /opt/MIRA-commercial/domains/robot/SCITOS/etc/SCITOSDriver.xml. |
hi @chmartin21 that seems to work better but now I get this Enter your RPC calls or type 'help' for more information.
Any Ideas? |
Looks not good: The SCITOS driver seems not be able to detect any module of the robot. I assume, that you are getting some error messages on the console. Or at least the robot authority is not green in the AuthorityView. Probably the driver tries to use the wrong CAN bus interface. The SCITOSDriver.xml assumes, that you have create a SCITOSRobotAttributes.xml file (http://www.mira-project.org/MIRA-doc/domains/robot/SCITOS/index.html#SCITOSConfiguration_Section). You also can specify the CAN bus interface at the command line:
|
Hi yes I didn't realise I was getting this error when launching the miracenter. [ERROR ] 2013-Nov-21 12:27:39.720789 /robot/can/CANDriver Exception while invoking Runnable: Permission denied however the SCITOSRobotAttributes.xml file seems to be fine and I also tried miracenter ..../SCITOSDriver.xml --variables canType=MLCAN. but I get the same error |
The MLCAN uses /dev/ttyUSB2. To access this device, the user must belong to the group dialout. Does your user account have read permission on /dev/ttyUSB* ? |
Hi, I finally got it done, the problem was that /dev/ttyUSB2 was only accessible by root. the mileage we are getting from ros is 290966.59375 whilst the mileage on MainControlUnit.TotalMileage is 307413 that is the problem |
You also can read the channel /robot/Mileage, which contains the total mileage with a higher precision. Now you can drive a certain distance and compare the mileage with the real distance. |
so, we tried to get to the bottom of the this. First, here are the relevant source code lines:
then subscribe to MIRA:
So, we are subscribing to the /robot/Mileage channel which is supposed to be more precise, I understand. Then the callback:
Because this all looked fine, we tested pushing the robot around both in MIRA and our software. Here's a video of our little experiment: It looks as if at lower speeds the counter doesn't go up. When we push harder, it does. That's the same for our ROS implementation and also when we look at the MIRA center. This could well explain our observations to some extend. But I still have no clue how it happens. Anyone? @chmartin21 ? |
Here are some more details about the mileage computation:
We never analyzed the precision of the mileage channel at slow velocities. We will check this and give you some feedback. |
That would be much appreciated. We have also tested the odometry when pushing slowly. That is correctly updated (we would have massive localisation issues otherwise). Note, that we have changed the update rate of odometry from 10 Hz to 50Hz, just to give a hint. |
@bfalacerda mentioned that we also have incorrect mileage now... |
@ALL: We were able to reproduce this issue: The incorrect mileage is caused by a precision issue within the SCITOS driver. The total mileage is stored in [m]. During slow movements the odometry increments at 50Hz are very small. Adding such small values to a value of some hundred kilometres will lead to precision errors, since the driver uses only standard floating precision for the mileage. We fixed this bug in our development branch by using double floating precision. But for backward compatibility reasons the channel "Mileage" will still be a float channel. Maybe, we add a second channel, which publishes the mileage as a double value... This bug was undiscovered until now, since we don't really use the mileage channel in our applications. What are you doing with the mileage? I'm asking, because another way to fix this bug would be to publish only the mileage value from the EEPROM in a fixed interval. This would give you a mileage only in [m]. Any other comments or ideas? What are your specific requirements for the mileage value? |
@cdondrup has been working on another solution as well I believe. |
Yes @cdondrup implemented yesterday a solution based on odometry, you can find it here https://github.com/strands-project/strands_utils/tree/master/odometry_mileage |
So far it only publishes the mileage since the start of the node using the odometry and double precision.
Another advantage of the datacentre approach would be that we also have a mileage topic in simulation. Don't know if that would ever be useful :) Any opinions on that? |
I like datacentre approach specially because it will be useful in simulation too, however, we can call this current mileage and is a topic that will tell us how much the robot has run since started, wich is specially good for the marathon. Any ideas on what to do for the Marathon statistics? |
strands-project/strands_utils#45 presents a solution to the mileage problem. The node initialises itself from a mileage paramtere which can be set to the current mileage of your robot before you start the node for the first time. Afterwards the node saves the current mileage to the datacentre regularly. |
It's already a 400m difference since we started it the first time about 20 to 30 minutes ago. |
Lindas mileage topic does not seem to work correctly during the last few days. Although her patrol runs are approximately 30m long, it's mileage topic increases only by ~10m each run. The topic was OK until Thu Nov 14 12:14:29.
The text was updated successfully, but these errors were encountered: