Simulation d'un environnement 3D de Robots sous OpenGL
Présentation :
Nous avons développé un environnement de simulation de Robots et d'actionneurs avec des moèles physiques réalistes et une interaction des utilisateurs en temps réel sur les objets de l'environnement.
We act on them by selecting the robot in the drop list than use the numerical pad.
Each robot has its own commands.
A yellow triangle (with its shadow on the ground) represents the target view point. This view point can be moved in the 3 directions and we can rotate the camera up and down, left and right around it.
The camera view can be changed using the mouse but also using the keyboard modes:
Mouse (simpler way to move around) :
Press the left button and move the mouse will move the view point (the yellow triangle) over the scene.
Press the right button and move the mouse will rotate the view around the yellow triangle.
scroll the mouse wheele to go closer to or far from the view point (the yellow triangle).
Keyboard :
Mouse right button mode (when pressed down):
UP zpos-=CameraMoveStep; get away from the scene.
DOWN zpos+=CameraMoveStep; get closer to the scene.
LEFT xpos-=CameraMoveStep; lateral moves.
RIGHT xpos+=CameraMoveStep;
PRIOR ypos-=CameraMoveStep;
NEXT ypos+=CameraMoveStep;
W CameraMoveStep*=1.5f; increase camera move step.
X CameraMoveStep/=1.5f; decrease camera move step (allows getting closer to objects).
Mouse move rotation up, down, left and right.
Mouse weel get closer to / away from the scene.
Normal mode (whithout clicking the mouse right button, clicking toggles between modes):
UP zpos-=CameraMoveStep; get away from the scene.
DOWN zpos+=CameraMoveStep; get closer to the scene.
LEFT xpos-=CameraMoveStep; lateral moves.
RIGHT xpos+=CameraMoveStep;
PRIOR ypos-=CameraMoveStep;
NEXT ypos+=CameraMoveStep;
W CameraMoveStep*=1.5f; increase camera move step.
X CameraMoveStep/=1.5f; decrease camera move step (allows getting closer to objects).
Z rotation up {
xrot+= 2.0f;
if (xrot>180) xrot-= 360.0f;
}
S rotation down {
xrot-= 2.0f;
if (xrot<-180.0) xrot+= 360.0f;
}
Q rotation left {
yrot+= 2.0f;
if (yrot>180) yrot-= 360.0f;
}
D rotation right {
yrot-= 2.0f;
if (yrot<-180) yrot+= 360.0f;
Other tasks:
A Animate : Start / Stop the animation which will show the evolution of robots through time.
The animation speed can be changed using the scroller. With the second scroller, we can fix coil powering switch frequency of the MRVlin robot.
CTRL-D Toggles between Demo mode and normal mode.
CTRL-M Toggles between manuel mode and Automatic drive for ALL the robots.
From menu Reset default View.
From menu Display a view option window.
From menu Start a video capture of the animation in compressed format.
Robot4 : 2-wheel drive robot (robot à traction avant, 2 roue directrices)
The arrows on the grey floor represent the motion force FT (blue), the friction force Ffr (red) and the speed V (green).
The Robot4 can advance, turn, go backwards. It also has an automatic mode in which he apply a sequences of FT and stearing.
Select the robot4, (they may be 2 on the scene, they are numbered on top of them), start the Animation mode (key 'A') then sytart using the numerical keypad :
Motion force FT :
'8' Increase the force FT.
'2' Decrease the force FT.
'0' Put FT to 0.
La direction (braquage) :
'4' Increase the stearing angle Delta : turn to the left.
'6' Decrease the stearing angle Delta : turn to the right.
'5' Put Delta to 0.
M Toggles between manuel mode and Automatic drive.
RobotK : Khepera robot
This robot is a model of the Khepera. We can act on the speed of each wheel (forward and reverse).
The arrows represent the wheel speed (blue) and the robot speed (green) of the khepera.
Right wheel:
'9' Increase the speed of the right wheel.
'3' Decrease the speed of the right wheel.
'6' Stop the right wheel.
left wheel:
'7' Increase the speed of the left wheel.
'1' Decrease the speed of the left wheel.
'4' Stop the left wheel.
M Toggles between manuel mode and Automatic drive.
Monocycle
View of Monocycle (a one wheel robot withan inverted pendulum motorised and connected to this wheel)
Non controlled mode (key G) (numerical keypad) :
'8' Increase the motor torque Ce.
'2' Decrease the motor torque Ce.
'0' Torque Ce down to 0.
Controlled mode (key G) :
'8' Increase the Av (Thetap angle refence) of the pendulum.
'2' Decrease the Av (Thetap angle refence) of the pendulum.
'0' Av reference to 0.
Bicycle
View of Bicycle (a two wheels robot with an inverted pendulum, a motor on each wheel) / Segway
Still under developpement...
MRVlin : Switched reluctance linear motor (moteur à réluctance variable linéaire)
View of MRVlin (a switched reluctance linear motor with active plots colored by phase. The plot get lighter when the corresponding coil is powered.
We can simulate different physical models and different paths (Rail) (curved, linear... see Menu Run/Options MRV /rail).
The arrows represent the z-direction Fz (blue), the x-direction force Fx (red) , the plane x-z resulting force Fxz (magenta) and the speed V (green).
Keys:
'E' Toggles between imposed constant speed mode and mechanical equation integration mode.
'G' Automatically switch the power between coils (the swith frequency can be changed by the second slider of the toolbar).
View of MSlin, a permanent magnet synchronous linear motor with active plots colored by phase. The Hall effect sensors get lighter when they are activated (over a magnet : North or South) as a consequence, Hall indicators turn to 1 or 0 (see text above the MSlin). Then a Sector variable is computed and the correct 2 phases are fired to allow the current flowing into them.
We notice that the conductors being over the magnets (on the photo : a, cp, ap, c) are in lighter color, indicating that they are powered.
The conductor which is not in front of the magnet has no current.
The text above the MSlin indicates in which direction the current flows (1 or -1) into the conductors a, cp, b, ap, c, bp.
This is a 120° control also knows as 6 sectors control of BLDC motor.
The arrows represent the x-direction force Fx (red) and the speed V (green).
Keys (numerical keypad) :
'E' Toggles between imposed constant speed mode and mechanical equation integration mode.
While in mechanical equation integration mode :
'G' Active/desactivate the control of an inverted pendulum with the help of the high trust that the MSlin provides.
'6' give a little push to the right (while in pendulum mode).
'4' give a little push to the left (while in pendulum mode).
'8' increase the current applied (while in non-pendulum mode).
'2' decrease the current applied (while in non-pendulum mode).
'5' zero the current applied (while in non-pendulum mode).