Hot answers tagged

6

That's not obvious. If I'm in a tank, going 0.5 km/h, I don't need to slow down at all. If I'm in a bobsled going 100km/h and the track banks, I don't need to slow down at all. When you steer, you begin to move around a circle with a particular radius of curvature. This means you also begin to experience centrifugal force. $$ F_c = mv^2/r $$ where $F_c$ ...


4

Use RoboAnalyzer. It will help you understand what you need.


3

Sure it can. The NXT provides a bluetooth serial port, so you don't actually have to do anything with bluetooth in Qt. All of the Bluetooth stuff will be handled by your OS. Instead, to communicate to the NXT from Qt, you will need to open the serial port for reading and writing, then send commands to the NXT over this connection. You can find out more ...


3

I cannot give you a definite answer since - as C.O.Park said - it depends so much on what you do. From my experience (doing visual SLAM and machine learning) linear algebra is (to a varying degree) an indispensable foundation in many fields like (2d) computer vision, 3d perception, robotic manipulation, path planning, optimization algorithms in machine ...


3

Just to be clear, my answers assume you are asking about NXT, not the more recent EV3. Also I couldn't find information on how RobotC works on NXT – if it loads native code straight to memory or generates RXE files to run on the NXT VM – so I'll cover both scenarios. According to the NXT Hardware Developer Kit, the NXT brick's main processor is connected to ...


2

"PIDControl" directive allows the internal to do closed loop feedback control on the motors. You do want this on. Without going into greater detail, you should leave it there so that you can have use more robust motor motions. You do not use encoders to control speed. You use encoders to control distance. Now, having said that, if you want to get higher ...


2

The following are very common in software driven robotics: Ros ubuntu c++ python arduino You may notice that all of those have a .stackexchange. But robotics may not always involve these. And it's bigger than all of those. Neither is better. They have different purposes.


2

Since it is not sure that your robot is in a plane or not, I would consider it in 3D. You have all the geometrical dimensions of the robot. And I assume you have also all angles in all joints. You need to calculate the X Y and Z coordinates of all centers of masses on the image, relative to the same coordinate system. It is important that they are ...


2

The code for “task autonomous()” should be outside of the main() function.


1

Currently your robot is only controlled by external factors. It always responds to external stimuli, it does not have any other operating mode. In order to cope with missing line segments, you could add operating modes (or states) to the logic. You could detect the point where the line disappears and transition to an operating mode which goes straight on. ...


1

As you mentioned that SLAM is your interest, the following are the courses that you need to understand a modern SLAM algorithm. Very important courses: Linear Algebra, Optimization, State Estimation, Dynamics, Computer Vision, Random Process Optional: Lie algebra, Optics, Signal Processing, Pattern Recognition, Nemerical Analysis But it is not necessary ...


1

There are 4 possibilities: One of the wheels' centre is displaced slightly. Wheel encoders are not properly positioned and this is causing issues (like wheel pausing at odd positions while microcontroller 'thinks' it has achieved the right position) One of the wheels' radius is lesser than the other one. As per @GurkanSetin 's comment, friction might be ...


1

Lets suppose, that left wheel is blocked, so nMotorEncoder[LM] is constantly zero, while nMotorEncoder[RM] counts something. Correct behavior is for right motor to effectively stop (or jumping little back and forth the same lenght). Now LEncoder is 0, REncoder is negative, LEncoder > REncoder so motor[LM] = speed1 - difference; ...


1

Someone who owns a Lego NXT2 system may be able to check your code and provide a good answer. Meanwhile, load some of the color sensor programs from the following links, run them with the sensor pointed at known colors, and edit your question to report whether your color sensor is working properly. Color Range Block v1.0 from teamhassenplug.org G1-FindColor,...


1

Unfortunately, there is no RobotC version you can run on your computer as configured - RobotC is currently (as of March 2017) only available for Windows. Depending on your Chromebook, there may be a way to run Windows software - check out this guide: https://www.howtogeek.com/173353/how-to-run-windows-software-on-a-chromebook/


1

If you structure the system dynamics equations to not depend on the independent variable, an Euler-Lagrange system is autonomous. If, however, you recast the equations to depend on the state variables (and their derivatives), as Ren did, it becomes non-autonomous. That clever manipulation allowed him to prove asymptotic stability for the consensus ...


1

The problem was with the motor encoder. Upon disassembly, I discovered that the encoder was installed improperly. For whatever reason, the encoder gear was installed without an axle. Under no load, it worked. When under load apparently it would shift enough to cause it to miss counts causing the encoder to under sense speed, thus speeding up to motor.


1

It has been a while since worked with VEX, but if memory serves, it was always more picky about syntax than plain C# usually is. Try swapping lines from: #pragma autonomousDuration(15) #pragma userControlDuration(120) To: #pragma userControlDuration(120) #pragma autonomousDuration(15) If you are trying to swap into autonomous from user control, you ...


1

Looking at some of the docs I see that the startMotor function usually takes values like portN as in: startMotor(port8,-32); startMotor(port9,128); and I am also seeing that some code looks like this: motor[port8] = -32; motor[port9] = 128; so that tells me that since it is an index into an array it must be just simply an int. Update: I can see on this ...


1

Well, when you change the value of PWM to 0 in an instant, it will definitely shut the servo down, but it will happen in such a sudden fashion that it could break the servo. I am also partaking in this event as well at my school and we are also had the same problem. We even tried setting the value of PWM to 0 in the end, but it broke two of our servos due to ...


Only top voted, non community-wiki answers of a minimum length are eligible