Skip to content
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

Ev3dev odometry #768

Open
Linchikas opened this issue Jan 5, 2021 · 3 comments
Open

Ev3dev odometry #768

Linchikas opened this issue Jan 5, 2021 · 3 comments

Comments

@Linchikas
Copy link

Linchikas commented Jan 5, 2021

  • ev3dev version: 4.14.117-ev3dev-2.3.5-ev3
  • ev3dev-lang-python version:
  • ||/ Name Version Architecture Description
    ii micropython-ev3dev2 2.1.0 all Python language bindings for ev3dev for MicroPython
    ii python3-ev3dev 1.2.0 all Python language bindings for ev3dev
    ii python3-ev3dev2 2.1.0 all Python language bindings for ev3dev

Hi,
I am using gyro and odometry with MoveDifferential.
tank_drive = MoveDifferential(OUTPUT_B,OUTPUT_C,Tire,WheelDistance)
tank_drive.odometry_start(0,xTank,yTank,sleep_time=0.005)
Command turn_left, turn_righ, on_for_distance, turn_degrees works correctly, when put angle -90 it turns left, angle 90 turns right.
But however if I issue command turn_to_angle and angle_target_degrees = 90 , use_gyto=True, it turns left, but gyro shows -90 also if I put -90 it turns right(gyro output 90), so opposite of what is expected.
Then on_to_coordinates is also opposite for left and right. It seems that coordinate system is with reverse y
.........................|+x
.................1......|..........2
+y------------------------- -y
.......................|
.......................| -x

as I put on_to_coordinates(speed, 200,200) it goes to pos 1, but should go to pos 2.

robot construction is similar to this :
image

maybe there is wrong direction of motors?

@WasabiFan
Copy link
Member

Sorry for the delay.

To confirm, you're saying that e.g. turning right (positive degrees) works fine without the gyro enabled, but is inverted with the gyro enabled? That seems strange if on_to_coordinates is also inverted, since it doesn't use the gyro.

Is your left motor plugged into port B and right into port C?

@Linchikas
Copy link
Author

yes ports are as you described. I made workaround with code to invert axes where it is needed. And finished the project :)
Idea was to make robot scan room, send obstacles and it's own coordinates to PC where was drown map and find IR transmitter. After transmitter is found it should go back to it's starting position.

Here is how map looks
Viksras pilnas

and working system
https://user-images.githubusercontent.com/77002679/104713259-4ef83900-572c-11eb-8077-e8f8531fe328.mp4

@WasabiFan
Copy link
Member

Very cool, and glad you found a workaround! I'm not sure what caused the inversion, but it doesn't sound like there's a strong need to investigate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants