# Tag Info

7

I still think this is off-topic, but it seems I need more space than a comment to show (answer?) why that is so. You are starting from some performance specifications and are looking to get to a set of features you need in your camera. Here is a post from NI about stereo vision that gives a formula for depth resolution:  \Delta z = \frac{z^2}{fb}\...

5

ROS is not a real-time operating system. The purpose of ROS was not to be like VXWorx (which is what the Mars Curiosity rover uses). ROS was developed to be a simple, generic, reusable platform for everyone to contribute to and use. Developers would be able to add their own abstracted modules, building a rich community of reusable code. The key here is ...

5

A Raspberry Pi should be sufficient for the control you intend to do with it. In designing a controller under a full multitasking operating system, like the Linux operating systems that are available for the Raspberry Pi, you have to be careful about the real-time requirements, and if the time share chunk of processor made available to your software will be ...

4

The given strategies can be divided into two groups: model-based and model-free control. The AMPC and MARC suggestions are model-based the other are model-free. Theoretically, a pid controller can be combined with Model-based control but for reason of simplification the assumption is, that each technique is located in a certain group. Now we can ask if ...

4

In general, hard real-time OSes are used when there is a (usually periodic) task that is terminally critical, i.e. a process that needs to be run every few milliseconds, for example, and which, when queued, must be completed within a given time window to avoid a system failure. Note that "system failure" in this case doesn't have to mean that it will fry ...

3

You can use Orocos RTT with ROS to achieve some real time performance. In order to use this you need to patch the Linux kernel with a real time patch like PREEMPT_RT or run a real time kernel like Xenomai. You question about changing the sample time seems to actually miss the point of real time computing. Real time is not about doing calculations fast, it ...

2

Though I did not use hand gestures, I used color based object tracking for my undergrad project. I did it through MATLAB as at that point of time I had no idea about Open-CV. I am guessing you will have a laptop for image processing and send commands run-time to your robot. Ok first thing, sending serial commands though the serial port / USB port / wifi to ...

2

The problem you want to solve is definitely a SLAM problem and not just simply localization (or maybe we can consider it SLAm since the mapping part is not as heavy). The reason for this is that you will need to do some kind of mapping for initialization when you set up the environment. Of course you could set up the environment with markers or known ...

2

As a matter of fact, if the environment is known a priori, then you don't need SLAM. It is a matter of localization problem which is simpler than SLAM in the sense that the map is given, therefore you don't need to estimate the map. In Probabilistic Robotics book chapter 7, the localization problem is addressed and they use probabilistic methods for the ...

2

Currently I am performing my research on that, and in my case I decided to tune all the PIDs. Angles of the quadrotor tend to zero, while altitude controller tend to the objective height. That's habitual in bibliography. In my particular simulations on the computer, PD parameters were enough and all the controllers adapted the same Proportional and ...

2

Short answer: yes, as long as you adjust for the real dt you are fine Longer answer: In reality, we are always using discrete time approximations of continuous time concepts of derivative and integral. So a varying dt just means the accuracy of your approximation is varying over time, but that's ok. Examples of situations where you might run into problems ...

2

This sounds like a great project. You should have a list of at least 20 processors from at least 10 companies that you are choosing from when starting a new project. Understand your requirements and make an informed decision. You will find that most available processor manufacturers are careful about using their products in life critical systems. For ...

2

Use an oscilloscope. Place oscilloscope probes on an i/o line on the master and a motor phase line on the slave. Toggle the i/o line just before sending the can bus command for a step change in the motor control. Measure the time difference between i/o trigger and pwm step change. Blocking the motor so it's angle does not change makes it easier to see the ...

2

I'll try to explain this in terms of software. Firstly, it is just next to impossible to have 100 metres (practically, 3 metres is like the best depth accuracy) and we need to be sure that the cameras are capturing images properly with all practical features (vibration-free and even under sunlight or rain)! (Else features will be lost and we end up with ...

2

The key elements to real-time motor control is the motor controller and the motion controller (which can be a CNC, a robot controller or other type of controller). The following description fits most modern industrial control systems in use today where precise motions down to the 10-50 micrometer range can be archived. The motor controller usually is not x86/...

1

This kind of control situation in general Nyquist method is used, In your first if your sampling period is 4 ms, your sampling frequency is 250 Hz, so you can control event maximum 125 Hz or another saying 8 ms of sampling period. But it is only for starting, if your sensor values very volatile you would make your period much longer. But ...

1

You would have to integrate the rotational kinematics equations forward in time with a known initial orientation, such as R(0) = eye(3,3) -- identity matrix. You will have drift issues if you go out too far in time of course. But, in any case, now you have an 'estimate' of R(t). Or get a 3-axis gyro from microstrain.com that gives you R(t). Is there ...

1

Using an RTOS on a microcontroller is for reducing the complexity of developing your solution, and reduces the need for programmer expertise for device drivers, at cost of increasing the complexity of your code base and often a reduction in the efficiency of your code. Bare metal code (your while loop) is usually cleaner and more efficient for small ...

1

You would confuse or mislead people if you called a non-realtime system with realtime subsystems a realtime system. If your motor control is realtime, just say that. That you have realtime control of the motor position (or whatever feedback parameter is in the realtime domain). Note that using realtime components incorrectly can result in non-realtime ...

1

One of the ways to do path tracking is by indoor mapping. In indoor mapping you can use Triangulation method. Basically, this method uses the help of Relative Received Signal Strength (RSSI) from beacons or WiFi. All you require is minimum 3 BLE/WiFi beacons positioned at three different positions in your room and a BLE/WiFi receiver. ESP32 is the best ...

1

You should find it useful to read this https://www.researchgate.net/project/A-Preview-of-Introduction-to-Fundamental-Principles-of-Dynamic-Real-Time-Systems. "Hard" real-time is a special case of the general case of "real-time." You can easily find that there are as many ad hoc "definitions" of all real-time terms as there are sources for those "definitions."...

1

You don't need more frames per second, you need a shorter exposure time.

1

The short answer is no, you will not be able to create a distributed system that meets the criteria of 'hard real time' using the approach you describe. The more nuanced answer is: It is theoretically possible with a heck of a lot of work. You will have the most problems in achieving hard real time from the USB communications, the ROS code, and using python....

1

There are multiple different parts to your question. Can an Ardiuno be used "in in real-time"? Yes it can, it has hw timer interrupts, the tolerance of your oscillator will give the precision of the interrupt. Can you communicate with an Ardiuno in real-time?Yyes, you can. A synchroneus communication, e.g. SPI is realtime capable. Can you communicate ...

1

Look into soundwireserver. Its an easy way to setup an audio server on a Linux or windows based system, and can be monitored from a laptop or an android phone. You need to consider processing overhead on a robot because of battery life, low processor speed etc. Its easy to setup and I know their android app works very well. A raspberry pi should have no ...

1

I would suggest model based pose estimation. DeMenthon and Davies describes a method for finding the pose of an object using 25 lines of Code!

1

Whether you actually require a realtime system is unclear. The only component for which realtime would be relevant is the computer vision application, and it sounds like you haven't written it yet -- you don't know if it will work without realtime. All the hardware components you listed are agnostic toward the hard- soft- or non-realtime nature of the OS ...

1

EtherCAT as you have noticed is a actually a good option for real-time data transfer, but if by "normal operating system" you mean Windows, that's a bad choice. You can get a Linux implementation of EtherCAT master from IgH (http://www.etherlab.org/en/ethercat/index.php) which needs a real-time operating system, such as Linux patched with RTAI, Xenomai or ...

1

Normally, it would best to fix sampling time via hardware timer interrupt. In case this cannot be done (like using software-only looping), it will work as long as you calculate, normalized_error = (latest_reading - set_point) / (latest_time_stamp - previous_time_stamp)

1

With an Arduino, you are guaranteed to have dedicated processing power for your balancing application. That said, the calculations for PID control are not terribly complicated and I would be very surprised to hear that a Raspberry Pi could not keep up with 20 calculations per second, even under load.

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