# Tag Info

13

For a nonholonomic system, you can at best determine a differential relationship between state and inputs. You cannot determine a closed-form geometric relationship. This means that the history of states is needed in order to determine the current state. Vehicles are a good example because you can intuitively see that turning the right wheel 100 ...

13

You're trying to find a formula to convert a given $(r, \theta)$ to left and right thrust percentages, where $r$ represents your throttle percentage. The naive implementation is to base your function on 100% throttle: At $0 ^{\circ}$, left and right thrust are equal to $r$ At $\pm45 ^{\circ}$, one side's thrust equals $r$ and the other side's equals 0 At $\... 7 If this is true linear motion (non-rotational) then you will need some sort of a pivoting linkage in between the two units to transfer one motion to the other. Something like this would probably work: As the lower link moves vertically, it rotates the red gear which in turn pushes the second link horizontally. However, given that your image shows more of a ... 6 A holonomic constraint is a constraint on configuration: it says there are places you cannot go. That is a reduction in freedoms. That’s (usually) bad. A nonholonomic constraint is a constraint on velocity: there are directions you cannot go. But you can still get wherever you want. That’s (usually) good! Ref: Mechanics of Manipulation by Mathew T. Mason 6 In that context, SE means "Special Euclidean" group, e.g. SE(3)* which is shorthand for "the special Euclidean group of rigid body displacements in three-dimensions". *Planning Algorithms, Steven M LaValle 2012-04-20 4 I think a more compact and reliable solution would be to use a third shaft that is perpendicular to the other two (on the Z-axis) Given the shaft moving up/down is moving on the Y-axis and the shaft moving left/right is moving on the X-axis. This crude diagram should explain things better. As the motor turns Shaft A upwards it then turns Shaft C. Shaft C ... 4 The mechanism suggested in the previous answer is a form of four-bar linkage. A bell crank is a slightly simpler form of basically the same thing. You could push on one side of a bell crank with the end of the motor shaft, and use a spring return for the other direction if it is difficult to attach to the shaft. (The shaft apparently rotates, but the ... 4 It is a mathematical concept call the "Special Euclidean" group. Roughly, it is a combination of a rotation and translation. You'll also frequently see SO3, which is the special orthogonal group which means rotations. 4 Robots tend to be portable devices powered by batteries. Portable battery operated devices tend to use embedded processors with limited power and memory. Compiled code has several advantages over interpreted code in such applications: Compiled code usually takes up less space. So you can have more code in the same amount of space. Compiled code usually ... 4 Since the problem is one dimensional, you are actually asking to compute a velocity profile. (A velocity profile is the information of how a path is traversed with respect to time.) Now the problem is "How to travel for$B$units within time$T$?" (Let's call the duration$T$instead.) A velocity profile can be viewed as a curve in the$v$-$t$(velocity vs ... 3 Holonomic constraints are constraints that can be expressed in the form of an equation relating the coordinate of the system and time Non-holonomic are constraints that cannot be expressed in the form of equations but it is expressed in the form of inequality. 3 This is just basic trigonometry; you'll covert your world-relative calculations of roll and pitch ($\phi$and$\theta$) into vehicle-relative values, based on yaw ($\psi$). Just so we're on the same page, I'm assuming measurements like the following, with roll, pitch, and yaw being zero when levelly flying North: $$\phi_{vehicle} = \phi_{world}\cos(\psi) - ... 3 Scott-Russell type mechanism. For weeks I was trying to come up with a solution for that exact problem for a engineering project mine. Look it up. 3 OK. as drawn, ignoring mass and accelerations, the force F_p will appear as a torque on your ball screw. However, the total force on the ball screw, and hence the torque, depends on the mass of the thing you're moving with the ball screw interacting with gravity (if it's being moved in anything other than a horizontal plane), and on whether or not the ... 3 This is called a Stewart platform. You can use any linear actuator type, hydraulic, pneumatic or electric. 2 What you want is angular velocity proportional to the cosine of the angle, it seems, with positive to the right, and negative to the left. So, since we know that angular velocity is given by \frac{V_l - V_r}{D} where D is the diameter of the robot, we're all set. Try this: if \theta\ge0 and \theta\le90: V_l \gets r and V_r \gets r\sin(2\theta-... 2 You probably could attach an optical encoder strip to the piston, maybe even paint the piston rod with some reflecting / non reflecting paint. Or you could attach a modified digital caliper to it, using something similar to this: http://hackaday.com/2013/06/20/giving-digital-calipers-bluetooth/ . I have never done anything like this, so I don't really know ... 2 Hmm, thats definitely a unique idea. I think the shape of the top gear would have to be rounded off like half of a torus so it maintains a good interlocking through the motion from parallel to 90 degrees. Also, the motion that the top shaft/gear go through during that transition might not be a simple rotation...it might be a rotation + translation. I'm just ... 2 There are far too many to list them all here but I can list the most common ones: As you said base the movement off the motor RPM, and the diameter of the wheels and move for a period of time. This is not normally very accurate and can result in the robot "leaning" one way or another. Use potentiometers to directly measure the wheel rotation and bring the ... 2 SE(3) is the representation for both translation and rotation in 3D space, whereas SO(3) is only the representation for rotations. \mathbb{R}^3 is for translations in 3D space. If you only consider 2-dimentional space, then you can simply change 3 to 2, i.e., SE(2), SO(2), \mathbb{R}^2. I wouldn't worry too much about it. You can just consider ... 2 Not sure how you're choosing to structure your code, but typically I'll have a master reference, in percent, and a rate limit, in percent per second. You can have different rates for acceleration or deceleration, but I'll post a generic snippet that uses the same rate limit for both. In the code, the master reference is the unramped (typically square) ... 2 It looks (to me) like there's a typo in that answer. The approach is to recognize that you have to wind up at the same point, whether you get there via the left arm (d->e->blue dot) or the right arm (a->b->c->blue dot). This means that you can go:$$ \Sigma_{x_{\mbox{left arm}}} = \Sigma_{x_{\mbox{right arm}}} \\ \Sigma_{y_{\mbox{left arm}}} = \Sigma_{y_{\... 2 If I understand you right, you want to achieve that three roombas clean 24 hours a day, just making a break if they need to recharge and then continue. The Create 2 is a roomba robot that is similar to the 600-series, but some article says it can not clean, which is good as this saves the energy that would be needed to drive the vaccum and brush motors. This ... 2 I think this is just a way of illustrating the main idea behind the probability distribution and the representation is not complete. The idea is that there is a moment when the door is detected and the prior distribution not yet considered, this is when the robot assumes this could also be door 1 and therefore the positions of the other doors are as shown. ... 2 The robot has sensed a door, so the initial belief distribution matches the three possible door positions. i.e. the only three places that it is possible for the robot to be in that scenario. The robot moves to the right so, since the belief distribution matches the possible positions of the robot, the belief distribution must also move to the right. As the ... 2 Here is what I 'believe'. Lets make the diagram more labeled. Say door 1 starting from left most is at 4 meters from the origin at left, door 2 at 7 meters, door 3 at 15 meters. When the robot senses a measurement corresponding to a door it thinks that it has high and equal probability of standing in front of any of those doors and very low probability that ... 2 A general approach would be to construct a so called axis-angle representation and convert that to a rotation matrix representation. On order to do so, one could start with a normal vector of the triangle. Let's take the$P_1P_2$line and construct the perpendicular of the triangle from$P_3$to$P_1P_2$. Let's call$P_4\$ the point where the ...

1

Many people use Python to control robots. While it does use more computing resources to interpret the python code, it may take less time for the programmer to develop in an interpreted language. Advantages of Python: Many programmers are familiar with Python because it is often taught as a first language in schools. It can be faster to program in Python ...

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; ...

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