|
AVM: tank drive assumed? John Davis [71 posts] |
12 year
|
Do the AVM algorithms assume a tank-bot drive with separate left and right motors?
This is why I think it might be:
I am having some success with AVM on my robot truck. I can now manually drive with arrow keys in Marker mode. I can go forward or backward and steer left or right. A map is generated just like those shown in the tutorial.
However, a short 2-3 meter trip in Navigate by Map mode does not always succeed. Even when it does succeed, the robot does not know how to stop at the check point. Instead it seems to be starting a curve. It might be trying to turn on the spot.
This is not possible; my robot is driven like an automobile, not a tank.
My truck is a modified ClodBuster. 4-wheel drive is done with front and rear motors that are always driven in the same direction, either both forward or both reverse. 4-wheel steering is accomplished with a single servo that aims the front wheels in one direction and the rear wheels in the other direction.
My Python code uses NV_FORWARD and NV_BACKWARDS to compute speed and direction for the motors. It uses NV_RIGHT and NV_LEFT to compute the command for the steering servo.
|
|
|
EDV [328 posts] |
12 year
|
>> My Python code uses NV_FORWARD and NV_BACKWARDS to compute speed and direction for the motors. It uses NV_RIGHT and NV_LEFT to compute the command for the steering servo.
Can you connect your robot to AVM Navigator with helping of variables that described below?
Use variable NV_TURRET_BALANCE for camera turning:
NV_TURRET_BALANCE - indicates the turn degree amount.
This value range from -100 to 100 with forward being zero.
Use for motor control NV_L_MOTOR and NV_R_MOTOR variables that have range
from -100 to 100 for motion control ("-100 " - full power backwards,
"100" - full power forwards, "0" - motor off).
You also can used alternative control variables
(motors range from 0 to 255 with 128 being neutral):
NV_L_MOTOR_128, NV_R_MOTOR_128 - motors control
NV_TURRET_128 - control of camera turning
NV_TURRET_INV_128 - inversed control of camera turning
* My experiments with navigation were begun also on tank track platform and nevertheless all was working well:
http://www.youtube.com/watch?v=wj-FKhdaU5A
Let's try to go through following steps for making clear of this situation:
1. You should download RoboRealm package with new AVM Navigator v0.7.3.5 because this update has brought to AVM more accuracy in recognition and it provided more acceptable conditions for navigation by map.
>> Hi, how do I update AVM Navigator? I purchased it last version.
You had to receive download link after registration on RoboRealm site.
Just use this link for downloading recent version of RoboRealm package with AVM Navigator.
You could also start RoboRealm application and then click "Option" button and further click "Download Upgrade".
2. Further you should shoot video from “robot eyes” with helping "Write AVI" module and "XviD codec".
This way is most acceptable regarding to speed of pipeline processing.
See picture below for more details:
http://www.roborealm.com/uploads/23966_1.png
You can download "XviD codec" from this source:
http://www.xvid.org/Downloads.15.0.html
When I will have seen your video then I will be able to analysis of this situation.
|
|
|
John Davis [71 posts] |
12 year
|
Sorry, my subject line has confused you. My robot does NOT use tank drive. It uses one drive motor for the front axle and another drive motor for the rear axle. It uses a servo motor for Ackerman-like steering. It works well within RR, e.g. the Red Object Tracking example.
So, a here is a more specific question which can be answered simply yes or no:
From the AVM tutorial, under Nova Gate Mode, it reads
"When you reach the end of the route press the "Set Checkpoint" button which will cause
the robot to turn on that spot and mark the spot as a checkpoint."
The phrase "which will cause" implies that the NV control variables are set internally by AVM code to values which would cause a tank-style drive to turn in place by reversing one side motor and driving both motors at the same speed. Is this true?
If it is true, then to use AVM I will have to write quite a bit of code to convert this into some other behavior. My truck has a large turning radius; maneuvering in small rooms requires much back and forth.
|
|
|
EDV [328 posts] |
12 year
|
Historically first was developed "Navigate mode" and "Nova gate mode" that provided walking of robot from gate to gate. The gate is an image (from robot camera) that associates with specific data inside AVM tree. The gate data contains weights for the seven routes that indicate importance of this gateway for each route. At the bottom of the screen is added indicator "horizon" which shows direction for adjust the robot's motion for further movement on the route. Field of gates is painted blue if the gates do not participate in this route (weight rate 0), and warmer colors (ending in yellow) show a gradation of "importance" of the gate in the current route.
I left these old modes within AVM Navigator just for compatibility with previous versions:
http://www.youtube.com/watch?v=xbCpthKrL0o
You should use more advanced navigation solution such as "Navigation by map" with "Marker mode" for route recording.
But you can use "Nova gate mode" for manual robot control with helping of arrow keys.
* How to get start
1. Open RoboRealm dialog window.
2. Make sure that "Camera" button is pressed in RoboRealm dialog window
and also you should check out the camera resolution (it must be 320x240 pixels).
3. Call the dialog window of AVM Navigator (click on it at video-processing pipeline)
and then switch to "Nova gate mode". Now you can control your robot by arrow keys
and also you can turn robot camera by "Delete" and "Page Down" keys ("End" key will
set the camera in front position). If camera was turned you have to press "End"
for alignment before continuing of robot moving.
...
Find out more: http://www.roborealm.com/help/AVM_Navigator/avm_q3mod_help.html
Also you can try to train with "AVM Quake 3 mod" for acquaintance with "Marker mode"
and "Navigation by map" modes: http://www.roborealm.com/help/AVM_Navigator/Setup_avm_q3mod.exe
You should use arrow keys for robot control in "Marker mode"
(it is important for route recording):
http://www.youtube.com/watch?v=qVz9iBazqug
>> My truck is a modified ClodBuster. 4-wheel drive is done with front and rear motors that are always driven in the same direction, either both forward or both reverse. 4-wheel steering is accomplished with a single servo that aims the front wheels in one direction and the rear wheels in the other direction.
>> The phrase "which will cause" implies that the NV control variables are set internally by AVM code to values which would cause a tank-style drive to turn in place by reversing one side motor and driving both motors at the same speed. Is this true?
>> If it is true, then to use AVM I will have to write quite a bit of code to convert this into some other behavior. My truck has a large turning radius; maneuvering in small rooms requires much back and forth.
The robot controlling by AVM Navigator needs possibility of turn on the spot:
http://www.youtube.com/watch?v=F3u0rTNBCuA
How you can implement it on your robot?
It seems that your robot platform is not convenient for controlling by AVM Navigator :(
|
|
|
John Davis [71 posts] |
12 year
|
Thanks, that is very helpful. Perhaps in future AVM can be refactored so that tank-specific behavior like the preprogrammed turns-in-place can simply be disabled by selecting an option within Marker or Navigation by Map modes.
I am preparing my truck for a hallway navigation contest at a university. The hallway is about two meters wide everywhere, so I have no need for tight turns. If an obstacle is encountered, all that is needed is backing up a little and then changing direction slightly before going forward again.
I will still try to use some part of the newer AVM modes you suggested. That guidance was very enlightening; please add that to your documentation or tutorial.
Thanks again for your work on AVM. It has a lot of potential.
|
|
|
EDV [328 posts] |
12 year
|
|
|
EDV [328 posts] |
12 year
|
|