loading
 
AVM: tank drive assumed?
John Davis  [71 posts]
5 years
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] 5 years
>> 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] 5 years
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] 5 years
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] 5 years
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] 5 years
However in "Navigate mode" there is variable NV_GATE_HORIZON that indicates of gate horizon (float from –1.0 to 1.0) which shows the direction to adjust the robot's.

It may be helpful for your robot control:
http://www.youtube.com/watch?v=7DQv4OTBh7I
http://www.youtube.com/watch?v=k_0iMlfQ0Nk

See this topic for more details:
http://forums.trossenrobotics.com/showthread.php?4764-Using-of-AVM-plugin-in-RoboRealm
EDV  [328 posts] 5 years
You can also use DVR Client-Server for memorizing and analysis of values of variables that were involved in your robot control algorithm when your RoboRealm pipeline was running:
http://www.roborealm.com/help/EDV_DVR.php

Screenshots:
http://edv-detail.narod.ru/dvr_client_trend_2.png
http://roboforum.ru/download/file.php?id=22047&mode=view

See here for more details:
http://www.roborealm.com/forum/index.php?thread_id=4246#

This forum thread has been closed due to inactivity (more than 4 months) or number of replies (more than 50 messages). Please start a New Post and enter a new forum thread with the appropriate title.

 New Post   Forum Index